从大型机到 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 端口包含在z/OS 2.2操作系统 2.3, 和z/OS 2.4(GA 30-Sep-2019)提供asciibinary命令。有一条注释...

ascii 子命令仅对 UNIX 平台之间的文件传输有效。它对 Windows 和 UNIX 平台之间的文件传输无效。

...关于命令使用的限制ascii。另外,binary被记录为默认值。

您可能正在使用不支持该binary命令的旧 OpenSSH 端口,因为我从您的会话日志中看到您在使用该命令时会出错。我不知道该binary命令是何时引入的,也许它一直存在于 z/OS 端口中。

你也可能正在使用Dovetailed Technologies Co:Z sftp 服务器,使用不同的命令集. 测试此操作的一种方法是ls /+在 sftp 会话期间发出命令。

您要查找的选项是mode,默认值为二进制。但管理员可以更改默认值。如果默认值为文本,而您希望将其设为二进制,则可以ls /+mode=binary在 sftp 会话期间发出命令来更改它。

相关内容