本文共 2543 字,大约阅读时间需要 8 分钟。
rsync:一款开源备份工具;实现不同主机间镜像同步整个目录树;支持增量备份、权限、压缩等
vim /etc/rsyncd.db hehe:123 //用户名:密码
vim /etc/rsyncd.confuid = nobody //运行用户gid = nobody //运行组use chroot = yes //用户禁锢到访问目录address = 192.168.1.10 //监听IPport 873 //监听端口log file = /var/log/rsyncd.log //日志文件位置pid file = /var/run/rsyncd.pid //PID运行文件位置hosts allow = 192.168.1.0/24 //运行同步的网段[data] //同步名 path = /data //同步的目录 comment = Document Root //描述 read only = no write = yes //用户可写 dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z //同步时不需压缩的格式 auth users = hehe //认证用户 secrets file = /etc/rsyncd.db //用户帐号文件位置
chmod 600 /etc/rsync.db
mkdir /data && chmod 777 /data
rsync --daemon //独立模式运行rsync服务;停止rsync(killall rsync && rm -rf /var/run/rsyncd.pid)
下行:rsync [ 选项 ] 远程目录 本地目录
上行:rsync [ 选项 ] 本地目录 远程同步名
选项
-a:提供归档和属性信息-v:显示详细信息-z:压缩-H:保持硬链接-u:可实现增量备份mkdir /a
rsync -avzH --delete rsync://hehe@192.168.1.10/data/ /a/ //将备份源中的数据下载同步到当前位置
rsync -avzH --delete hehe@192.168.1.10::data /a/
rsync -avzH --delete /a/ rsync://hehe@192.168.1.10/data //将发起端的数据上传同步到备份源;用户在备份源必须有写入权限
rsync -avzH --delete /a/ hehe@192.168.1.10::data
vim /etc/profile export RSYNC_PASSWORD=123 //将rsync密码加入环境变量
source /etc/profile
crontab -e * */4 * * * /usr/bin/rsync -avzHu --delete rsync://hehe@192.168.1.10/data /a //定时下行同步 * */4 * * * /usr/bin/rsync -avzHu --delete /a rsync://hehe@192.168.1.10/data //定时上行同步
tar zxvf inotify-tools-*.tar.gz -C /usr/src/
cd /usr/src/inotify-tools-*/
./configure && make && make install
vim /etc/sysctl.conf fs.inotify.max_queued_events = 16384 ##监控事件队列数 fs.inotify.max_user_instances = 1024 ##监控实例数 fs.inotify.max_user_watches = 1048576 ##监控的文件数量
sysctl -p
vim rsync_inotify.sh ##实时同步脚本 #!/bin/bash RSYNC="rsync -avzHu --delete /a/ rsync://hehe@192.168.1.10/data" INT_CMD="inotifywait -mrq -e modify,create,move,delete,attrib /a" export RSYNC_PASSWORD=123 //可解决rsync同步时,无需输入密码 $INT_CMD | while read DIRECOTRY EVENT FILE;do $RSYNC 1>/dev/null 2>/var/log/rsync_err.log done
chmod +x rsync_inotify.sh //给予脚本执行权限
rsync_inotify.sh & //启动脚本
转载于:https://blog.51cto.com/13770206/2170441