集羣情況:talos102,talos103,talos104 三臺機器
前提條件:完成talos102到talos102、talos103和talos104的免密登陸
- 批量執行命令的腳本: xcall
#!/bin/bash
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi
for i in talos102 talos103 talos104;
do
echo "----------$i---------"
ssh $i $@
done
- 批量複製文件(夾)到集羣機器:(需要安裝rsync)
#!/bin/sh
# 1.獲取輸入參數個數,如果沒有參數,直接退出
pcount=$#
if((pcount==0)); then
echo no args...;
exit;
fi
# 2.獲取文件名稱
p1=$1
fname=`basename $p1`
echo fname=$fname
# 3.獲取上級目錄到絕對路徑
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
# 4.獲取當前用戶名稱
user=`whoami`
# 5.循環
for i in talos103 talos104; do
echo $pdir/$fname $user@$i:$pdir
echo "==================$i=================="
rsync -rvl $pdir/$fname $user@$i:$pdir
done
#Note:這裏的slave對應自己主機名,需要做相應修改。另外,for循環中的host的邊界值
-
注意事項:
-
有可能遠程機器執行結果與本機執行時不一直,可以執行以下操作:
cat /etc/profile >> ~/.bashrc
-