
Quiero descargar un archivo desde un servidor mainframe a una máquina Linux usando un comando SFTP y quiero conservar el EOL. Parece que el archivo real no tiene caracteres EOL, mientras que el proceso SFTP agrega caracteres EOL mientras lo descarga al servidor Linux.
¿Existe alguna opción para descargar el archivo en modo binario usando un comando SFTP?
Intenté descargar datos del servidor mainframe mediante FTP y SFTP. FTP con modo binario conserva el contenido real del archivo original sin ninguna modificación, mientras que FTP con modo ASCII y comandos SFTP modifican el contenido del archivo agregando EOL y otros caracteres especiales.
Utilicé el siguiente comando SFTP para descargar el archivo desde el servidor mainframe:
[[email protected]: /var/fedex/srs/rcd/data/Dev/serial/Src/Private/src_intl_rating/main/ABC ]$ sftp [email protected]
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* NOTE: YOU ARE CONNECTING VIA IBM'S SSH PORTED *
* TOOLS. *
* DEV2. *
* THIS IS IN TEST MODE AND MAY NOT FUNCTION *
* AS EXPECTED. *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
[email protected]'s password:
Connected to XXX.XXX.XXX.com.
sftp> binary
Invalid command.
sftp> get //SYS2542.RTSB.RCD130.OUT.FEAB091
Fetching //SYS2542.RTSB.RCD130.OUT.FEAB091 to SYS2542.RTSB.RCD130.OUT.FEAB091
//SYS2542.RTSB.RCD130.OUT.FEAB091 99% 2620KB 2.0MB/s 00:00 ETA
sftp> bye
[[email protected]: /var/fedex/srs/rcd/data/Dev/serial/Src/Private/src_intl_rating/main/ABC ]$ ls -ltr
total 22360
-rw-r--r-- 1 ABC rcd 2682504 Jul 26 03:49 FTP.SYS2542.RTSB.RCD130.OUT.FEAB091.ASCII
-rw-r--r-- 1 ABC rcd 2680128 Jul 26 03:50 FTP.SYS2542.RTSB.RCD130.OUT.FEAB091.BINARY
-rw-r--r-- 1 ABC rcd 2682504 Jul 26 15:21 SYS2542.RTSB.RCD130.OUT.FEAB091
[[email protected]: /var/fedex/srs/rcd/data/Dev/serial/Src/Private/src_intl_rating/main/ABC ]$ mv SYS2542.RTSB.RCD130.OUT.FEAB091 SFTP.SYS2542.RTSB.RCD130.OUT.FEAB091
[[email protected]: /var/fedex/srs/rcd/data/Dev/serial/Src/Private/src_intl_rating/main/ABC ]$ ls -ltr
total 22360
-rw-r--r-- 1 ABC rcd 2682504 Jul 26 03:49 FTP.SYS2542.RTSB.RCD130.OUT.FEAB091.ASCII
-rw-r--r-- 1 ABC rcd 2680128 Jul 26 03:50 FTP.SYS2542.RTSB.RCD130.OUT.FEAB091.BINARY
-rw-r--r-- 1 ABC rcd 2682504 Jul 26 15:21 SFTP.SYS2542.RTSB.RCD130.OUT.FEAB091
[[email protected]: /var/fedex/srs/rcd/data/Dev/serial/Src/Private/src_intl_rating/main/ABC ]$
Respuesta1
El puerto z/OS de OpenSSH incluido conz/OS 2.2,z/OS 2.3, yz/OS 2.4(GA 30-Sep-2019) proporciona ascii
y binary
ordena. Hay una nota...
El subcomando ascii sólo es válido para transferencias de archivos entre plataformas UNIX. No es válido para transferencias de archivos entre plataformas Windows y UNIX.
...con respecto a una restricción en el uso del ascii
comando. Por separado, binary
se indica como valor predeterminado.
Es posible que esté utilizando un puerto OpenSSH anterior que no admita el binary
comando, como veo en el registro de su sesión que recibe un error al usarlo. No sé cuándo binary
se introdujo el comando, tal vez haya estado allí en el puerto z/OS todo el tiempo.
También es posible que esté utilizando elServidor SFTP de Dovetailed Technologies Co:Z, que utilizaun conjunto de comandos diferente. Una forma de probar esto sería emitir el comando ls /+
durante su sesión sftp.
La opción que estaría buscando es mode
y la predeterminada es binaria. Pero un administrador puede cambiar el valor predeterminado. Si el valor predeterminado es texto y desea que sea binario, puede cambiarlo emitiendo el comando ls /+mode=binary
durante su sesión sftp.