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

Bash 在远程Linux主机上执行本地脚本,bash,root,host,Bash,Root,Host,我有一个本地脚本,如果远程主机上没有根priv,它将无法运行。我已经编辑并允许sudoers文件从home目录(/home/username/script)运行脚本。脚本创建了一个包含结果的txt文件,但我将输出重定向到终端,并将输出通过管道传输到本地计算机上的文本文件 我不能“嘘”user@hostnamesudo-Svresults.txt”,因为这不会从远程主机运行脚本,特别是从home dir 是否有人知道将脚本复制到远程主机并在检索输出时以root用户身份执行脚本的方法(一行) 感谢您

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

我不能“嘘”user@hostnamesudo-Svresults.txt”,因为这不会从远程主机运行脚本,特别是从home dir

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


感谢您的帮助

使用
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
sshuser@hostname'cat>script.sh;chmod 755 script.sh;sudo./script.sh'results.txt

但是,如果您需要在
sudo
中输入密码,则此操作无效。所有
ssh
的stdin都将放入脚本中。可能有一种方法可以使用
Expect
,但我在这方面没有太多的专业知识。

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


ssh-Tuser@hostname“sudo su-”

感谢您的及时回复!ssh密钥没有存储,所以我需要在scp'ing和ssh'ing时输入一个14字符的pswd。有没有办法一行一行的呢?我不需要输入sudo(运行脚本)的密码。这似乎将工作得很好!另外,非常感谢您的时间和帮助!!这不是对这个问题的正确回答,而是关于远程运行命令,而不是推到远程机器!问题的最后一行是将脚本复制到远程主机并执行它。