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