运行远程命令

时间:2016-08-30 14:04:20

标签: linux ssh

我在网上看到了类似的问题,但没有一个答案有效,希望新的请求能够揭示答案。

我正在尝试在Linux机器上运行远程查询,我可以解决的问题是我保持与远程服务器的连接。

我在脚本中设置了-x所以我正在观看输出。 我的部分脚本在

下面
ssh -tt $host.digital.domain.com << EOF
sudo su - foo
/apps/scripts/bar.sh
exit
EOF

脚本正确运行

[user@server ~]$ [foo@host ~]$ + rm -f '/tmp/files*'

但是窗口会在远程计算机上提示而不是退出。

[foo@host ~]$

我使用了-tt开关,因为我收到了tty错误 我也试图杀死pid,但这也不起作用。 进行脚本的唯一方法是让我'ctrl c'退出远程会话。

我试过在一行上运行ssh但是这没有用,可能是因为sudo,我不确定。

任何建议都会很棒。

感谢

1 个答案:

答案 0 :(得分:1)

&#34; su&#34;命令你打开新的bash会话。如果你只写一个&#34;退出&#34;,你只能完成foo用户的会话。为了通过ssh连接打开会话,你应该写其他&#34;退出&#34;。

ssh -tt $host.digital.domain.com << EOF
sudo su - foo
/apps/scripts/bar.sh
exit  #Exit foo session
exit  #Exit ssh session 
EOF

输出:

sshuser@prompt$  sudo su - foo
foo@prompt$  /apps/scripts/bar.sh
foo@prompt$ exit #Exit foo session
exit
sshuser@prompt$ exit #Exit ssh session
logout
Connection to $host.digital.domain.com closed.