我想在服务器登录时自动运行多个命令,如sudo bash,ssh server01,ls,cd / tmp等。 我在putty中使用SSH下的远程命令选项。
我尝试使用分隔符和&&amp ;;但没有工作。
答案 0 :(得分:1)
您的问题中缺少一些信息。
您说要运行sudo bash
,然后ssh server01
。
sudo会在远程服务器中提示输入密码吗?
假设sudo中没有密码,运行bash将打开另一个等待用户输入的shell。在退出该bash shell之前,命令ssh server01
将不会运行。
如果您想运行2个命令,请先尝试更简单的命令:
ls -l /tmp ; echo "hi there"
或者如果您愿意:
ls -l /tmp && echo "hi there"
这有用吗?
如果你想要的是在运行bash后运行ssh,你可以尝试:
sudo bash -c "ssh server01"
答案 1 :(得分:0)
这可能是因为该命令应该是一个程序名后跟参数,它们将直接传递给程序。为了获得&&
和命令行解释器(如bash
)提供的其他功能,请尝试以下操作:
/bin/bash -c "command1 && command2"
答案 2 :(得分:0)
我尝试了我在之前的回答中提出的建议。
可以在用分号分隔的putty中运行2个简单命令。在我的例子中,我尝试使用ls和echo。远程服务器运行它们,然后会话关闭。
我还尝试过ssh到配置为不要求密码的远程服务器。在这种情况下,它也可以工作,我连接到第二台服务器,我可以在其上运行命令。退出时,2个连接关闭。
所以,请告诉我们你真正需要/想要的东西。
答案 3 :(得分:-1)
您可以使用常规shell语法在PuTTY中执行两个连续命令。例如。使用;
或&&
。
但是你想在ssh server01
shell中执行sudo bash
,对吧?
这些不是两个连续的命令,它在ssh server01
内执行了sudo bash
命令。
所以你必须使用sudo
命令行语法来执行ssh server01
,比如
sudo bash ssh server01