macOS下使用fswatch配合rsync同步文件

macOS下可以使用fswatch配合rsync实现同步文件。

比如有这么个需求,家里电脑的开发环境出现了故障,或者性能不足,不能直接在本地进行开发测试,又正好有远程开发机可以用,那就可以只在本地电脑上编辑程序文件,自动同步到服务器上进行测试,用这套方案就很方便了。

首先安装fswatch。

brew install fswatch

使用rsync同步一次文件

rsync -r * -e 'ssh -p 222' username@host:/path

在当前目录下执行rsync,-r表示递归目录,*表示所有文件,-e是附加参数,这里为ssh指定了个端口号,后面是远程服务器登录信息和同步的目标地址。需要输入远程密码方可正常执行,可搭配使用ssh私钥实现无需输密码的脚本自动化同步。

检测到文件变化时自动同步脚本:

cd local_path
while [ "true" ]; do
    echo '-------------'
    fswatch -r -L -1 *
    date
    rsync -r * -e 'ssh -p 222' username@host:/destination_path
done &

加个&是让脚本进入后台运行,避免堵塞。

rsync更多用法参考 https://www.ruanyifeng.com/blog/2020/08/rsync.html

Leave a Comment

豫ICP备19001387号-1