
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