OSX SSH rsync-保持远程目录最新

OSX SSH rsync-保持远程目录最新

我以前主要使用 Windows,现在正在迁移到 Mac。我使用过 WinSCP,并且很喜欢一个名为“保持远程目录最新”

问题是:是否有适用于 OSX 的等效 SCP 客户端,可以监视目录的更改并在检测到时上传?我不在乎它是 GUI 客户端还是通过命令行(rsync、ssh 等)。

答案1

你最好的选择可能是使用文件夹操作并调整新商品提醒脚本以满足您的需求,调用您选择的命令行实用程序。

答案2

alias run_rsync='rsync -azP --exclude ".*/" --exclude ".*" --exclude "tmp/" /source_folder username@host:/destination_folder'
run_rsync; fswatch -o . | while read f; do run_rsync; done

第二行run_rsync无条件运行一次,然后 - 在当前目录每次发生更改时运行(或指定精确路径而不是.

您将需要fswatch-以下是如何安装酿造

brew install fswatch

Rsync 选项:

  • -a - 代表“档案”并以递归方式同步并保留符号链接、特殊和设备文件、修改时间、组、所有者和权限。
  • -z——压缩
  • -P - 结合了 --progress 和 --partial 两个标志。第一个标志为您提供传输的进度条,第二个标志允许您恢复中断的传输
  • --exclude - 根据模式排除文件

答案3

您可以使用 launchd 来代替文件夹操作(要获得一些示例代码,只需在谷歌上搜索:launchd folder watcher)。

然后,你可以将启动的文件夹监视程序项目与类似以下的 scp 脚本结合起来这个

或者,像这样通过 ssh 使用 rsync:

rsync -urltv --delete -e ssh /path/to/dir othermachine:/path/to/dir

对于商业跨平台软件解决方案,请参阅GoodSync

答案4

我遇到了一个可以满足您需求的 ruby​​ 脚本,但需要进行一些调整。

描述:
每当脚本所在目录发生更改时,使用 OS X FSEvents API 进行 rsync https://gist.github.com/149491

相关内容