2017-09-13 43 views
0

现在,我试图上传和下载来自运行zOS 2.1的IBM大型机的具有可变记录长度的文件。喜欢这个人:How to FTP a variable length file from linux to mainframe z/OS当使用“TYPE E”和“MODE B”通过FTP从z/OS下载av(b)文件时,每个记录集的第一个字节的含义是什么

curl --user "******" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" | hexdump 

0000000 dead cafe babe 
0000006 


curl --user "******" --quote "site RDw" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" | hexdump 
0000000 000a 0000 dead cafe babe 
000000a 

它看起来不错。 rdw是“000a 0000”和记录“死咖啡宝贝”。但。如果我再次上传 - 即使在使用“引用网站RDw”时,服务器也会忽略RDW并将其存储为实际数据的一部分。

curl --user "******" --quote "site RDw" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" > SOME.FILE.NAME 
cat SOME.FILE.NAME | curl --user "******" --upload-file "-" --quote "site RDw" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" 
0000000 000c 0000 0008 0000 dead beef 
000000c 

因为这不是我想要的,我搜索了更多。而且 - 我发现这篇文章: http://www-01.ibm.com/support/docview.wss?uid=swg21188301

并给了它另一个尝试。

curl --user "******" --quote "TYPE E" --quote "MODE B" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" | hexdump 
0000000 4000 04de adbe ef00 
0000007 

看起来很有趣。于是,我与另一个文件进行了比较,包括一个更大的数据集...

0000000 4002 cbdc... 
00002ce 

而另一个......

0000000 8000 16f0... 
0000019 4000 16f0... 
0000032 

我的第一印象是:一个80似乎预示着会有更多数据集,而40表示最后一个。这对我尝试过的每个文件都是如此。对于具有可变记录长度的正常文件以及具有可变记录长度的被阻塞文件。

于是,我就重新上传...

curl --user "******" --quote "TYPE E" --quote "MODE B" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" > SOME.FILE.NAME 
cat SOME.FILE.NAME | curl --user "******" --upload-file "-" --quote "TYPE E" --quote "MODE B" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" 

而且它似乎工作

好 - 至少现在我能与变量记录长度从和传输文件大型机,同时保留记录长度。

但是 - 这里是问题: 是每个记录的第一个字节“唯一”一个指标为wheather会有更多的数据集?或者我错过了什么?

+0

你需要使用'--quote“locsite RDW”'如果你要上传。 [locsite](https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.halu001/locsite.htm)是“site”的反义词。 –

+0

不幸的是,这将无法正常工作: '> locsite rdw <500 unknown command locsite' –

+0

对不起,我的坏。 locsite仅适用于z/OS到z/OS的传输。 Unix/Windows等没有面向记录的文件的概念,所以不可能做到你想要的。有一个关于它的好主意[这里](https://groups.google.com/d/msg/bit.listserv.ibm-main/QIAmIGxP0XA/2ssqVJtTIRcJ)。 –

回答

-1

可变块记录的第一个字节是记录长度,所以这就是你所看到的

相关问题