Linux Shell远程执行命令

1.问题描述

经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,下边介绍shell命令远程执行的方法。

前提: 远程电脑之间已经配置ssh免密码登陆

2.脚本方式

有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现:

#!/bin/bash

SERVERS="hadoop0 hadoop1 hadoop2"


delete_file(){
ssh root@$1 > /dev/null 2>&1 << eeooff
cd /usr/local
# touch abcdefg.txt
# rm -rf jdk1.7.0_79
rm -rf /test/abcdefg.txt
exit
eeooff
echo done!
}

for SERVER in $SERVERS
    do
        delete_file $SERVER
    done

远程执行的内容在“<< eeooff ” 至“ eeooff ”之间,在远程机器上的操作就位于其中,注意的点:

1.<< eeooff,ssh后直到遇到eeooff这样的内容结束,eeooff可以随便修改成其他形式。

2.重定向目的在于不显示远程的输出了

3.在结束前,加exit退出远程节点

原文地址:https://www.cnblogs.com/chaoren399/p/6377063.html