
Quero baixar um arquivo de um servidor mainframe para uma máquina Linux usando um comando SFTP e quero preservar o EOL. Parece que o arquivo real não possui caracteres EOL, enquanto o processo SFTP adiciona caracteres EOL ao baixá-lo para o servidor Linux.
Existe alguma opção para baixar o arquivo em modo binário usando um comando SFTP?
Tentei baixar dados do servidor mainframe usando FTP e SFTP. O FTP com modo binário preserva o conteúdo real do arquivo original sem qualquer modificação, enquanto o FTP com modo ASCII e comandos SFTP modificam o conteúdo do arquivo adicionando EOL e outros caracteres especiais.
Usei o seguinte comando SFTP para baixar o arquivo do 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 ]$
Responder1
A porta z/OS do OpenSSH incluída comz/OS 2.2,z/OS 2.3, ez/OS 2.4(GA 30 de setembro de 2019) fornece ascii
e binary
comandos. Há uma nota...
O subcomando ascii só é válido para transferências de arquivos entre plataformas UNIX. Não é válido para transferências de arquivos entre plataformas Windows e UNIX.
...em relação a uma restrição ao uso do ascii
comando. Separadamente, binary
é indicado como padrão.
É possível que você esteja usando uma porta OpenSSH mais antiga que não suporta o binary
comando, pois vejo no log da sua sessão que você recebe um erro ao usá-lo. Não sei quando o binary
comando foi introduzido, talvez ele esteja presente na porta z/OS o tempo todo.
Também é possível que você esteja usando oServidor sftp Dovetailed Technologies Co:Z, que utilizaum conjunto de comandos diferente. Uma maneira de testar isso seria emitir o comando ls /+
durante a sessão sftp.
A opção que você procura é mode
e o padrão é binário. Mas o padrão pode ser alterado por um administrador. Se o padrão for texto e você quiser que seja binário, você pode alterá-lo emitindo o comando ls /+mode=binary
durante a sessão sftp.