centos rsyncd+crontab 备份远程的数据文件到本地服务器步骤

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 [email protected]::ywld/root/test/
  rsync -vzurtopg --progress --delete [email protected]::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多模块实战

猜你喜欢

转载自blog.csdn.net/gz_hyr/article/details/84570938