标签:byte var 实现 结果 moved 文件系统 mon fuse rsync -av
inotify和rsync实现实时同步客户端:
[root@centos6 ~ 12:02:50]#echo "123" > /etc/rsync.pass 生成密码文件
[root@centos6 ~ 15:45:39]#chmod 600 /etc/rsync.pass
[root@centos6 ~ 15:45:47]#rsync -avz --password-file=/etc/rsync.pass /data/ rsyncuser@192.168.0.17::backup 同步数据
sending incremental file list
./
ERROR: daemon refused to receive directory "lost+found"
*** Skipping any contents from this failed directory ***
data/
sent 72 bytes received 16 bytes 176.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
结合inotify+rsync实现同步:
[root@centos6 ~ 16:08:40]#yum -y install epel-release
[root@centos6 ~ 16:08:57]#yum -y install inotify-tools
[root@centos6 ~ 16:11:33]#vim inotify_rsync.shbr/>#!/bin/bash
SRC=‘/data/‘
DEST=‘rsyncuser@192.168.0.17::backup‘
inotifywait -mrq --timefmt ‘%Y-%m-%d %H:%M‘ --format ‘%T %w %f‘ -e create,delete,moved_to,close_write,attrib ${SRC} |while read DATE TIME DIR FILE;do
FILEPATH=${DIR}${FILE}
rsync -az --delete --password-file=/etc/rsync.pass $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log
#注意:因为ext系统文件系统有lost+found文件夹,所有rsync会同步成功,但命令的执行结果是失败的,所有不会写日志至/var/log/changelist.log中,要想成功,在ext系统文件系统中把&&换成||即可
done
[root@centos6 ~ 16:13:53]#./inotify_rsync.sh
在客户端创建文件
服务端几乎瞬间就能够同步
标签:byte var 实现 结果 moved 文件系统 mon fuse rsync -av
原文地址:https://blog.51cto.com/14233913/2397094