在 bash 脚本中调用 SSH Sudo 命令
calling SSH Sudo Commands in a bash script
我正在尝试 运行 循环执行命令
一系列服务器地址。
while read server
do
ssh -t $sever "sudo md5sum $fileName >> hashes"
done < serverNamesFile
在 bash 的脚本中,但我一直收到此错误
sudo: sorry, you must have a tty to run sudo
如果我 运行 在命令行中使用同一行命令,它就可以正常工作。
谁能告诉我为什么总是这样?
你可能有
Defaults requiretty
在您的 /etc/sudoers 文件中。
如选项名称所示,这将导致 sudo 需要 tty
我解决了我的问题。显然在脚本中循环遍历一系列服务器会导致 SSH "TTY" 错误。
更好的做法是创建一个脚本,该脚本接收要通过 SSH 连接的服务器的地址,然后以这种方式传递命令。您仍然可以通过每次调用 SSH 并使用此命令来遍历一系列文件或命令:
while read stuff
do
ssh -qtt $severName " command"
done < $fileStuff
我正在尝试 运行 循环执行命令 一系列服务器地址。
while read server
do
ssh -t $sever "sudo md5sum $fileName >> hashes"
done < serverNamesFile
在 bash 的脚本中,但我一直收到此错误
sudo: sorry, you must have a tty to run sudo
如果我 运行 在命令行中使用同一行命令,它就可以正常工作。
谁能告诉我为什么总是这样?
你可能有
Defaults requiretty
在您的 /etc/sudoers 文件中。
如选项名称所示,这将导致 sudo 需要 tty
我解决了我的问题。显然在脚本中循环遍历一系列服务器会导致 SSH "TTY" 错误。
更好的做法是创建一个脚本,该脚本接收要通过 SSH 连接的服务器的地址,然后以这种方式传递命令。您仍然可以通过每次调用 SSH 并使用此命令来遍历一系列文件或命令:
while read stuff
do
ssh -qtt $severName " command"
done < $fileStuff