利用Shell 写的自动FTP程序

############################################
#  自动FTP
#  菜单显示FTP目标主机信息无修改则自动将
#  数据做FTP,修改后将根据修改信息做FTP
#  write by cailei
############################################
USER=`whoami`
HOST=`hostname`
DATE=`date +%d/%m/%Y`
############################################
#本地存放文件目录
MY_PATH=/tmp

#目标主机信息
D_HOST=172.31.69.196
FTP_USER=bpbp
FTP_PASS=bpbpasd
FTP_PATH=/tmp

#检测网络文件
SUCCESS=/tmp/success.ping
FAIL=/tmp/fail.ping

############### 修改设置 ###################
change_setting()
{
  echo -e "please change home host file path..."
  read MY_PATH
 
  echo -e "please change destination host ip address..."
  read D_HOST
 
  echo -e  "please change destination host ftp user..."
  read FTP_USER
 
  echo -e  "please change destination host ftp pass..."
  read FTP_PASS
 
  echo -e  "please change destination host ftp file path..."
  read FTP_PATH
 
  tput  clear
}
############ FTP OUT 函数 ##################
ftp_out()
{
    echo -e "请输入要传输的文件名:"
    read  FTP_FILE
   
    #判断文件是否存在
    if ! [ -f "$MY_PATH/$FTP_FILE" ]
    then
         echo  -e "$MY_PATH/$FTP_FILE文件不存在 please check ..."
         echo  -e "按回车键退回主画面......"
         read FAIL_FLAG
    fi
   
    CFG=$MY_PATH/my_ftp.cfg

    cd $MY_PATH
    echo "open $D_HOST" > $CFG
    echo "user $FTP_USER $FTP_PASS" >> $CFG
    echo "bi" >> $CFG
    echo "prompt" >> $CFG
    echo "cd $FTP_PATH" >> $CFG
    echo "mput $FTP_FILE" >> $CFG
    echo "by" >> $CFG

    ftp -in < $CFG >/dev/null

    rm -f $CFG
}
#########  单独IP检测函数 ##################
ping_one()
{
   echo -e "网络检测中请稍等......"
   MACHINE=$D_HOST
   ping  -c10  $MACHINE  1>$SUCCESS  2>$FAIL
   if  grep  "unknown host"  $FAIL  >/dev/null
   then
        echo  -e "fail to ping $MACHINE unknown host please check ..."
        echo  -e "按回车键退回主画面......"
        read FAIL_FLAG
       
   else
       if  grep  "Destination Host Unreachable"  $SUCCESS  >/dev/null
       then
            echo -e "fail to ping $MACHINE 网络不通..."
            echo -e "按回车键退回主画面......"
            read FAIL_FLAG
       else
            ftp_out
            echo -e "ftp file completed ......"
            echo -e "按回车键退回主画面......"
            read OK_FLAG
       fi
   fi
  
   rm  -f  $SUCCESS
   rm  -f  $FAIL
}

while :
do

tput  clear

cat  <<MYFTP
$HOST                                                             $DATE                    
                           AUTO FTP
                    -----------------------
                     本地目录:  $MY_PATH
                     目标主机:  $D_HOST
                     用户名  :  $FTP_USER
                     目标目录:  $FTP_PATH
                    
                    
MYFTP

echo  -e  "是否修改设置: Y/N"
echo  -e  "退出请输入:Q/q"
read CHOICE

tput  clear

case  $CHOICE  in
Y|y)  change_setting
      ping_one
;;
N|n)  ping_one
;;
Q|q)  exit 0
esac

done

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值