ssh 远程执行命令【转】

前言

liyongjun@box:~/tmp$ ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]

 


查看 ssh 用法时,发现 ssh 最后可以跟个 command 命令。
也就是说,当我们通过 ssh 连接到远程主机时,可以指定一个命令。
一旦建立连接成功,ssh 会将指定的命令发送到远程主机,远程主机的 ssh 服务会接收并执行该命令,然后将执行的结果返回给本地主机,最后本地主机的 ssh 客户端将结果显示在本地终端上。

一、执行命令

liyongjun@box:~/tmp$ ssh nvidia@192.168.37.82 "cat /proc/uptime"
nvidia@192.168.37.82's password: 
191027.08 1523420.80

 


二、执行交互命令

ssh -t nvidia@192.168.37.82 "top"

-t 表示强制开启一个伪终端,这样可以用来执行任意交互式命令。甚至可以使用 vim,如下

liyongjun@box:~/tmp$ ssh -t nvidia@192.168.37.82 "vim a.txt"

 

三、执行多条命令

方式一

liyongjun@box:~/tmp$ ssh nvidia@192.168.37.82 "cat /proc/uptime;pwd;uname -r"
nvidia@192.168.37.82's password: 
192088.73 1531873.12
/home/nvidia
5.15.136-tegra

 


方式二

liyongjun@box:~/tmp$ ssh nvidia@192.168.37.82 "
> cat /proc/uptime
> pwd
> uname -r
> "
nvidia@192.168.37.82's password: 
192167.37 1532498.00
/home/nvidia
5.15.136-tegra

 


四、执行脚本

liyongjun@box:~/tmp$ cat cmd.sh 
cat /proc/uptime
pwd
uname -r
liyongjun@box:~/tmp$
liyongjun@box:~/tmp$ ssh nvidia@192.168.37.82 "bash" < cmd.sh
nvidia@192.168.37.82's password: 
192335.95 1533840.16
/home/nvidia
5.15.136-tegra

 


转自

ssh 远程执行命令_ssh远程执行命令-CSDN博客
https://blog.csdn.net/lyndon_li/article/details/143840064

 

posted @ 2025-01-03 15:17  paul_hch  阅读(136)  评论(0)    收藏  举报