5

我有一个本地脚本,如果没有远程主机上的 root 权限,它将无法运行。我已经编辑并允许 sudoers 文件从主目录(/home/username/script)运行脚本。该脚本使用结果创建一个 txt 文件,但我将输出重定向到终端并将输出通过管道传输到本地计算机上的文本文件。

我不能“ssh user@hostname sudo -Sv < script.sh > results.txt”,因为这不会从远程主机运行脚本,特别是主目录。

有谁知道一种方法(一行)将脚本复制到远程主机并在检索输出时以 root 身份执行它?

感谢您的任何帮助

4

2 回答 2

12

如果你有 sudo,并且允许 sudo 到 root,那么这可以使用更少的语法:

ssh -T user@hostname 'sudo su -' < script.sh

于 2013-11-21T18:22:28.077 回答
2

使用 复制脚本scp,然后运行它。

scp script.sh user@hostname:
ssh user@hostname sudo ./script.sh > results.txt

要在一行中完成:

ssh user@hostname 'cat > script.sh; chmod 755 script.sh; sudo ./script.sh' < script.sh > results.txt

但是,如果您需要在sudo. 所有ssh的标准输入都将放在脚本中。可能有一种方法可以使用Expect,但我在那里没有太多专业知识。

于 2013-08-01T18:23:45.577 回答