| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux开发区 > SHELL

测试远端FTP是否正常的SHELL

时间:2007-11-12 15:57:13  来源:Linux联盟收集整理  作者:
由于公司的设备很多,而且每台SQUID的日志都要定时上传到本网段内部的FTP服务器.而有些时候会因为UPLOAD上传配置文件错误或远程FTP主机服务DOWN,而导致SQUID日志大量堆积.现在通过CURL进行FTP状态的测试,SHELL进行IP地址的替换.解决问题.与大家分享如下代码.请多提宝贵意见与建议。本人还是比较菜,代码部分过于烦琐.请见谅
 
#!/bin/bash
dMRLinux联盟
UPLOAD_CONF=/usr/local/squid/etc/upload.conf
##########AUTO_create FTP host IP##################################dMRLinux联盟
OPT=0dMRLinux联盟
rm -f ./ftp.host
#####根据客户机的IP地址来创建本网段可用的FTP主机地址#############################
if [ -f /etc/sysconfig/network-scripts/ifcfg-eth0 ];thendMRLinux联盟
   IP=`cat /etc/sysconfig/network-scripts/ifcfg-eth0|awk -F = '/IPADDR/{print $2}'`dMRLinux联盟
   echo $IP|grep -i -E "^192" > /dev/nulldMRLinux联盟
   if [ $? == 0 ];thendMRLinux联盟
   for ip in 111 112 113 114dMRLinux联盟
   dodMRLinux联盟
     echo "${IP%.*}.$ip" >> ./ftp.hostdMRLinux联盟
   donedMRLinux联盟
   elsedMRLinux联盟
   OPT=1dMRLinux联盟
   fidMRLinux联盟
fi
if [ $OPT == 1 ];then
   IP=`cat /etc/sysconfig/network-scripts/ifcfg-eth1|awk -F = '/IPADDR/{print $2}'`dMRLinux联盟
   echo $IP|grep -i -E "^172" > /dev/nulldMRLinux联盟
    if [ $? == 0 ];thendMRLinux联盟
       for ip in 111 112 113 114dMRLinux联盟
         dodMRLinux联盟
           echo "${IP%.*}.$ip" >> ./ftp.hostdMRLinux联盟
         donedMRLinux联盟
    elsedMRLinux联盟
     exit 1dMRLinux联盟
  fidMRLinux联盟
fidMRLinux联盟
################################################dMRLinux联盟
##############取FTP上传信息################################################
IP=`cat $UPLOAD_CONF|awk -F = '/LDCIP/ {print $2}'`dMRLinux联盟
USER=`cat $UPLOAD_CONF|awk -F = '/USER/ {print $2}'`dMRLinux联盟
PASSWD=`cat $UPLOAD_CONF|awk -F = '/PASSWD/ {print $2}'`dMRLinux联盟
#######冗余判断#####################################
IP=${IP:-"`head -n1 ./ftp.host`"}dMRLinux联盟
USER=${USER:-"fromcf"}dMRLinux联盟
PASSWD=${PASSWD:-"fromcf102090"}
 
##########################测试主程序###############################################
/usr/bin/curl -u $USER:$PASSWD ftp://$IP  -o /dev/null  -s
if test $? != 0;then
  while read IP2dMRLinux联盟
    dodMRLinux联盟
       /usr/bin/curl -u $USER:$PASSWD ftp://$IP2  -o /dev/null  -s
       if [ $? == 0 ];thendMRLinux联盟
            sed "s/$IP/$IP2/g" ./upload.conf > ./upload.conf.tmp&&cp -f ./upload.conf.tmp ./upload.conf&&rm -f ./upload.conf.tmpdMRLinux联盟
            ERR=0dMRLinux联盟
            breakdMRLinux联盟
            elsedMRLinux联盟
            ERR=1dMRLinux联盟
       fi
    done < ./ftp.host
    if [ $ERR != 0 ];thendMRLinux联盟
      echo "Please check you HOST-network or REMOTE-HOST-FTP"dMRLinux联盟
      exit 1dMRLinux联盟
    fidMRLinux联盟
fi
------------------------本文完-----------------------------------------------------
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目更新
栏目热门