运行ssh并立即执行命令

这个问题在这里已经有了答案:

  • 我可以在什么地方sshsh,运行一些命令,然后给我一个提示? 4个答案

  • ssh -t 'command; bash -l'
    

    将执行该命令,然后在完成时启动登录shell。


    如果启用PermitLocalCommand选项,则可以使用LocalCommand命令行选项:

    ssh用户名@主机名-o LocalCommand =“tmux list-sessions”

    有关可用选项的更多详细信息,请参见ssh_config手册页。


    这不是你想要的,但我发现它在类似情况下很有用。

    我最近添加了以下内容到我的$HOME/.bashrc (与bash以外的其他shell类似):

    if [ -f $HOME/.add-screen-to-history ] ; then
        history -s 'screen -dr'
    fi
    

    我在一台特定的机器上保持一个screen会话运行,并且遇到与该机器的ssh连接出现问题,因此每次重新连接时都需要重新运行screen -dr

    有了这个补充,并且在我的主目录中创建了这个(空的)文件之后,当我的shell启动时,我会自动在我的历史记录中screen -dr命令。 重新连接后,我可以输入Control-P Enter,然后回到屏幕会话中 - 或者我可以忽略它。 它很灵活,但不是很自动,在你的情况下比输入tmux list-sessions更容易。

    您可能希望无条件地创建history -s命令。

    这确实需要更新每个目标系统上的$HOME/.bashrc ,这可能会或可能不会使其不适合您的目的。

    链接地址: http://www.djcxy.com/p/97153.html

    上一篇: Run ssh and immediately execute command

    下一篇: rsync: how can I configure it to create target directory on server?