Macos 在Mac OSX机器和Linux机器之间修改目录/文件时自动同步的脚本
我的Mac上有一些源代码,为了测试,我想将它与包含类似web服务器设置的VM同步到生产环境中。因此,我需要能够在每次发生更改时自动将文件复制到VM 我知道,每当脚本运行时,我都可以使用rsync手动执行此操作,但每次修改特定目录或其子目录中的文件时,我都需要某种方法使其在后台运行 我知道inotifywait存在于Linux机器上,可以解决这个问题。我还了解了FSEvents API和kqueue。然而,这些似乎都不能从命令行访问,我真的不想花很长时间做一些事情来做到这一点 我想我可以使用cronjob,但等待网站上的变化一分钟是相当长的时间Macos 在Mac OSX机器和Linux机器之间修改目录/文件时自动同步的脚本,macos,bash,synchronization,rsync,Macos,Bash,Synchronization,Rsync,我的Mac上有一些源代码,为了测试,我想将它与包含类似web服务器设置的VM同步到生产环境中。因此,我需要能够在每次发生更改时自动将文件复制到VM 我知道,每当脚本运行时,我都可以使用rsync手动执行此操作,但每次修改特定目录或其子目录中的文件时,我都需要某种方法使其在后台运行 我知道inotifywait存在于Linux机器上,可以解决这个问题。我还了解了FSEvents API和kqueue。然而,这些似乎都不能从命令行访问,我真的不想花很长时间做一些事情来做到这一点 我想我可以使用cro
有什么想法吗?使用git或mercurial之类的DVCS,让本地回购运行post-commit钩子来运行rsync,然后运行测试本身怎么样
我有点困惑为什么不能从运行测试的同一个脚本运行rsync。如果运行
rsync-esh
,则可以在VM和Mac之间设置自动公钥身份验证。在这种情况下,不会有任何关于rsync的手册。我一直在这样做,在Windows/Linux/Mac工作站上开发,并将更改保存到远程Linux服务器,在那里它们会立即返回到我的工作站浏览器进行测试。您有两个选择:
您可能可以设置一个启动的代理来执行简单设置所需的操作。有关launchd
WatchPath
键的更多信息,请参阅和。但是看起来,WatchPath
可能不适用于。我不认为他在做“运行单元测试脚本”中的测试——听起来他在本地编辑源文件,将它们复制到服务器上,然后点击浏览器上的刷新以查看更改。