如何通过SSH在远程服务器上运行本地Shell脚本?


Answers:


16
ssh user@remotehost "bash -s" < local_script.sh

-s 使bash从标准输入中读取。

如果需要将参数传递给脚本:

ssh user@remotehost "bash -s" -- < local_script.sh "your_arg" "--aswitch" "avalue"

注意双破折号--(表示命令选项的末尾)和引号周围的引号。


我必须记住这一点。请让我们知道该方法是否对您有用,并且请不要忘记将答案标记为已接受。
2012年

3
不需要-s,只有bash真正要强制使用时才需要bash。通常,您可以简单地ssh user@remotehost < local_script.sh
-janos

1
如果本地脚本具有操作数怎么办?
kmassada 2014年

我有一个需要参数的脚本,例如“ sh setup.sh arg1 arg2 arg3”如何执行
Amarjit Singh

4

phoibos的答案对我有用。

ssh user@remotehost "bash -s" < local_script.sh

但是您必须确保脚本明确调用exit,否则脚本执行后您将保持登录到远程服务器的状态。

简而言之,别忘了将其放在以下内容的末尾local_script.sh

exit 0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.