SuSe11 inotify+rsync 实现文件实时同步


linux suse rsync 同步操作

配置完成rsync后开始 rsync 服务 停止 stop 重启 restart
service rsyncd start

参考博客地址:https://www.jianshu.com/p/bab26e046c2f https://www.jb51.net/article/41417.htm https://blog.csdn.net/qq_36031499/article/details/54315466

产生文件服务 101.9.101.111 同步到服务器101.9.101.119
101.9.101.119 rsync 配置
配置 vi /etc/rsyncd.conf
gid = root
uid = root
use chroot = no
max connections = 200
timeout = 300
strict modes = yes
hosts allow = 101.9.101.111
port = 873
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid


[media]
path = /smart/cms/media
ignore errors = yes
read only = false
list = false
auth users = root
secrets file = /etc/rsyncd.secrets

创建密码本
vi /etc/rsyncd.secrets
root:123456
给权限
chmod 600 /etc/rsyncd.secrets

启动或者重启rsync 服务


101.9.101.111 rsync配置
配置 vi /etc/rsyncd.conf
gid = root
uid = root
use chroot = no
max connections = 200
timeout = 300
strict modes = yes
hosts allow = 101.9.101.119
port = 873
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid

 

[media]
path = /smart/cms/media/
ignore errors = yes
read only = false
list = false
auth users = root
secrets file = /etc/rsyncd.secrets

创建密码本
vi /etc/rsyncd.secrets
root:123456
给权限
chmod 600 /etc/rsyncd.secrets

启动或者重启rsync 服务

rsync 配置完成
使用命令 在11上
rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.passwd /home/rsynctest/ root@101.9.101.113::media

suse 11 中的 rsyncd.secrets 如果当作密码本会一直出现报错,要手动创建密码本 rsyncd.passwd
在 /etc/ 创建 rsyncd.passwd 内容 客户端直接写密码 123456 服务端要写用户名和密码:rsync:123456


rsync 相关日志查看 /var/log/rsyncd.log

rsync + inotify

下载 inotify 地址:https://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
tar -zxf inotify-tools-3.13.tar.gz
安装
./configure --prefix=/usr/local/inotify
make && make install

编写 inotify_rsync.sh 脚本 要放在需要同步文件的目录下
#!/bin/bash
host=101.9.101.113
src=/home/rsynctest/
des=media
user=root

/home/inotify-tools-3.13/src/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files
do
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.passwd $src $user@$host::$des
#--password-file=/etc/rsyncd.passwd
# rsync -vzrtopg --delete --progress /home/rsynctest/ root@101.9.101.113::media
echo "${files} wa rsynced" >>/var/log/rsync.log 2>&1
done
修改脚本权限
chmod 764 inotify_rsync.sh
启动
sh inotify_rsync.sh &
查看
ps -ef | grep inotify
停止 kill -9 脚本运行的PID

注意: src=/home/rsynctest/ 命令或者 脚本本 最后带 / 和 不带/ 有区别
带 / 同步的是rsynctest目录下的文件,不会创建rsynctets目录,需要有rsynctest 目录
不带 / 同步 rsynctest 这个目录 过去

posted @ 2019-07-19 16:57  moredemo  阅读(442)  评论(0编辑  收藏  举报