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--文件上传失败
注:分发"其他"类型的文件,最好指定决定路径。