
Estoy intentando enviar un archivo a un servidor FTP usando Perl. El programa funciona casi bien, pero el tamaño del archivo cambió (el tamaño del archivo en el host remoto es diferente al del host local). Después de comprobarlo, me doy cuenta de que: no es el error de mi script Perl sino el error del cliente FTP.
Digamos: tengo una computadora (A) ejecutando Cent-Os 5. Quiero enviar un archivo wav (802_20130511_111637.wav- 207.084 bytes) a una computadora remota (B). El servidor FTP en (B) es File Zillar 0.9.41.
Hice los siguientes comandos desde (A) consola (Por seguridad, cambié el nombre de host y el nombre de usuario.):
[root@abcxyz 1234]# ls -l
total 464
-rw------- 1 asterisk asterisk 99564 May 8 10:39 0913255236_20130508103929.wav
-rw------- 1 asterisk asterisk 127084 May 7 22:42 0918272810_20130507224217.wav
-rwxrwxrwx 1 asterisk asterisk 16488 May 7 16:45 1234.wav
-rw-r--r-- 1 asterisk asterisk 207084 May 11 11:17 802_20130511_111637.wav
[root@abcxyz 1234]# ftp
ftp> open xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx.
220 FileZilla Server version 0.9.41 beta
502 GSSAPI authentication not implemented
504 Auth type not supported
KERBEROS_V4 rejected as an authentication type
Name (xxx.xxx.xxx.xxx:root): my_user_name
331 Password required for my_user_name
Password:
230 Logged on
Remote system type is UNIX.
ftp> put 802_20130511_111637.wav
local: 802_20130511_111637.wav remote: 802_20130511_111637.wav
227 Entering Passive Mode (xxx,xxx,xxx,xxx,195,159)
150 Connection accepted
226 Transfer OK
207503 bytes sent in 0.029 seconds (7.1e+03 Kbytes/s)
ftp>
Como se puede ver. El tamaño del archivo (en la línea 6) es 207084 bytes. Pero el tamaño (casi en la última línea) es 207503 bytes.
Exactamente, el tamaño del archivo cambió después del envío a través de FTP. Descargué dos archivos anteriores (uno de (A) y otro de (B)) a otra PC (con Windows). El que viene de (A) se puede jugar bien, pero el de (B) no.
Por favor corríjanme si hice algo mal. ¿Por qué cambió el tamaño del archivo aunque usé un cliente FTP nativo?
Respuesta1
Nunca emitió el bin
comando (o lo que sea que use su cliente), por lo que está realizando una traducción de final de línea.