linux下写sh文件登陆ftp,并且下载文件

前几天写好一个linux下利用shell命令登陆ftp,下载文件,通过程序把下载的文件存入数据库中。

在后来的程序日志中发现,每行数据下面会多出一行空白,在文件中是看不出来的,程序区读的时候会有问题。

通过网站查找资料找问题,最后发现是ftp下载模式问题导致

两种模式为:

ASCII 和BINARY模式区别:
  用HTML 和文本编写的文件必须用ASCII模式上传,用BINARY模式上传会破坏文件,导致文件执行出错。
  BINARY模式用来传送可执行文件,压缩文件,和图片文件。
ASCII 模式和BINARY模式的区别是回车换行的处理,binary模式不对数据进行任何处理,asci模式将回车换行转换为本机的回车字符,比如Unix下是\n,Windows下是\r\n,Mac下是\r

       ascii模式下会转换文件
  不能说是不同系统对回车换行解释不同
  而是不同的系统有不同的行结束符
  unix系统下行结束符是一个字节,即十六进制的0A
  而ms的系统是两个字节,即十六进制的0D0A
       MAC系统是一个字节,即十六进制的0D

刚开始的时候用的是BINARY模式,下载的文件有问题。修改为ASCII 模式以后,程序读写下载的文件没有问题。

下载代码:

#!/bin/bash
dd=`date -d last-day +%Y-%m-%d`
ftp -n<<!
open ip
user name@password
ascii(就是这个位置)
cd /
lcd /webapp/upload_song
prompt
get deldb_$dd.txt deldb_$dd.txt
get updatedb_$dd.txt updatedb_$dd.txt
close
bye
!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值