Файл SFTP с мэйнфрейма на Linux

Файл SFTP с мэйнфрейма на Linux

Я хочу загрузить файл с сервера мэйнфрейма на машину Linux с помощью команды SFTP и хочу сохранить EOL. Кажется, что фактический файл не имеет символов EOL, тогда как процесс SFTP добавляет символы EOL при загрузке его на сервер Linux.

Есть ли возможность загрузить файл в двоичном режиме с помощью команды SFTP?

Я попытался загрузить данные с сервера мэйнфрейма с помощью FTP и SFTP. FTP с двоичным режимом сохраняет фактическое содержимое исходного файла без каких-либо изменений, тогда как FTP с режимом ASCII и команды SFTP изменяют содержимое файла, добавляя EOL и другие специальные символы.

Для загрузки файла с сервера мэйнфрейма я использовал следующую команду SFTP:

[[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 ]$

решение1

Порт OpenSSH для z/OS входит в комплектz/ОС 2.2,z/ОС 2.3, иz/ОС 2.4(GA 30-сен-2019) обеспечивает asciiи binaryкоманды. Есть примечание...

Подкоманда ascii действительна только для передачи файлов между платформами UNIX. Она недействительна для передачи файлов между платформами Windows и UNIX.

...относительно ограничения на использование команды ascii. Отдельно binaryотмечено, что по умолчанию.

Возможно, вы используете старый порт OpenSSH, который не поддерживает команду binary, поскольку я вижу в вашем журнале сеанса, что вы получаете ошибку при его использовании. Я не знаю, когда binaryбыла введена эта команда, возможно, она была там в порту z/OS все это время.

Также возможно, что вы используетеDovetailed Technologies Co:Z sftp-сервер, который используетдругой набор команд. Один из способов проверить это — выполнить команду ls /+во время сеанса sftp.

Параметр, который вы ищете, это , modeа по умолчанию это двоичный. Но администратор может изменить значение по умолчанию. Если по умолчанию это текст, а вы хотите, чтобы он был двоичным, вы можете изменить его, выполнив команду ls /+mode=binaryво время сеанса sftp.

Связанный контент