#登录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. Java-UrlRewrite中文api文档

    安装 1. 下载jar包, 并加入到WEB-INF/lib下 2. 在WEB-INF/web.xml中增加下面的配置 <filter> <filter-name>UrlRewr ...

  2. POJ 1205 Water Treatment Plants(递推)

    题意   建设一条河岸的污水处理系统  河岸有n个城市   每一个城市都能够自己处理污水 V   也能够把污水传到相邻的城市处理 >或<   除了你传给我我也传给你这样的情况   其他都是 ...

  3. 1104. Don’t Ask Woman about Her Age(数论)

    a*b^n(mod(b-1) =a(mod(b-1) http://acm.timus.ru/problem.aspx?space=1&num=1104 #include <stdio. ...

  4. MySQL的create table as 与 like区别(转)

    对于mysql的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? create table t2 as select * from t1 ...

  5. 【Android接口实现】ActionBar利用整理的一些细节

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 关于ActionBar的使用,非常多大神早就已经写了非常好的文章进行了介绍,所以ActionBar的基本使用 ...

  6. C# - CSV file reader

    // ------------------------------------------------------------------------------------------------- ...

  7. ffplay for mfc 代码备忘录

    在上传一个开源播放器项目ffplay for mfc.它会ffmpeg工程ffplay媒体播放器(ffplay.c)移植到VC环境,而使用MFC做一套接口.它可以完成一个播放器播放的基本流程的视频:解 ...

  8. 【Android进阶】Android面试题目整理与讲解(一)

    这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正 1.简述Activity的生命周期 当Activity开始启动的时候,首先调用onCre ...

  9. 【原创】leetCodeOj --- Factorial Trailing Zeroes 解题报告

    原题地址: https://oj.leetcode.com/problems/factorial-trailing-zeroes/ 题目内容: Given an integer n, return t ...

  10. Apache与Tomcat整合(转)

    一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...