机器环境:
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
转载于:https://blog.51cto.com/yjh625/1296480