处理FTP成功上传的判断


#登录FTP服务器获取指定文件
#$1:服务器地址
#$2:帐户
#$3:密码
#$4:文件路径名
#$5:本地文件路径名
#$6:本地文件名

#判断ftp上传结果:
#获取上传后的远程文件大小重定向在本地文件tmp,与本地文件大小比较,相同为上传成功,最后删除本地记录tmp;
#判断外部调用函数(如system)执行结果:
#执行成功返回为上传的结果:0,执行失败为返回脚本内执行结果或系统调用结果:非0,避免了外部调用一直返回成功:0;
#日志修改:
#上传后紧接着写日志(追加写),另外ftp日志大于100M则清空。


########################################################################

get_file()
{
    #echo "$1 $2 $3 $4 $5 $6"
GF_HOST=$1
GF_USER=$2
GF_PASS=$3
GF_DATPATH=$4
GF_LOCPATH=$5
GF_SRCFILE=$6
#上传文件   
    ftp -in $GF_HOST >>ftp.log<<- EOF
quote USER $GF_USER
quote PASS $GF_PASS
bin
cd $GF_DATPATH
lcd $GF_LOCPATH
mput $GF_SRCFILE
    dir $GF_DATPATH/$GF_SRCFILE tmp
quit
EOF
    
    FTPSIZE=`cat $GF_LOCPATH/tmp |sed -n ‘/‘$GF_SRCFILE‘/p‘ |awk ‘{print $5}‘`
    LOCALSIZE=`ls -l $GF_LOCPATH/$GF_SRCFILE |awk ‘{print $5}‘`
    #echo $FTPSIZE
    #echo $LOCALSIZE
    
    if [ "$FTPSIZE" != "" ] && [ "$FTPSIZE" == "$LOCALSIZE" ]; then
    RETCODE=0
    else
    RETCODE=125
    fi
    
    rm -rf $GF_LOCPATH/tmp
    
1> /dev/null
2> /dev/null
    #return $?
    return $RETCODE
}
#########################################################################################################################

get_log_line()
{
    GLL_TIME=`date "+%Y-%m-%d %X"`
    #GLL_PATH=`pwd` ‘/‘ `$FILENAME`
    RESULT=$1
    if [ "$RESULT" == 0 ]
    then
        STR_RESULT="成功!"
    else
        STR_RESULT="失败!"
    fi
    echo "$GLL_TIME| 上传 | 本地文件:$2: $3 | 到 | 目标主机:$4:$5 | $STR_RESULT" >>ftp.log
}


clear_ftplog()
{
    FTPLOGSIZE=`du -m ftp.log |awk ‘{print $1}‘ ||cut -f 1 -d "M" | cut -f 1 -d "."`
    if [ $FTPLOGSIZE -gt 100 ]; then
        echo "">ftp.log
    fi
}


#####################################################################################################################

clear_ftplog "100"

HOST=""
USER=""
PASS=""
DATPATH=""
LOCPATH="l"
SRCFILE=""
get_file "$HOST"  "$USER"  "$PASS"  "$DATPATH"  "$LOCPATH"  "$SRCFILE"
get_log_line "$?"  "$LOCPATH"  "$SRCFILE"  "$HOST"  "$DATPATH"



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。