如何在远程机器上通过nohup运行带有sudo的shell脚本

时间:2016-02-02 19:09:36

标签: bash

我从本地计算机运行以下命令:

ssh -i key remote_host "nohup sh test.sh > nohup.out 2> nohup.err < /dev/null &"

然后我收到错误:sudo: sorry, you must have a tty to run sudo

我添加了-tt选项:

ssh -tt -i key remote_host "nohup sh test.sh > nohup.out 2> nohup.err < /dev/null &"

我检查了遥控器,test.sh没有运行(没有进程ID)。

我取出了nohup,一切运行正常,ssh -tt -i key remote_host&#34; sh test.sh&#34;但我需要使用nohup。有人能帮我吗?非常感谢!

一个remote_host:test.sh脚本:

#!/bin/bash
sudo iptables -A OUTPUT -p tcp --dport 443 -j DROP
sleep 30
sudo iptables -D OUTPUT -p tcp --dport 443 -j DROP

1 个答案:

答案 0 :(得分:0)

sudo可能会尝试提示您输入密码。您需要在remote_host的sudoers文件中设置NOPASSWD,或者您可以使用expect