我在服务器上并运行一个包含以下代码的脚本文件。
ssh username@servername
sudo su - root
cd /abc/xyz
mkdir asdfg
我能够ssh ...但是接下来的命令不起作用..脚本不是sudo-ing。任何的想法?
编辑:能够创建一个mech id,然后做一些事情......虽然仍在寻找上述问题的答案:|
答案 0 :(得分:2)
首先,你的命令将会#34;卡住"在第一行,因为它将进入交互模式。 ssh命令将需要用户提供密码(除非使用了sshkey)。如果ssh登录到远程服务器,那么它将等待来自标准输入的用户命令。
其次,ssh命令后面的行只有在第一个进程退出时才会执行。这就是为什么你的剧本不是" sudoing" - 它正在等待ssh结束。
因此,如果您要在远程服务器上运行命令,则将该命令作为参数放入与ssh连接相同的行中。在你的情况下:
ssh user@server sudo su - root
但这对你来说并不满意。我建议你创建一个脚本,告诉你要在远程服务器上执行什么,然后执行脚本。
ssh user@server scriptName
这里的sudo非常棘手,因为你的脚本可能会再次陷入交互模式,等待插入密码,所以我建议你再根据脚本进行思考。
答案 1 :(得分:0)
MB47!
您想在远程计算机上运行脚本,对吗?
在远程计算机上,创建一个包含要执行的命令的文件。
然后,在另一台计算机上运行ssh user@machine /path/to/script/you/created/earlier
我希望这有帮助!
ALinuxLover