我主要来自Windows背景,迁移到Mac。我使用过WinSCP,并且喜欢一个名为“保持远程目录最新”的功能。
问题是:OSX是否有一个等效的SCP客户端,它将监视目录的更改并在检测到该目录时上载?我不在乎它是GUI客户端还是通过命令行(rsync,ssh等)。
我主要来自Windows背景,迁移到Mac。我使用过WinSCP,并且喜欢一个名为“保持远程目录最新”的功能。
问题是:OSX是否有一个等效的SCP客户端,它将监视目录的更改并在检测到该目录时上载?我不在乎它是GUI客户端还是通过命令行(rsync,ssh等)。
Answers:
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安装:
brew install fswatch
Rsync选项:
检出恐慌发送。从他们的一篇博客文章中,评论者说:
当您在Transmit中将某个文档打开到某个应用程序中时(有人将.html文件放入BBEdit中),然后编辑该文档并将其保存,这是某些人可能不知道的我最喜欢的功能之一;传输自动将其上传回服务器到同一文件,而不会出现任何问题。在制作网站和编辑CSS时会产生奇迹。通过Photoshop在图像中进行较小的校正也很方便。您还可以通过Prefs处理Transmit如何处理某些文件扩展名。
我遇到了一个满足您需要的ruby脚本,但是需要一点适应性。
说明:
每当使用OS X FSEvents API https://gist.github.com/149491更改脚本目录时,rsync
嗯,我遇到了同样的问题,可以将它们一起使用:rsync,SSH无密码登录,Watchdog(Python同步实用程序)和Terminal Notifier(由Ruby制成的OS X通知实用程序)。不需要,但有助于了解同步完成后)。
我使用Dreamhost Wiki:http ://cl.ly/MIw5的本教程创建了无密码登录的密钥。
1.1。完成后,测试一切正常……如果无法无密码登录,也许您必须尝试进行afp挂载。Dreamhost(在我的网站所在的位置)不允许afp挂载,但允许无密码登录。在终端中,键入:
ssh username@host.com
您应该登录时不要求输入密码:P
我从Github页面安装了终端通知程序:http : //cl.ly/MJ5x
2.1。我使用了Gem安装程序命令。在终端中,键入:
gem install terminal-notifier
2.3。测试通知是否有效。在“终端”中,键入:
terminal-notifier -message "Starting sync"
创建一个sh脚本来测试rsync +通知。使用您喜欢的名称将其保存在您喜欢的任何位置。在此示例中,我将其称为〜/ Scripts / sync.sh我使用了“ .sh扩展名,但是我不知道是否需要它。
#!/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页面下载并安装了Watchdog:http://cl.ly/MJfb
4.1。首先,我使用Brew安装了libyaml依赖项(如何安装Brew有很多帮助-像OS X的“能力”)。在终端中,键入:
brew install libyaml
4.2。然后,我使用了“ easy_install命令”。进入看门狗的文件夹,然后输入Terminal:
easy_install watchdog
现在,一切都已安装!转到要同步的文件夹,根据需要更改此代码,然后输入Terminal:
watchmedo shell-command
--patterns="*.php;*.txt;*.js;*.css" \
--recursive \
--command='~/Scripts/Sync.sh' \
.
它必须完全是这种方式,带有斜线和换行符,因此您必须将这些行复制到文本编辑器,更改脚本,粘贴到终端,然后按回车键。
我尝试了没有换行符,但它不起作用!
在我的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.
现在,在文件夹内的文件中进行一些更改,然后观看魔术!
sync
是一个系统实用程序(至少在每一个* nix的我见过,不知道OSX,但看不到reaosn为什么它不会在那里)。您可能想给您的狙击一个不同的名字。此外,这不会通过OP想要的SSH进行;简单地传递-e ssh
给rsync应该可以解决该问题。