工作目的:
- OS:FreeBSD i386 , 10.3-RELEASE-p11
- CPU:Intel(R) Core(TM)2 Duo CPU @ 3.00GHz
- RAM:4096 MB
ssh 執行遠方主機
有的時候不是懶,是效率問題。
基於安全機制,很多服務主機並未直接對外連線,只能經由授權連線的IP或主機再轉入進行維護。
當然只有幾台時,沒遇到困難及問題;然而當主機群數量幾十台甚或幾百台的規劃時,效率還有精確就是要好生思量了。
所以利用/etc/hosts檔案內容及sudo命令,簡單作一個script來幫忙吧!
#!/bin/sh
# file : execCmdAll.sh
# Execute command on all remote machines
# 檢查有無輸入命令
if [ -z "$1" -a "$1" == " " ]; then
echo "Input Command for remote machines to execute!"
exit 1
fi
u=0
#找出10.開頭的內網ip主機
for myhost in `grep "^10\." /etc/hosts |awk 'BEGIN{ORS=" "}{print $1}'`;do
let ++i
# 每台都要有sudo權限
ssh ${myhost} sudo $1
# 美化輸出
echo -e "\033[0;92m#${i} \033[0mexecuting \033[1;93m$1 for \033[42m${zzhost} \033[0m"
done
EmoticonEmoticon