参考资料:
(一)背景环境介绍:
服务器A、服务器B操作系统均为:CentOS-7.0-1406-x86_64-DVD.iso
服务端A(同步源):192.168.100.10/24
客户端B(发起端):192.168.100.20/24
需求:实现服务器A的数据通过rsync同步到服务器B上
(二)服务端(同步源)配置
1:一般CentOS 7已安装好rsync,查询是否已安装
# rpm -qa | grep rsync
rsync-3.0.9-15.el7.x86_64
2:若未安装,则使用yum进行安装
3:创建源目录(需要备份的数据文件),此例为samba的共享文件
# chown root /home/test/ -R //修改文件所有者为root
4:修改过共享文件信息,需要重新启动smb服务
# systemctl restart smb
5:编辑配置文件rsyncd.conf
# vim /etc/rsyncd.conf
uid = root //服务端操作系统的用户
gid = root //服务端操作系统的用户的组
use chroot = yes //禁锢在源目录
address = 192.168.100.10 //监听地址
port 873 //用于通信的TCP端口,缺省是873
log file = /var/log/rsyncd.log //日志文件位置
pid file = /var/run/rsyncd.pid //存档进程ID的文件位置
hosts allow = 192.168.100.0/24 //允许访问的客户机地址
[testcom] //共享模块名称,自定义的名称,不一定要与同步目录相同
path = /home/test //同步的目录名,必须是uid参数指定的用户和gid参数指定的组
comment = testcombackup //模块说明文字
read only = yes //是否为只读
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 //同步时不再压缩的文件类型
auth users = root //授权账户
secrets file = /etc/rsyncd_users.db //定义rsync客户端用户认证的密码文件
6:创建授权备份账户认证的密码文件
# vim /etc/rsyncd_users.db
root:12345678 //格式:授权账户用户名:密码
7:修改数据文件权限
# chmod 600 /etc/rsyncd_users.db
8:rsync的服务名是rsyncd,启动rsync服务程序
# rsync --daemon //启动服务
# systemctl start rsyncd //启动rsyncd服务
# systemctl enable rsyncd //把rsyncd服务设置为开机自启动
9:查看rsync运行端口号
# netstat -antp | grep rsync
10:防火墙放行rsync服务
# firewall-cmd --permanent --add-port=873/tcp
(三)客户端(发起端)配置
1:创建本地文件夹/home/testBackUp/并设置好相关权限,此案例中,此文件夹为samba共享目录
2:发起端访问同步源,将文件下载到本地/home/testBackUp/下载目录下,需要人机交互手动输入密码
# rsync -avz root@192.168.100.10::testcom /home/testBackUp
3:自动化应答,创建密码文件
# vim /etc/server.pass
12345678 //服务器root密码
4:设置server.pass权限只有宿主可查看
# chmod 600 /etc/server.pass
5:编辑shell脚本文件
# vim /root/rsync_job.sh
//以下为脚本内容
#!/bin/bash
rsync -az --delete --password-file=/etc/server.pass root@192.168.100.10::testcom /home/testBackUp
6:设置脚本文件具有可执行权限
# chmod u+x rsync_job.sh
7:编辑例行性计划任务,例如设置:每周一、周五和周六,22点30分执行脚本
# crontab -e
30 22 * * 1,5,6 /root/rsync_job.sh
8:查看crontab执行情况,用tail -f /var/log/cron观察,不能用cat查看
# tail -f /var/log/cron
9:查看 rsync 服务状态