linux文件分發腳本


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--文件上傳失敗

注:分發"其他"類型的文件,最好指定決定路徑。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM