fswatch + rsync替代方案可以更好地实现

时间:2015-03-20 19:32:31

标签: macos unix terminal rsync fswatch

我试图查看文件夹及其子文件夹以查找文件中的任何更改(HTML / CSS / JS / Etc)。文件更改后,我想将其从远程服务器上传到已安装的驱动器。目前,我在终端中使用它:

fswatch -o ~/Desktop/Site/ | xargs -n1 sh ~/Documents/App\ Syncs/rsync_files.sh

rsync_files.sh:

rsync -rvzut --info=progress2 --delete-after --delete-excluded --exclude-from=/Users/ME/Documents/App\ Syncs/exclude_list.txt /Users/ME/Desktop/Site/ /Volumes/devroot$/Site;

我们的想法是,每次文件结构发生变化时,fswatch都会调用rsync。它有效,但它非常慢,特别是在一个糟糕的连接上。

我的问题是,我这样做是对,还是我想要完成的更好的解决方案?我的rsync命令可以更好地优化吗?是否已经制作了一款可以为我做这件事的应用程序?

基本上我想模仿Dreamweaver 2014中的文件面板而不必使用Dreamweaver。我的设置是Sublime Text 3和Codekit 2。

1 个答案:

答案 0 :(得分:2)

我想这取决于瓶颈在哪里,这在你的问题中并不清楚。但有一件事:如果连接是"糟糕的",我会在尝试调整rsync之前担心修复连接。

fswatch而言,您已经在使用-o,所以我没有设法改进其性能。也许我会增加延迟值(-l):您问题中的命令将输出最大频率为1秒的事件。将其调整为更高的值:以与同步作业完成所用时间量相同的数量级开始。

rsync而言,您可能会找到改进的余地。开始问自己以下问题(然后谷歌关于它):

  • rsync是最佳选择吗?
  • 整篇文件副本(-W)是否有意义?
  • 压缩(-z)是否有意义?
  • 就地同步(--inplace)是否有意义?

如果您的连接,请开始使用-z--inplace,看看rsync性能是否有所改善。