首页 > 系统服务 > 详细

linux文件分发脚本

时间:2016-12-29 07:12:17      阅读:251      评论:0      收藏:0      [点我收藏+]

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

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

 

linux文件分发脚本

原文:http://www.cnblogs.com/vijayfly/p/6230949.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!