zoukankan      html  css  js  c++  java
  • 一条shell命令让多台Linux服务器执行

    1、环境

    局域网环境有3台Linux服务器,配置host文件

    [root@master1 ~]# vim /etc/hosts

    192.168.8.201 master1
    192.168.8.202 slave1
    192.168.8.203 slave2

    2、配置master1免密码访问slave1和slave2

    [root@master1 ~]# cd .ssh/                        # 若没有该目录,请先执行一次ssh  localhost
    [root@master1 .ssh]# ssh-keygen -t rsa            # 会有提示,都按回车就可以

    #将master1的id_rsa.pub文件的内容追加到slave1和slave2的authorized_keys文件中,内容如下所示:

    [root@slave1 ~]# cat ~/.ssh/authorized_keys
    ssh-rsa BBAAC4NzaC1yc2EAAAADAQABAAABAQDfHoKNd2gromznR4tdIV5HYoQkZrELNfmzPiy+dlslL1LYVXuPrHvpVpUEbaXXvUf1LbYJWZNc97IeM4Z75WD48vTNaeNf0QqjSdRfA2e48jQKZrewIURfjNGQDsgoAfykKZmGLlY5LgKl/0ofbxIDdxXdUDd3/XaIio5O6vS7N0MUYMk/GXb/OSdSqfbTHY9cR8qmBze7+de1JzT0dzBb3YKb9TDE0HQnycEZG9yoxgylK62SooAwgGlv1HFZKjX9JFmuRHUd4kQJM+Ubi3uDAarGzKcNuM/LyRG7eEZUYHaicGRXZdY6KHsjitz9wkEuUGEuhjahXJvzEmIS7Apd root@master1

    3、在master1上编写shell脚本

    [root@master1 ~]# vim /usr/local/bin/xcall
    #!/bin/sh
    echo -e "33[33m---------master1------------33[0m"
    ssh root@master1 "su - root -c "$*""
    echo -e "33[33m---------slave1-------------33[0m"
    ssh root@slave1 "su - root -c "$*""
    echo -e "33[33m---------slave2-------------33[0m"
    ssh root@slave2 "su - root -c "$*""
    exit

    给xcall文件添加执行权限

    [root@master1 ~]# chmod +x /usr/local/bin/xcall

    4、测试

    [root@master1 ~]# xcall.sh ls
  • 相关阅读:
    奶牛跑步2
    数据结构练习
    HighChats报表使用C#mvc导出本地图片
    选择论
    投票选举
    价值
    工作5年后总结的工作经验
    formValidator 不支持jquery1.9以上的解决办法
    随想29:没有最完美的制度,只有最适合的制度
    随想28:愿我成为一个高级黑
  • 原文地址:https://www.cnblogs.com/unreal/p/8626222.html
Copyright © 2011-2022 走看看