我有一个本地脚本,在远程主机上没有root privs时无法运行.我编辑并允许sudoers文件从home目录(/ home/username/script)运行脚本.该脚本使用结果创建一个txt文件,但我将输出重定向到终端并将输出传递给本地计算机上的文本文件.
我不能"ssh user @ hostname sudo -Sv <script.sh> results.txt"因为这不会从远程主机运行脚本,特别是home目录.
有没有人知道将脚本复制到远程主机并在检索输出时以root身份执行的方法(一行)?
谢谢你的帮助
使用 复制脚本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,但我在那里没有太多专业知识。