我深情地记得使用WinSCP和使用全自动的本地到远程同步功能,应用程序将监控目录层次结构,并在发生更改时将更改发送到远程服务器。
在OSX上有没有应用程序可以完成同样的事情?我真的找不到任何东西。当我发现一些有希望的东西时,它总是被证明是一个传统的同步应用程序,你需要手动启动sync命令,然后它会扫描层次结构来查找更改的文件。这需要花费太长的时间,而且不是自动化的。
我一直在看File System Events API,想知道是否可以用一个小实用程序将一个小应用程序拼凑在一起,以触发层次结构的更改,并将更改后的目录提供给rsync或其他什么。
感谢您的任何线索!
发布于 2009-09-11 23:15:56
您可以使用两个特定于Mac的实用程序来简化您的工作:
这两个工具都将AppleScript作为公共线程(可用于执行外壳命令)。您可以编写一个小的AppleScript,它在文件夹更改时启动,以调用rsync并执行所需的服务。
发布于 2013-01-21 17:23:13
嗯,我遇到了同样的问题,并且可以同时使用这些工具: rsync、SSH Passwordless Login、Watchdog ( Python同步实用程序)和Terminal Notifier (用Ruby制作的OS X通知实用程序)。不需要,但有助于知道同步何时完成)。
1.1。完成后,测试是否一切正常…如果你不能无密码登录,也许你必须尝试法新社挂载。Dreamhost (我的网站所在位置)不允许afp装载,但允许无密码登录。在终端中,键入:
ssh username@host.com您应该在不询问密码的情况下登录:p
2.1。我使用了Gem installer命令。在终端中,键入:
gem install terminal-notifier
2.3。测试通知works.In终端,键入以下内容:
terminal-notifier -message "Starting sync"
#!/bin/bash terminal-notifier -message "Starting sync" rsync -azP ~/Sites/folder/ user@host.com:site_folder/ terminal-notifier -message "Sync has finished"
3.1。记住要为这个sh脚本提供执行权限。在终端中,键入:
sudo chmod 777 ~/Scripts/sync.sh 3.2。运行脚本并验证消息是否正确显示,以及rsync是否将您的本地文件夹与我从Github页面下载并安装的远程folder.
4.1。首先,我使用Brew安装了libyaml依赖项(有很多关于如何安装Brew的帮助-就像OS X上的“智能”)。在终端中,键入:
brew install libyaml
4.2。然后,我使用了"easy_install命令“。进入Watchdog文件夹,输入Terminal:
easy_install watchdog
watchmedo shell-command --pattern=“*.php;*.txt;*.js;*.css”\--递归\--命令=‘~/脚本/Sync.sh’\。
它必须以这种方式进行,包括斜杠和换行符,所以您必须将这些行复制到文本编辑器,更改脚本,粘贴到中,然后按return键。
我试了一下没有换行,但它不起作用!
在我的Mac上,我总是得到一个错误,但它似乎不会影响任何事情:
/Library/Python/2.7/site-packages/argh-0.22.0-py2.7.egg/argh/completion.py:84: UserWarning: Bash completion not available. Install argcomplete.
现在,在文件夹内的一个文件中做了一些更改,并观看了魔术!
发布于 2010-01-21 15:58:50
我相信transmit可以做到这一点。
https://stackoverflow.com/questions/1413637
复制相似问题