#登录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上传成功之后却查找不到文件

    FTP上传成功之后却查找不到文件 在测试了好几次之后,日志一直提示文件上传ftp成功,但进入ftp指定目录后,就查找不到,当手动上传本地或创建文件之后竟报了553 Could not create f ...

  2. Jenkins使用FTP上传文件报错问题处理

    Jenkins带有Publish over FTP插件,安装后并使用它就能实现FTP上传,可以用于构建后的发包操作.我们在系统管理中配置好FTP Servers后,并测试连接通过,按理在Job配置中用 ...

  3. ftp 文件夹 上传到服务器,ftp上传文件夹到服务器 远程路径

    ftp上传文件夹到服务器 远程路径 内容精选 换一换 WinSCP工具可以实现在本地与远程计算机之间安全地复制文件.与使用FTP上传代码相比,通过 WinSCP 可以直接使用服务器账户密码访问服务器, ...

  4. 上传到服务器的文件没了,ftp上传到服务器没有文件

    ftp上传到服务器没有文件 内容精选 换一换 工具中所有涉及上传文件功能的,如果需要上传的文件大于500MB或者解压后大于1GB,需要手动将文件上传至服务器,其他情况可通过Web界面上传功能上传. 通 ...

  5. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...

  6. 关于FTP上传方法 (by Liang)

    什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写.该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文 ...

  7. ftp上传当天文件的方法_ftp自动上传文件,ftp自动上传文件的配置方法及使用教程...

    IIS7服务器管理工具具备所有服务器管理工具的功能,比如批量管理.同时它还有很多的自主研发功能.比如同步操作.到期提醒.数据安全和定期执行.当然适用的系统也有Windows和liunx操作系统.还支持 ...

  8. php 如何做ftp传输,php如何实现ftp上传

    php实现ftp上传的方法:首先通过"ftp_connect"函数连接FTP服务器 :然后使用username和password登录:最后通过"ftp_put()&quo ...

  9. ossweb上传 php_php - ftp 上传文件到远程服务器

    ccentos7服务器 ======================== 一.安装vsftpd及ftp命令 yum install vsftpd -y yum install ftp -y 二.vsf ...

最新文章

  1. SAP PM入门系列30 - IW39 Display Orders
  2. 一个超轻量级工作流引擎:Workflow-Core
  3. android dp转px的公式_公式px到dp,dp到px android
  4. OpenCV成长之路:直线、轮廓的提取与描述
  5. 20万DBA最关注的11个问题
  6. 什么是Bootstrap?
  7. git客户端下载地址
  8. Python字典集合数据结构深入理解
  9. SplitContainer控件设置固定比例
  10. word-单独设置某一页的页眉或页脚
  11. 漫谈核心能力(2) -- 知错能改,善莫大焉
  12. 360°全景影像移动端类库--PanoramaGL
  13. Python制作微信自动回复机器人,打游戏时自动回复女朋友消息
  14. 将一个多段线按一些点分割成一个或多个线段
  15. 高颜值时尚小巧蓝牙耳机推荐,女友生日过节最强送礼装备
  16. 2022-2027年中国煤制尿素行业市场全景评估及发展战略规划报告
  17. STM32F407——RC522(模拟SPI)
  18. 操作系统入门详解以及Linux介绍
  19. Android通讯录开发之获取运营商号码段(移动、联通,微信小程序的事件处理
  20. OpenGL 纹理本质

热门文章

  1. 中国慕课java_回收的吸油毡通常应放置一边以备再次使用。
  2. PHP教程 数据库和MySQL,PHP与MYSQL数据库连接教程分享
  3. mysql的ddl的语句有_Mysql操作之部分DDL语句
  4. 接收不到其他机器发来的报文_TCP/IP报文格式,康康就知道了
  5. python如何访问对象的属性_Python:从存储在字典中的对象访问对象属性
  6. 数据算法之二叉树查找(BinaryTreeL Search)的Java实现
  7. Excel计数(count)可视化
  8. explain的用法_这次是真拯救了我,MySQL索引优化,explain讲得非常清楚了
  9. python 如何做密码对话框_Python GUI教程(八):在主窗口中调用对话框
  10. 华为手机设置页面黑色_华为手机设置里面的这些功能你都知道吗?