#登录FTPserver获取指定文件

#$1:server住址

#$2:帐户

#$3:password

#$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上传成功推理的更多相关文章

  1. 批处理向FTP上传指定属性的文件 批处理增量备份的例子

    使用windows批处理向FTP上传具有指定属性的文件,类似增量备份功能. 对一个目录里的几个文件自动上传FTP时只上传有归档属性的文件,然后FTP上传成功后自动清除(本机)刚上传文件的归档属性. 类 ...

  2. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  3. FTP上传文件到服务器

    一.初始化上传控件. 1.我们这里用dropzone.js作为上传控件,下载地址http://www.dropzonejs.com/ 2.这里我们使用一个div元素作为dropzone载体. < ...

  4. 再看ftp上传文件

    前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在 ...

  5. 【完整靠谱版】结合公司项目,仔细总结自己使用百度编辑器实现FTP上传的完整过程

    说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...

  6. JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)

    package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...

  7. FTP上传-封装工具类

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  8. 记一次FTP上传文件总是超时的解决过程

    好久没写博,还是重拾记录一下吧. 背景:买了一个阿里云的云虚拟机用来搭建网站(起初不了解云虚拟主机和云服务器的区别,以为都是有SSH功能的,后来发现不是这样样子啊,云虚拟机就是FTP上传网页+MySQ ...

  9. FTP上传与下载

    1.连接 先假设一个ftp地址 用户名 密码       FTP Server: 192.168.1.125 User: administrator Password: abc123 2. 打开win ...

随机推荐

  1. 高晓松脱口秀--晓说(第一季&第二季)mp3下载

    晓说 第一季 (1-5) http://pan.baidu.com/share/link?shareid=480859&uk=4043605559 (6-10) http://pan.baid ...

  2. windows phone 7 通过麦克风录音,并且播放

    原文:windows phone 7 通过麦克风录音,并且播放 //模拟XNA的框架(凡是在wp7中应用xna的都必须先模拟此类) public class XNAAsyncDispatcher : ...

  3. 带鉴权信息的SIP呼叫

    带鉴权信息的SIP呼叫 INVITE sip:1000@192.168.50.34SIP/2.0 Via: SIP/2.0/UDP192.168.50.32:2445;branch=z9hG4bK-d ...

  4. Java&Android反编工具打包

    Java&Android反编工具: 1.Eclipse反编插件:安装到Eclipse后,可以简要的查看jar包中的*.class; 2.DoAPK:反编*.apk为smali和一些资源文件,可 ...

  5. spoj Balanced Numbers(数位dp)

    一个数字是Balanced Numbers,当且仅当组成这个数字的数,奇数出现偶数次,偶数出现奇数次 一下子就相到了三进制状压,数组开小了,一直wa,都不报re, 使用记忆化搜索,dp[i][s] 表 ...

  6. 为应用程序池“XX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误

    场景 WCF应用程序部署在IIS7中,使用net.tcp协议对外给几百台客户端提供服务,应用程序池不断崩溃重启. 分析过程 在事件查看器中看到的错误信息类似于 为应用程序池“XX”提供服务的进程在与 ...

  7. ArrayList实现借壳

    随着Collections工具: import java.util.ArrayList; import java.util.Collections; public class TTEST { publ ...

  8. BDB (Berkeley DB)简要数据库(转载)

    使用最近DBD.然后搜了下相关资料,首先公布的是一门科学: 转会http://www.javaeye.com/topic/202990 DB综述DB最初开发的目的是以新的HASH訪问算法来取代旧的hs ...

  9. Windows IOT

    Windows IOT 开发入门(准备工作)   终于抽出空来了,将最近研究的东西记录下来,物联网,万物皆可联网.然后可以做到智能家居,智能生活,智能城市....一大堆.吹牛的就不说了. 在实际应用中 ...

  10. android studio学习

    http://blog.csdn.net/ryantang03/article/details/8948037 http://www.it165.net/pro/html/201109/676.htm ...