linux命令多服务器分发执行【xcall】
前言:
- linux服务器/usr/local/sbin目录,一般是用户自己安装软件后的命令所在目录。将命令放在此处可以在linux中任意位置执行,相当于自动添加了全局变量,所以将xcall放入此处较为合适。
- 各个服务器需提前添加ssh互信
- 本命令分发脚本用法:
1)在任意目录输入:xcall 命令
即可在配置的服务器执行
2)会自动进入用户,执行命令的所在目录,执行命令
3)如果有输出,会将输出打印到控制台
按顺序执行以下命令
- 进入用户软件安装命令目录
cd /usr/local/sbin
- 创建xcall命令,也可直接复制脚本内容直接vim并添加到里面
touch xcall
- 添加可执行权限
chmod 710 xcall
- 将以下内容添加到xcall中
#!/bin/bash
file_name='xcall-server.list'
cmd_str=$1
pwdstr=$(pwd)
serverListPath=$(dirname $0)
cd $pwdstr
serverlist_file="$serverListPath/$file_name"
if [ ! -e $serverlist_file ] ; then
echo "xcall-server.list not exist, whole path is $serverlist_file";
exit 0;
fi
while read line
do
if [ -n "$line" ] ; then
echo "DOING --->" $line "<---"
ssh root@$line "cd $pwdstr;$@" < /dev/null
fi
done < $serverlist_file
- 在当前目录下新建文件,添加执行的服务器列表
touch /usr/local/sbin/xcall-server.list
- 执行以下命令
cat >> /etc/hosts << EOF
192.168.1.11
192.168.1.21
192.168.1.22
EOF
本文作者:无畏D尘埃
本文链接:https://www.cnblogs.com/yangche/p/16910121.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步