向已联网的联社管理员推荐:相同文件批量向辖内网点传送实用程序
若有需要者:请联系。
程序原文:
#! /bin/ksh
# 功能:实现将某指定文件批量向辖内网点传送,类似于同内容短信群发功能。
# 适用于:管辖机构对辖内网点一次性批量传送某文件,一般在做网点程序维护时用到。
# 要求:所传送文件在远端的用户名、密码、存放路径相同,远端IP地址在<IP地址簿>文件中
# 指定。
# 使用:在$提示符下键入程序名回车即可使用
# 编辑:湖北省石首市联社李宏
# 时间:2005.08.25
ftp_file() #### 传输文件 ####
{
>/tmp/传输不成功记录.txt
chmod 777 /tmp/传输不成功记录.txt
Num_ftp_fail=0
Num_ftp_ok=0
for i in $IP_address
do
echo "\t\t开始向$i 传送文件...\c"
echo `ping -c 1 -s 300 -q $i` >/tmp/temp1
PackageNum=`cat /tmp/temp1 | awk '{ printf("%s\n",$15)}'`
[ `echo $PackageNum` == 0 ] && {
echo "不通!无法完成文件上传任务!"
echo "到$i 不通!无法完成文件传送任务!" >>/tmp/传输不成功记录.txt
Num_ftp_fail=`expr $Num_ftp_fail + 1`
continue
}
( echo "user $USER $PASSWORD"
echo "bin"
echo "cd $FILE_path"
echo "put $FILE_name"
echo "chmod 755 $FILE_name"
echo "bye"
) | ftp -n $i
echo "完成!"
Num_ftp_ok=`expr $Num_ftp_ok + 1`
done
if [ -s /tmp/传输不成功记录.txt ]
then
{
echo "\n\t向${Num_ftp_all}个网点传送文件,其中有${Num_ftp_ok}个成功,${Num_ftp_fail}个失败,失败的是:"
tail -n $Num_ftp_fail /tmp/传输不成功记录.txt
}
else
echo "\n\t向${Num_ftp_all}个网点传送文件,全部成功!"
fi
echo "\t[2;14;4m按回车键继续![2;7;0m\c"
read wait
}
file_input() #### 指定要向远端传送的文件及在远端的绝对路径 ####
{
echo "\t\t请输入您要向远端传送的文件名:\c"
read FILE_name
echo "\t\t请输入所传文件“${FILE_name}”在远端的用户名(如root):\c"
read USER
echo "\t\t请输入所传文件“${FILE_name}”在远端的用户名密码:\c"
read PASSWORD
echo "\t\t请输入所传文件“${FILE_name}”在远端的绝对路径(如/usr/aaa):\c"
read FILE_path
}
#### 主程序 ####
Num_all_line=`cat IP地址簿|wc -l`
Num_all_line=`expr $Num_all_line - 1`
Num_zxs=20 ### 定义中心社个数
Num_fenshe=8 ### 定义信用分社个数
while true
do
clear
echo "\n"
echo "\t\t欢迎使用石首市联社相同文件批量向辖内网点传送实用程序"
echo "\t\t 开发:石首联社"
echo "\t\t 电话:07167299260"
echo "\t\t ============================================"
echo "\t\t 1: 向全辖网点传输文件"
echo "\t\t 2: 向中心信用社传输文件"
echo "\t\t 3: 向信用分社传输文件"
echo "\t\t 0: 退出本程序"
echo "\t\t ============================================"
echo "\t\t 请选择 :\c"
read choice rest
[ "$choice" ] || continue
choice_long=`expr length $choice`
[ $choice_long -eq 1 ] || continue
[ $choice -eq 0 ] && exit
[ $choice -ge 1 -a $choice -le 3 ] || continue
case $choice in
1)
IP_address=`tail -n $Num_all_line IP地址簿 | awk -F \| '{ print $3 }`
Num_ftp_all=$Num_all_line
file_input
ftp_file
;
2)
IP_address=`tail -n $Num_all_line IP地址簿 | head -n $Num_zxs | awk -F \| '{ print $3 }`
Num_ftp_all=$Num_zxs
file_input
ftp_file
;
3)
IP_address=`tail -n $Num_fenshe IP地址簿 | awk -F \| '{ print $3 }`
Num_ftp_all=$Num_fenshe
file_input
ftp_file
esac
done
|
|
|