ftp自動登錄下載文件

機器環境:

OS: Redhat 5.3 64bit


今天接到一個需求,需要寫個腳本來定時自動獲取ftp文件。花了一段時間寫了個腳本,這裏給共享下。

#! /bin/bash
#
# Description:
export riqi=`date +%Y%m%d`
#export riqi="20130911"
export num=`date +%d`
                                                                                
getfile() {
   if [ $# -ne 1 ];then
      echo $"Usage: $0 {add|all}"
      exit 1
   fi
   case "$1" in
        add)
             dstdir="/data/open/add/$riqi"
             files1="a_m-music_${riqi}_*"
             files2="a_m-songer_${riqi}_*"
             ;;
        all)
             dstdir="/data/open/all/$riqi"
             files1="i_m-music_${riqi}_*"
             files2="i_m-songer_${riqi}_*"
             ;;
        *)
             echo $"Usage: $0 {add|all}"
             exit 1
             ;;
   esac
   /bin/mkdir -p $dstdir
   ftp -n -u 127.0.0.1 10021 << EOFftp
        user public fgxu\$sdSxkT!m
        prompt off
        lcd $dstdir
        mget $files1 $files2
EOFftp
}
#判斷當天是否爲每個月的第一天
if [ $num -eq 01 ];then
   getfile add
   getfile all
else
   getfile add
fi

ftp自動登錄有兩個地方需要注意:

①、ftp自動登錄需要使用-n(禁止自動登錄)、-u(禁止自動驗證)兩個參數來防止自動登錄

②、EOFftp裏面如有特殊符號需要使用"\"來取消去特殊作用;例如:user public fgxu\$sdSxkT!m



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章