Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103692082
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-18 22:35:20

作者:李宏   
向已联网的联社管理员推荐:相同文件批量向辖内网点传送实用程序


若有需要者:请联系。
程序原文:
#! /bin/ksh
# 功能:实现将某指定文件批量向辖内网点传送,类似于同内容短信群发功能。 
# 适用于:管辖机构对辖内网点一次性批量传送某文件,一般在做网点程序维护时用到。
# 要求:所传送文件在远端的用户名、密码、存放路径相同,远端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按回车键继续!\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 
阅读(638) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~