前几天写好一个linux下借助shell命令登录ftpftpget文件到linux,下载文件,通过程序把下载的文件存入数据库中。
在后来的程序日志中发觉,每行数据下边会多出一行空白,在文件中是看不下来的ftpget文件到linux,程序区读的时侯会有问题。
通过网站查找资料找问题,最后发觉是ftp下载模式问题造成
两种模式为:
ASCII和BINARY模式区别:
用HTML和文本编撰的文件必须用ASCII模式上传,用BINARY模式上传会破坏文件linux运维博客,造成文件执行出错。
BINARY模式拿来传送可执行文件,压缩文件,和图片文件。
ASCII模式和BINARY模式的区别是回车换行的处理,binary模式不对数据进行任何处理,asci模式将回车换行转换为本机的回车字符,例如Unix下是n,Windows下是rn,Mac下是r
ascii模式下会转换文件
不能说是不同系统对回车换行解释不同
而是不同的系统有不同的行结束符
unix系统下行结束符是一个字节,即十六补码的0A
而ms的系统是两个字节,即十六补码的0D0A
MAC系统是一个字节,即十六补码的0D
刚开始的时侯用的是BINARY模式,下载的文件有问题。更改为ASCII模式之后linux修改文件名,程序读写下载的文件没有问题。
下载代码:
#!/bin/bash
dd=`date-dlast-day+%Y-%m-%d`
ftp-n