1、远程服务器中 rsyncd 安装
1. yum -y install rsync
2. systemctl start rsyncd.service # 启动服务
3. systemctl enable rsyncd.service #设置为是否自动开启服务
4. netstat -lnp|grep 873 或者 ps -ef|grep 873 看是否服务已经启动(873为rsync启动的端口,netstat 的安装yum -y install net-tools 没有netstat 命令的话进行安装)
2、rsyncd 进行配置的修改 /etc/rsyncd.conf
uid = root
# //设置运行rsync 进程的用户
gid = root
use chroot = no
max connections = 4
# pid file = /var/run/rsyncd.pid
#//CentOS7中yum安装不需指定pid file 否则报错
lock file=/var/run/rsyncd.lock
log file = /var/log/rsyncd.log
# //此文件定义完成后系统会自动创建
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
# //同步时跳过没有权限的目录
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
# //传输时不压缩的文件
-------------------------------------------------------------start 备份文件的配置规则 ---------------------------------------------------
#规则名称,作为测试用规则,可随意更改,与后文对应即可。
[test] #备份路径的别名 rsync -vzurtopg --progress --delete root@IP地址::test /home/test --password-file=/etc/rsyncd/rsyncd.passwd [test] 为服务器指定的路径别名,执行上面命令的时候指定为test就可以进行copy了
#同步的路径
path=/home/ywld
#规则描述
comment=测试规则
ignore errors
#是否可以pull
read only=no
#是否可以push
write only=no
list=no
#下面配置同步时候的身份,注意该身份是在rsync里面定义的,并非是本机实际用户。等下说说如何在rsync里面定义身份。
#客户端获取文件的身份此用户并不是本机中确实存在的用户
auth users=root
#不忽略的文件
include = webHTML/ redis/ offer_conf/ mysqldataback/ information/ docker_images_encrypt/ conf/ backup/ xiugai.html web.sh login.html index.js confIp.js backstage.sh
#进行排除掉那些不需要备份
exclude = .bash_history/ .bash_logout/ .bash_profile/ .bashrc/ .docker/ .lesshst/ .oracle_jre_usage/ .pki/ .sdkman/ .ssh/ .swp/ .vim/ .viminfo/ .zshrc/
#//用来认证客户端的秘钥文件 格式 USERNAME:PASSWD 此文件权
#//限一定需要改为600,且属主必须与运行rsync的用户一致。
secrets file=/etc/rsyncd/rsyncd.passwd
#允许所有主机访问
hosts allow=*
配置文件修改之后需要重启 rsyncd服务 systemctl restart rsyncd.service
3、创建 服务端 rsyncd.passwd 文件并且修改权限
echo 'root:123456'>/etc/rsyncd/rsyncd.passwd //文件用户名和路径为上面定义
chmod 600 /etc/rsyncd/rsyncd.passwd //修改权限
4、创建客户端 rsyncd.passwd 文件 并且修改权限
echo '123456' >>/etc/rsyncd/rsyncd.passwd //注意这里只需要服务器rsyncd.passwd 中的密码
chmod 600 /etc/rsyncd/rsyncd.passwd
5、重启服务端和客户端的rsyncd 服务
systemctl restart rsyncd.service
6、如果用的阿里云查看安全组是否开启873端口,没的话需要开启
7、然后执行备份的脚本
rsync -auv --password-file=/etc/rsyncd/rsyncd.passwd 用户名@IP地址::模块名 本地目录
eg
rsync -auv --password-file=/etc/rsyncd/rsyncd.passwd root@192.168.1.266::ywld/root/test/
rsync -vzurtopg --progress --delete root@192.168.1.266::ywld /home/ywld--password-file=/etc/rsyncd/rsyncd.passwd
8、进行定时执行备份的脚本
crontab -e # 进行添加定时的脚本
*/10 * * * * sh /home/test/back.sh #脚本的绝对路径
每隔10分钟进行一次
9、大功告成。。。。。。。
借鉴其他博主的博客还有更好的方法 eg:通过监听器实时同步 修改 文件
借鉴地址:https://blog.csdn.net/u011415782/article/details/78720072 目前没有进行验证,有兴趣的可以自己动手试试。
还有一个网站比较看着舒服 https://www.cnblogs.com/zhenhui/p/5715840.html
https://blog.csdn.net/Mr_rsq/article/details/79272189#4-rsync多模块实战