メインフレームから Linux への SFTP ファイル

メインフレームから Linux への SFTP ファイル

SFTP コマンドを使用してメインフレーム サーバーから Linux マシンにファイルをダウンロードし、EOL を保持したいと考えています。実際のファイルには EOL 文字が含まれていないようです。一方、SFTP プロセスは Linux サーバーにダウンロードするときに EOL 文字を追加します。

SFTP コマンドを使用してバイナリ モードでファイルをダウンロードするオプションはありますか?

FTP と SFTP を使用してメインフレーム サーバーからデータをダウンロードしようとしました。バイナリ モードの FTP では元のファイルの実際の内容が変更なしで保持されますが、ASCII モードの FTP と 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ポートは、2.2 の場合2.3 の場合、 そして2.4 の場合(GA 2019 年 9 月 30 日) 提供asciiおよびbinaryコマンド。注意点があります...

ascii サブコマンドは、UNIX プラットフォーム間のファイル転送にのみ有効です。Windows プラットフォームと UNIX プラットフォーム間のファイル転送には有効ではありません。

...コマンドの使用に関する制限についてascii。 別途、binaryデフォルトとして記載されています。

セッション ログを見ると、このコマンドの使用時にエラーが発生していることが分かるので、コマンドをサポートしていない古い OpenSSH ポートを使用している可能性があります。binaryこのコマンドがいつ導入されたかはわかりませんがbinary、z/OS ポートにはずっと存在していたのかもしれません。

また、Dovetailed Technologies Co:Z sftp サーバー、これは異なるコマンドセットls /+これをテストする 1 つの方法は、sftp セッション中にコマンドを発行することです。

探しているオプションは で、デフォルトはバイナリです。ただし、デフォルトは管理者によって変更できます。デフォルトがテキストで、それをバイナリにしたい場合は、sftp セッション中にmodeコマンドを発行して変更できます。ls /+mode=binary

関連情報