配合利用 rsync 和 inotifywait 同步开发机以及服务器的文件变化

inotify 是 linux 桌面环境开发的小伙伴们的福利,用于监测文件系统的变化。

先看这篇科普文,了解基本的 inotify 命令:http://www.1987.name/637.html

于是我们装一下 inotify-tools:

sudo apt-get install -y inotify-tools

然后,通过一个 while 让每次文件夹内文件变动的时候执行一段循环代码:

参考:http://stackoverflow.com/a/24568980/2544762

sync_dir() {
# 对本地路径后面归一化加上 / 以防止 rsync 误会
LOCAL=${1/%\//}/
REMOTE=$2
if [ ! -d $LOCAL ]; then
  echo "请输入正确的本地目录"; 
  exit 2;
fi
inotifywait -mrqe close_write $LOCAL | while read line
do
  rsync -avz $LOCAL $REMOTE
done
}

将这段 bash 函数加入 ~/.bashrc,就可以通过传入本地目录以及远端目录(需要 ssh 免密码登录),即可实现监控同步:

# 第一次执行之前让函数加载,以后就不用这句
source ~/.bashrc
# 监测同步文件夹
rsync /var/www/ root@REMOTE_ADDRESS:/var/www

【转载请附】愿以此功德,回向 >>

原文链接:http://www.huangwenchao.com.cn/2017/03/rsync-inotify.html【配合利用 rsync 和 inotifywait 同步开发机以及服务器的文件变化】

发表评论

电子邮件地址不会被公开。 必填项已用*标注