Arquivo SFTP do Mainframe para Linux

Arquivo SFTP do Mainframe para Linux

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 asciie binarycomandos. 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 asciicomando. Separadamente, binaryé indicado como padrão.

É possível que você esteja usando uma porta OpenSSH mais antiga que não suporta o binarycomando, pois vejo no log da sua sessão que você recebe um erro ao usá-lo. Não sei quando o binarycomando 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 é modee 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=binarydurante a sessão sftp.

informação relacionada