2017-09-13 110 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

可變塊記錄的第一個字節是記錄長度,所以這就是你所看到的

相關問題