從大型主機到 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 日) 提供asciibinary命令。有一個註釋...

ascii 子指令僅對 UNIX 平台之間的檔案傳輸有效。它對於 Windows 和 UNIX 平台之間的檔案傳輸無效。

...關於指令使用的限制ascii。單獨binary註明為預設值。

您可能使用的是不支援該binary命令的舊版 OpenSSH 端口,正如我在會話日誌中看到的那樣,您在使用它時遇到錯誤。我不知道這個binary命令是什麼時候引入的,也許它一直存在於 z/OS 連接埠中。

您也可能正在使用Dovetailed Technologies Co:Z sftp 伺服器,它使用不同的命令集。測試這一點的一種方法是ls /+在 sftp 會話期間發出該命令。

您要尋找的選項是mode,預設值是二進位。但管理員可以更改預設值。如果預設值是文本,而您希望它是二進位的,則可以透過ls /+mode=binary在 sftp 會話期間發出命令來變更它。

相關內容