rsync工具使用方法
rsync 下行同步(定时同步)
Section titled “rsync 下行同步(定时同步)”1. 修改/etc/rsyncd.conf
Section titled “1. 修改/etc/rsyncd.conf”uid = rootgid = rootuse chroot = yes #禁锢在源目录address = 192.168.132.6 #监听地址port = 873 #监听端口tcp/udp 873,可通过cat /etc/services | grep rsync查看log file = /var/1og/rsyncd.1og #日志文件位置pid file = /var run/rsyncd.pid #存放进程ID的文件位置hosts allow = 192.168.132.6 #允许访问的客户机地址。多个地址以空格分隔dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z #同步时不再压缩的文件类型
[wwwroot] #共享模块名称path = /var/www/html #源目录的实际路径comment = Document Root of www.djq.com #备注read only = yes #是否为只读。yes表示客户端只能读取目录内容,不能写入。只允许下行,不允许上行。auth users = backuper #授权账户,多个账号以空格分隔。授权用户,允许读取的用户名。secrets file = /etc/rsyncd_users.db#存放授权账户信息的数据文件#如采用匿名的方式,只要将其中的“auth users"和“secrets file"配置项去掉即可。2. 为备份账户创建数据文件。
Section titled “2. 为备份账户创建数据文件。”backuper:abc123#无须建立同名系统用户。backuper为用户名,abc123为密码。3. 保证所有用户对源目录/var/www/html都有读取权限
Section titled “3. 保证所有用户对源目录/var/www/html都有读取权限”chmod 600 /etc/rsyncd_users.dbchmod +r /var/www/html/ls -ld /var/www/html/4. 启动rsync服务程序
Section titled “4. 启动rsync服务程序”rsync --daemon #启动rsync 服务,以独立监听服务的方式(守护进程)运行netstat -anpt | grep rsync5. 关闭rsync 服务
Section titled “5. 关闭rsync 服务”kill $(cat /var/run/rsyncd.pid)rm -rf /var/run/rsyncd.pidrsync+inotify 上行同步(实时同步)
Section titled “rsync+inotify 上行同步(实时同步)”修改配置文件
Section titled “修改配置文件”read only = no #使服务端目录可写vim /etc/sysctl.conf #内核参数都在该文件中修改,(可选)fs.inotify.max_queued_events = 16384fs.inotify.max_user_instances = 1024fs.inotify.max_user_watches = 1048576sudo apt install inotify-toolsinotifywait -mrq -e modify,create,move,delete /datainotify 触发式同步脚本
Section titled “inotify 触发式同步脚本”#!/bin/bash#定义inotifywait监控/data目录中文件事件的变量。attrib表示属性变化。INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /data"
#定义执行 rysnc 上行同步的变量。--delete保证两边目录内容一致,可以不加。RSYNC_CMD="rsynC -azH --delete --password-file=/etc/server.pass /data backuper@192.168.142.10::backupdir/"
#使用while、read持续获取监控结果,根据结果可以作进一步判断是否读取到输出的监控记录$INOTIFY_CMD | while read DIRECTORY EVENT FILEdo #如果rsync未在执行,则立即启动 if[ $(pgrep rsync | wc -l) -le 0 ];then $RSYNC_CMD fidonechmod +x /opt/inotify.shchmod +x /etc/rc.d/rc.local #开机自启脚本文件echo '/opt/inotify.sh' >> /etc/rc.d/rc.local #加入开机自动执行#之后运行脚本(后台运行)cd /opt/./inotify.sh#之后在发起端创建文件,查看源服务器中是否新增了