前言:
linux服务器/usr/local/sbin目录,一般是用户自己安装软件后的命令所在目录。将命令放在此处可以在linux中任意位置执行,相当于自动添加了全局变量,所以将xcall放入此处较为合适。
各个服务器需提前添加ssh互信
本命令分发脚本用法:
1)在任意目录输入:xcall 命令
即可在配置的服务器执行
2)会自动进入用户,执行命令的所在目录,执行命令
3)如果有输出,会将输出打印到控制台
按顺序执行以下命令
- 进入用户软件安装命令目录
cd /usr/local/sbin
- 创建xcall命令
touch xcall
- 添加可执行权限
chmod 710 xcall
- 执行以下命令添加分发执行脚本命令
cat >> /usr/local/sbin/xcall << EOF
#!/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
EOF
- 在当前目录下新建文件,添加执行的服务器列表
touch /usr/local/sbin/xcall-server.list
- 执行以下命令
cat >> /etc/hosts << EOF
192.168.1.11
192.168.1.21
192.168.1.22
EOF
标签:xcall,命令,usr,linux,服务器,执行
From: https://www.cnblogs.com/yangche/p/16910121.html