Linux Shell远程执行命令(ssh)

  • Post author:
  • Post category:linux


使用前提:配置ssh免密码登陆(这里我已做了互信)



一、对于几条命令:

格式:

ssh remote_username@remote_ip "remote_command"

注释:

  • remote_username 远程用户名
  • remote_ip 目标服务器ip
  • remote_command 操作在目标服务器上的指令
  • 这里单引号或双引号开头都可以,最后再用相同的引号来结束

例:

服务器一
[root@xsnq ~]# ssh root@192.168.75.5 'touch /opt/xsnq.txt && echo "test" > /opt/xsnq.txt'
服务器二
[root@localhost opt]# ll
total 4
-rw-r--r--. 1 root root 5 Mar  3 11:37 xsnq.txt
[root@localhost opt]# cat xsnq.txt 
test


二、对于多条命令

举例格式:

ssh user@remoteNode > /dev/null 2>&1 <<aabbcc
...
exit
aabbcc
echo end!
  • 远程执行的内容在“<< aabbcc ” 至“ aabbcc”之间,aabbcc可以随便修改成其他形式
  • 重定向不显示远程的输出
  • 命令执行完之后exit退出远程节点

例:

#!/bin/bash
#安装speedtest-cli
#V1.0
ssh user@remoteNode > /dev/null 2>&1 <<aabbcc
if [ ! -f /usr/local/bin/speedtest-cli ]
then
wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod a+rx speedtest.py
mv speedtest.py /usr/local/bin/speedtest-cli
chown root:root /usr/local/bin/speedtest-cli
fi
sleep 3
exit
aabbcc
echo end!

本文出现任何错误,请留言私信批评指正。



版权声明:本文为weixin_46623617原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。