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 @   paul_hch  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2023-01-03 Ansible的条件语句【转】
2020-01-03 memcached双主复制搭建工作【转】
点击右上角即可分享
微信分享提示