Rsync 企业级备份及 NFS 存储详解
第1章 Rysnc 企业级服务搭建
要求:
客户端需求
1.客户端每天凌晨 01 点在服务器本地打包备份(系统配置文件、日志文件、其他目录、应用配置等文
件)
2.客户端备份的数据必须存放至以主机名IP 地址当前时间命名的目录中, 例
/backup/nfs-server_172.16.1.31_2018-09-02
3.客户端最后通过 rsync 推送本地已打包好的备份文件至 backup 服务器
4.客户端服务器本地保留最近 7 天的数据, 避免浪费磁盘空间
服务端需求
1.服务端部署 rsync ,用于接收客户端推送过来的备份数据
2.服务端需要每天校验客户端推送过来的数据是否完整
3.服务端需要每天校验的结果通知给管理员
4.服务端仅保留 6 个月的备份数据,其余的全部删除
搭建流程:
服务端配置 Rsync:
a. 服务端安装 rsync、mailx 工具
rsync 配置文件(整体替换)
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
auth users = rsync_backup
secrets file = /etc/rsync.password
list = false
老男孩 linux 运维实战教育 http://www.oldboyedu.com/
41117397(丹丹) 70271111(歪歪) 80042789(飞雪) 390320151(小雨) 41117483(冰冰)
3
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup
mailx 配置文件(追加到文件末尾)
set from=lyglxyf@126.com
set smtp=smtps://smtp.126.com:465
set smtp-auth-user=lyglxyf@126.com
set smtp-auth-password=xiayunfeng62561
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
b. 设置配置文件
c. 创建目录、密码文件
客户端配置:
a. 编辑配置文件/etc/mail.rc
b. 设置密码文件
c. 编写推送脚本
!/usr/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
NAME=(ifconfig eth1 |awk 'NR==2{print (date +%F)
DIRNAME={ADDR}_${DATE}
establish directory
mkdir -p /backup/$DIRNAME
copy config files
cd / &&
tar zchf backup/DIRNAME/var-bak.tar.gz /var/log/messages /var/log/secure
老男孩 linux 运维实战教育 http://www.oldboyedu.com/
41117397(丹丹) 70271111(歪歪) 80042789(飞雪) 390320151(小雨) 41117483(冰冰)
4
md5sum /backup/DIRNAME/md5-{ADDR}
export RSYNC_PASSWORD=6256133
rsync -avz /backup/ rsync_backup@172.16.1.41::backup
服务端编写校验结果返回脚本
!/usr/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Path=/backup
Date=Date -type f -name "md5-"|xargs md5sum -c >/backup/result_Date" 252321466@qq.com </backup/result_${Date}
find /backup/ -type f -name "result" -mtime +7|xargs rm -f
find /backup/ -type d -mtime +180|xargs rm –rf
第2章 NFS 服务配置
2.1 服务端安装 nfs-utlis,rpcbind。
[root@nfs-31 ~]# yum -y install nfs-utils rpcbind
2.2 在服务端编辑 nfs-utlis 配置文件
[root@nfs-31 ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
规则:
1.主机都拥有读写权限
2.在将数据写入到 NFS 服务器的硬盘中后才会结束操作,最大限度保证数据不丢失
3.将所有用户映射为本地的匿名用户(nfsnobody)
老男孩 linux 运维实战教育 http://www.oldboyedu.com/
41117397(丹丹) 70271111(歪歪) 80042789(飞雪) 390320151(小雨) 41117483(冰冰)
5
2.3 创建对应目录
[root@nfs-31 ~]# mkdir /data
2.4 启动 rpc,nfs
[root@nfs-31 ~]# systemctl start rpcbind
[root@nfs-31 ~]# systemctl start nfs
2.5 检查端口
[root@nfs-31 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:33544 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:42988 0.0.0.0:* LISTEN 1430/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 664/rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 1617/rpc.mountd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 948/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1031/master
tcp6 0 0 :::2049 :::* LISTEN -
tcp6 0 0 :::44644 :::* LISTEN -
tcp6 0 0 :::45222 :::* LISTEN 1430/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 664/rpcbind
tcp6 0 0 :::20048 :::* LISTEN 1617/rpc.mountd
tcp6 0 0 :::22 :::* LISTEN 948/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1031/master
2.6 检查共享内容
[root@nfs-31 ~]# cat /var/lib/nfs/etab
/data
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,sec
ure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,secure,root_squash,all_squash)
2.7 检查虚拟用户
[root@nfs-31 ~]# cat /etc/passwd|tail -1
老男孩 linux 运维实战教育 http://www.oldboyedu.com/
41117397(丹丹) 70271111(歪歪) 80042789(飞雪) 390320151(小雨) 41117483(冰冰)
6
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
2.8 设置共享目录属主为虚拟用户
[root@nfs-31 ~]# chown nfsnobody.nfsnobody /data/
[root@nfs-31 ~]# ll -d /data/
drwxr-xr-x 2 nfsnobody nfsnobody 6 Sep 6 18:26 /data/
2.9 配置客户端 shezhi
a. 安装 nfs
[root@web01-7 ~]# yum -y install nfs-utils
b. 设置 rpcbind 开机自启
[root@web02-8 scripts]# systemctl enable rpcbind
[root@web02-8 scripts]# systemctl start rpcbind
[root@web02-8 scripts]# systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-09-06 17:41:25 CST; 2h 53min ago
Main PID: 653 (rpcbind)
CGroup: /system.slice/rpcbind.service
└─653 /sbin/rpcbind -w
Sep 06 17:41:24 web02-8 systemd[1]: Starting RPC bind service...
Sep 06 17:41:25 web02-8 systemd[1]: Started RPC bind service.
c. 创建/data 共享目录
d. 挂载
[root@web02-8 scripts]# mount -t nfs 172.16.1.31:/data /data
f.设置开机自动挂载
网友评论