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--文件上传失败

注:分发"其他"类型的文件,最好指定决定路径。

 

posted on 2016-12-28 21:28  vijayfly  阅读(4087)  评论(0编辑  收藏  举报

导航