自动化 SSH/本地命令的正确方法是什么?

自动化 SSH/本地命令的正确方法是什么?

我在 Centos 5.5 机器上有 gitolite - 当更新存储库时,我需要向我的错误跟踪设备发送命令以获取新命令。现在,我可以使用以下命令:

ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod && exit'

不过,这似乎有点肮脏。有没有更好的方法来执行此同步?

答案1

将其放入 Makefile 中。

sync:
↹ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod && exit'

然后运行它。

$ make sync

请注意,这实际上是一个制表符。请参阅编辑器的文档以了解如何输入它(但CtrlVTab可能有效)。

答案2

您也许可以使用脚本编写一些东西预计,但是对于这么简单的事情来说可能过于复杂了。我过去曾使用它来登录远程电源开关并循环给定端口,因此我相信您也可以将它用于此应用程序。

答案3

这里有两个额外的解决方案,都假设您使用的是 bash shell。第一个是创建一个函数来执行任务,将该函数放置在 ~/.bashrc 文件中:

function bugsync() {
    ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod'
}

第二种是创建别名:

alias bugsync="ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod'"

请注意,您不需要指定命令的“&& exit”部分。

答案4

在考虑了这些选项之后,我决定修改该命令(删除&& exit)并保留原样以便简单起见。

相关内容