需求如下:定时将B服务器上的文件备份到A服务器上
1.安装rsync服务
yum install -y rsync
2.在B服务器上配置rsync
vim /etc/rsyncd.conf
内容为:
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
uid = root
gid = root
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
[nfs]
path = /home #替换你要备份的目录
# comment = ftp export area
secrets file =/etc/sery.pass
注:path为需要备份的路径,/etc/sery.pass为传输的账号密码
3.配置账号密码
vim /etc/sery.pass
内容为:
root:password
4.更改secrets file文件的权限
chmod 600 /etc/sery.pass
5.启动rsyncd服务
rsync --daemon --config=/etc/rsyncd.conf
以上我们的B服务器就配置完成了
6.在A上设置secrets file文件
vim /etc/sery.pass
内容为: password
注:这里面只写密码,不用写用户名,密码就是刚刚设置的
7.更改secrets file的权限(在A上)
chmod 600 /etc/sery.pass
8.验证A是否能将B服务器上的文件备份起来
在A服务器上执行以下命令
rsync -avz --password-file=/etc/sery.pass root@192.168.1.XXX::nfs/ /home/
rsync -avz --delete --password-file=/etc/sery.pass root@192.168.1.XXX::nfs/ /home/
第一条命令是执行:增量备份,但是删除文件操作不同步,也就是说,修改/创建文件能同步,但是删除文件无法同步
第二条命令多了--delete,就是所有包括删除文件都同步
注意:/home/为你存储的同步目录
9.通过crontab定时同步
9.1 创建同步脚本
echo "------------------------------------------" >>/root/rsync/log.txt
echo "BACKUP DATE:" $(date +"%Y-%m-%d %H:%M:%S") >>/root/rsync/log.txt
rsync -avz --delete --password-file=/etc/sery.pass root@192.168.2.42::nfs/ /nfs/ >>/root/rsync/log.txt
以上脚本存储到自己想要放的目录下
/root/rsync/log.txt为存储的日志地址
9.2 写入crontab中
crontab -e
*/1 * * * * /root/rsync/sync.sh
/root/rsync/sync.sh为刚刚存储的脚本目录,1为每分钟同步一次
可以通过以下操作查看cron是否执行
cat /var/log/cron
附上rsync开机自启命令
systemctl enable rsyncd