
Ich möchte eine Datei mit einem SFTP-Befehl von einem Mainframe-Server auf eine Linux-Maschine herunterladen und dabei EOL beibehalten. Es scheint, dass die eigentliche Datei keine EOL-Zeichen hat, während der SFTP-Prozess beim Herunterladen auf den Linux-Server EOL-Zeichen hinzufügt.
Gibt es eine Möglichkeit, die Datei mit einem SFTP-Befehl im Binärmodus herunterzuladen?
Ich habe versucht, Daten per FTP und SFTP vom Mainframe-Server herunterzuladen. FTP im Binärmodus behält den tatsächlichen Inhalt der Originaldatei ohne Änderungen bei, während FTP im ASCII-Modus und SFTP-Befehle den Inhalt der Datei durch Hinzufügen von EOL und anderen Sonderzeichen ändern.
Ich habe den folgenden SFTP-Befehl verwendet, um die Datei vom Mainframe-Server herunterzuladen:
[[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 ]$
Antwort1
Der z/OS-Port von OpenSSH ist im Lieferumfang enthaltenz/OS 2.2,z/OS 2.3, Undz/OS 2.4(GA 30.09.2019) stellt ascii
und binary
befiehlt. Es gibt einen Hinweis ...
Der Unterbefehl ascii ist nur für Dateiübertragungen zwischen UNIX-Plattformen gültig. Er ist nicht für Dateiübertragungen zwischen Windows- und UNIX-Plattformen gültig.
...bezüglich einer Einschränkung bei der Verwendung des ascii
Befehls. Wird separat binary
als Standard vermerkt.
Möglicherweise verwenden Sie einen älteren OpenSSH-Port, der den binary
Befehl nicht unterstützt. In Ihrem Sitzungsprotokoll sehe ich, dass bei der Verwendung ein Fehler auftritt. Ich weiß nicht, wann der binary
Befehl eingeführt wurde, vielleicht war er schon immer im z/OS-Port vorhanden.
Es ist auch möglich, dass Sie dieDovetailed Technologies Co:Z SFTP-Server, dasein anderer Befehlssatzls /+
Eine Möglichkeit, dies zu testen, besteht darin, den Befehl während Ihrer SFTP-Sitzung einzugeben .
Die von Ihnen gesuchte Option ist mode
und der Standardwert ist binär. Der Standardwert kann jedoch von einem Administrator geändert werden. Wenn der Standardwert Text ist und Sie ihn binär haben möchten, können Sie ihn ändern, indem Sie den Befehl ls /+mode=binary
während Ihrer SFTP-Sitzung ausführen.