我经常搜索服务器,切换到特定目录并运行svn-update
我认为可能有一种非常简单的自动化方法,因此我可以在运行脚本时简单地指定一个子目录,它将通过SSH登录,cd到正确的目录并运行svn-update。 / p>
这是capistrano的工作还是一个简单的bash脚本可以完成这项工作?
答案 0 :(得分:5)
听起来像cron的工作。执行crontab,并添加如下条目:
#min hour date month day command 0 * * * * ssh user@host '(cd path/to/working/copy; svn update)'
您可能需要设置ssh passwordless authentication with ssh-agent,以便不会提示。
编辑(以下评论):
假设您有足够的权限,请运行
ssh user@host crontab -e
然后添加如下条目:
#min hour date month day command 0 * * * * (cd path/to/working/copy; svn update)
您可以忽略编辑上方的部分,除非您的服务器不允许您使用cron。
答案 1 :(得分:2)
也许您应该问问自己为什么要执行此操作?
诸如CruiseControl或Hudson之类的构建服务器是否可以解决更一般的情况(知道何时执行了svn提交)?
如果您需要在特定的svn服务器上进行监控,并且您具有管理访问权限,则可以启用服务器的提交后挂钩,例如在每次提交时向您发送电子邮件(或仅在某些特定类型上提交)。
如果您能澄清您的情况的用例,那将会有所帮助。
答案 2 :(得分:0)
简单的bash脚本会这样做,将svn update命令添加到/ etc / profile文件中。
请参阅here for bash login脚本处理。
如果你想从另一个盒子里运行它(即没有登录),请记住,如果有一个正在运行的进程,ssh将不会退出,所以你可能想在后台运行更新,所有的重定向到的/ dev / null的。