rsync+inotify实现两个文件夹实时同步

rsync本身可以实现文件复制,类似scp但功能更强一些
rsync -avSH 源文件路径 目录路径 可以跨机器,只要ssh能访问
-v, --verbose 详细模式输出,也就是能显示整个复制过程
-a, 归档模式,表示以递归方式传输文件,并保持文件属性,等于-rlptgoD
-b, --backup,创建备份,如果目的地文件夹内存在同明文件,则将老的同名文件重命名为~filename
-H, 保留硬链接(如果有的话)
-S, -sparse 对稀疏文件进行特殊处理以节省DST的空间
-将-n、-v选项合用,可以模拟同步过程,显示需要做哪些操作(但并不真的同步)
–delete 加了这一项,则保持两个文件夹内容完全一样,如果目标目录有多余的文档,则直接删除掉

inotify在光盘yum源里没有,需要自己下载安装
对应的命令是inotifywait,参数有
-m 持续监视文件变化,也就是它会一直盯着源文件夹,如果有变动就会自动同步
-r 递归监视
-q 减少冗余信息的显示,只打印基本信息
-e 指定监听事件
可用来监听的事件:
access: 访问
modify 修改,监听文件内容的修改
attrib 属性,监听文件属性的修改
move 移动,监听到有文件移动
create 新建
delete 删除

例子:
让inotify监听目录a,如果里边内容有变动则同步到目录b,注意如果是跨机器的监听同步,则需要设置源机器对目录机器的ssh无密码登陆

#!/bin/bash

From_dir="/root/a" #源文件
Rsync_cmd=“rsync -a --delete ${From_dir} 192.168.1.100:/root/b” #同步的命令

while inotifywait -rqq -e modify,attrib,move,create,delete ${From_dir} #用循环的方式让它持续监控
do
${Rsync_cmd}
done & #放在后边,让它一直运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值