注: 部分概念介绍来源于网络

SSH 是 Linux 下进行远程连接的基本工具,不光可以登录,也可以远程操作。
一、执行简单的命令:
ssh root@127.0.0.1 "df -h"
一次执行多条命令,使用分号把不同的命令隔起来就 OK 了
ssh root@127.0.0.1 "df -h;pwd"
添加 -t 参数后,ssh 会保持登录状态,直到你退出需要交互的命令。
ssh -t root@127.0.0.1 "df -h"

二、保存远程执行命令结果:
赋值的方式:result=`ssh root@127.0.0.1 "df -h"`
追加到文件:ssh root@127.0.0.1 "df -h" >> ./log

三、执行本地的脚本
我们在本地创建一个脚本文件 test.sh:
然后运行下面的命令:
ssh root@127.0.0.1 < test.sh
通过重定向 stdin,本地的脚本 test.sh 在远程服务器上被执行。
接下来我们期望能为脚本 test.sh 传递一个参数:
然后尝试执行下面的命令:
ssh root@127.0.0.1 < test.sh helloworld
ssh root@127.0.0.1 < "test.sh helloworld"
显示了执行的结果:方法都无法为脚本传递参数。
要想在这种情况下(远程执行本地的脚本)执行带有参数的脚本,需要为 bash 指定 -s 参数:
ssh root@127.0.0.1 'bash -s' < test.sh helloworld

四、执行远程服务器上的脚本
除了执行本地的脚本,还有一种情况是脚本文件存放在远程服务器上,而我们需要远程的执行它!
此时在远程服务器中有一个脚本 test.sh。文件的内容如下:
执行下面的命令:
ssh root@127.0.0.1 "/home/test.sh"
注意,此时需要指定脚本的绝对路径!
下面我们也尝试为脚本传递参数:
然后尝试执行下面的命令:
ssh root@127.0.0.1 /home/test.sh helloworld
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐