有时候需要批量执行命令,但是又不想搞一遍 ansible,刚好 ssh 也可以远程执行命令。
#!/bin/bash
# 定义 IP 列表
ip_list=("10.179.68.77" "192.168.10.10" "192.168.10.20")
if [ -z "$1" ]; then
echo "run.sh xxx.sh"
exit 1
fi
cmdFile=$1
# 遍历 IP 列表,使用 ssh 分别执行命令列表中的命令
for ip in "${ip_list[@]}"; do
echo "================================================================================="
echo "run cmd on host $ip"
ssh root@$ip < $cmdFile
done
将需要执行的 shell,写在 xxx.sh 中,然后通过 run.sh xxx.sh 执行即可。