Centos7 rsync通过ssh与socket同步并加入inotify实时同步

第1种方式:通过SSH

yum install -y rsync
通过ssh将本地文件拷贝到另一服务器(两台机器都需要装rsync)

rsync -avz -e 'ssh -p 22' 1.html 192.168.71.101:/data

-a, ––archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
-v, ––verbose 详细输出模式
-z, ––compress 在传输文件时进行压缩处理
-e, ––rsh=COMMAND 指定替代 rsh 的 shell 程序

第2种方式:通过服务端与客户端

准备两台机器

    192.168.71.101 服务端
    192.168.71.102 客户端 

 2.1 服务端操作
vi /etc/rsyncd.conf

配置如下

uid = root
gid = root
use chroot = no
max connections = 200
# pid file = /var/run/rsyncd.pid
exclude = lost+found/
transfer logging = yes
timeout = 900
# ignore nonreadable = yes
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
lock file = /var/run/rsyncd.lock
log file = /var/run/rsyncd.log

[backtest]
path = /backup/test
ignore errors
read only = no
list = no
auth users = abo
secrets file = /etc/rsync.passwd

创建服务端测试目录

mkdir -p /backup/test

创建密码文件

echo 'abo:123456' > /etc/rsync.passwd
#必须为600,要不会报错
chmod 600 /etc/rsync.passwd

启动rsync

systemctl start rsyncd
2.2 客户端操作
echo '123456' > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd

创建测试目录与文件

mkdir /backup
echo '111' > /backup/1.txt

测试将客户端文件推送到服务端(在客户端操作)

rsync -avz /backup/ abo@192.168.71.101::backtest --password-file=/etc/rsync.passwd

测试将服务端文件拉取到客户端(在客户端操作)

rsync -avz  abo@192.168.71.101::backtest /backup/ --password-file=/etc/rsync.passwd

加入inotify

在客户端安装inotify

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install inotify-tools -y

新建脚本文件

vi /etc/rc.d/inotify.sh

内容如下

src=/backup/  #监听的目录
des=backtest   #服务端的rsync模块名称
ip=192.168.71.101 #服务端的ip地址
/usr/bin/inotifywait -mrq --timefmt ‘%d/%m/%y/%H:%M’ --format ‘%T%w%f%e’ -e modify,delete,create,attrib $src| while
read file 
do
  /usr/bin/rsync -vzrtopg  --progress $src abo@$ip::$des --password-file=/etc/rsync.passwd
  echo “$src has been resynced” 
done

添加执行权限并运行

chmod +x /etc/rc.d/inotify.sh 
/etc/rc.d/inotify.sh

测试同步,在客户端/backup/目录下新加文件,可以看到服务端会实时同步过来

转载于:https://my.oschina.net/u/585210/blog/3061746

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值