码迷,mamicode.com
首页 > Web开发 > 详细

处理FTP成功上传的判断

时间:2014-11-19 15:58:39      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:ftp shell   脚本   


#登录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"



处理FTP成功上传的判断

标签:ftp shell   脚本   

原文地址:http://blog.csdn.net/lifang123456/article/details/41282583

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!