我试图在连接到ssh服务器后找到UNIX或bash命令来运行命令.例如:
ssh name@ip "tmux list-sessions"
Run Code Online (Sandbox Code Playgroud)
上面的代码工作,它列出了会话,但然后立即断开连接.将它放在服务器端的sshrc中可以正常工作,但我需要能够在客户端输入它.我希望能够运行命令,登录,打开窗口,然后运行我设置的命令.我试过了
[command] | ssh name@ip
ssh name@ip [command]
ssh name@ip "[command]"
ssh -t name@ip [command]
Run Code Online (Sandbox Code Playgroud)
Bar*_*mar 226
ssh -t 'command; bash -l'
Run Code Online (Sandbox Code Playgroud)
将执行该命令,然后在完成后启动登录shell.例如:
ssh -t user@domain.com 'cd /some/path; bash -l'
Run Code Online (Sandbox Code Playgroud)
Mig*_*rro 13
LocalCommand如果PermitLocalCommand启用该选项,则可以使用命令行选项:
ssh username@hostname -o LocalCommand="tmux list-sessions"
Run Code Online (Sandbox Code Playgroud)
有关可用选项的更多详细信息,请参见ssh_config手册页.
这不是很你在寻找什么,但我发现它在类似情况下非常有用.
我最近添加了以下内容$HOME/.bashrc(类似于bash以外的其他类似的东西):
if [ -f $HOME/.add-screen-to-history ] ; then
history -s 'screen -dr'
fi
Run Code Online (Sandbox Code Playgroud)
我screen在一台特定的机器上运行会话,并且我遇到了与ssh该机器的连接被丢弃的问题,screen -dr每次重新连接时都要求我重新运行.
通过添加,在我的主目录中创建该(空)文件后,screen -dr我的shell启动时会自动在历史记录中显示该命令.重新连接后,我可以输入,Control-P Enter然后我回到屏幕会话中 - 或者我可以忽略它.它很灵活,但不是很自动,在你的情况下它比打字容易tmux list-sessions.
您可能希望使history -s命令无条件.
这确实需要$HOME/.bashrc在每个目标系统上更新,这可能会或可能不会使它不适合您的目的.
| 归档时间: |
|
| 查看次数: |
141131 次 |
| 最近记录: |