Alfred 工作流程:成功连接后使用 SSH 并运行命令

Alfred 工作流程:成功连接后使用 SSH 并运行命令

我想要通过 SSH 连接到远程机器,并且连接后想要运行一个命令导航到一个特定的文件夹。

我有一个 SSH 别名friday,连接后我想导航到一个文件夹,例如 cd cdd2/workspace,然后运行命令 run webapp

但每当我尝试这个时,Alfred 都不会在同一个窗口中运行命令,而且它会失败。我还希望终端可见,这样我就可以检查是否有任何不可预见的错误。

目前我正在尝试使用 Aflred 终端窗口,但它不会等待 ssh 完成并立即运行,即使我尝试

friday ; cd cdd2/workspace ; run workflow

答案1

让我们看一下你的例子:

friday ; cd cdd2/workspace ; run workflow

无论 ssh 连接是否因错误退出,您都将在本地机器上运行以下命令:

这是因为您使用了命令分隔符;

您要做的是在您的远程机器上运行该命令,您可以通过在 ssh 命令后指定要运行的命令来执行此操作:

ssh -p 12345 someuser@somemachine "cd cdd2/workspace && run workflow"

在这种情况下,我们使用双“&”符号&&作为命令分隔符,它将告诉你的(远程)shell 仅在第一个命令成功退出且没有任何错误时才运行第二个命令。

如果 ssh 连接中断,您可能需要使用以下命令screen来防止软件退出:

ssh -p 12345 someuser@somemachine "cd cdd2/workspace && screen run workflow"

现在,如果连接中断,您可以简单地重新连接到服务器并ssh -p 12345 someuser@somemachine "screen -r"重新连接到正在运行的屏幕会话,而不会丢失任何数据。

相关内容