1.說明
此腳本可分發兩類文件,1.固定內容文件,2.(每台被分發主機)內容不同的文件
ppp.sh為撥號腳本,每台被分發主機內容不同
根據分發文件名字不同(ppp.sh和其他文件)自動選擇分發方式
2.腳本
#!/bin/sh files=$1 ip=$2 port=$3 [ -z "$files" ]&&{ echo '10001' exit 0 } [ -z "$ip" ]&&{ echo '10002' exit 0 } [ -z "$port" ]&&{ echo '10003' exit 0 } path=1 if [ "$files" = "ppp.sh" ];then dir=`cat /proc/sys/kernel/random/uuid` rm -rf /tmp/.$dir mkdir /tmp/.$dir cp ppp0.txt /tmp/.$dir/ppp.sh echo "ip2='"$ip"'" >> /tmp/.$dir/ppp.sh echo "sshport='"$port"'" >> /tmp/.$dir/ppp.sh cat ppp1.txt >> /tmp/.$dir/ppp.sh ssh -o ConnectTimeout=3 -p $port root@${ip} date > /dev/null if [ $? -eq 0 ];then scp -P $port /tmp/.$dir/ppp.sh root@${ip}:/root if [ $? -ne 0 ];then echo '10007' rm -rf /tmp/.$dir exit 0 fi ssh -o ConnectTimeout=6 -p $port root@${ip} 'chmod 700 ppp.sh' if [ $? -eq 0 ];then echo '10000' rm -rf /tmp/.$dir exit 0 else echo '10005' rm -rf /tmp/.$dir exit 0 fi else echo '10004' rm -rf /tmp/.$dir exit 0 fi else [ -f "$files" ]||{ echo '10006' exit 0 } ssh -o ConnectTimeout=3 -p $port root@${ip} date > /dev/null if [ $? -eq 0 ];then scp -P $port $files root@${ip}:/root if [ $? -ne 0 ];then echo '10007' exit 0 fi temp=`ssh -o ConnectTimeout=6 -p $port root@${ip} "sh $files"` if [ $? -eq 0 ];then echo '10000' exit 0 else echo '10005' exit 0 fi else echo '10004' exit 0 fi fi
[root@zxserver05 sync_script]# ./sync_script.sh ppp.sh wzdx1.leyuyun.com 20380 ppp.sh 100% 2869 2.8KB/s 00:00 10000
10000--執行成功 10001--文件未指定 10002--ip未指定 10003--port未指定 10004--ssh連接失敗 10005--文件遠程至訊失敗 10006--指定文件不存在 10007--文件上傳失敗
注:分發"其他"類型的文件,最好指定決定路徑。