在远程Linux主机上执行本地脚本

Joh*_*ler 5 bash host root

我有一个本地脚本,在远程主机上没有root privs时无法运行.我编辑并允许sudoers文件从home目录(/ home/username/script)运行脚本.该脚本使用结果创建一个txt文件,但我将输出重定向到终端并将输出传递给本地计算机上的文本文件.

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

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

谢谢你的帮助

Gre*_*ore 12

如果你有sudo,并允许sudo到root,那么这可以使用一点点语法:

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


Bar*_*mar 2

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

scp script.sh user@hostname:
ssh user@hostname sudo ./script.sh > results.txt
Run Code Online (Sandbox Code Playgroud)

要在一行中完成此操作:

ssh user@hostname 'cat > script.sh; chmod 755 script.sh; sudo ./script.sh' < script.sh > results.txt
Run Code Online (Sandbox Code Playgroud)

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