再次在 openvms 上使用 curl
Curl usage on openvms again
这是我之前的问题 - Curl 在 OpenVMS 上的使用的后续问题。
所以我在我的 39MB 小文件上一切正常。然后我更改了我的命令文件以尝试处理刚刚超过 8Gig 的正确目标文件。
我有 9 个
类型的 curl 命令
$ pipe curl -range 0-100000000 -o part1.zip etc ... &
$ pipe curl -range 1000000001-2000000000 -o part2.zip ... &
$ pipe curl -range 2000000001-3000000000 -o part3.zip... &
$ pipe curl -range 3000000001-4000000000 -o part4.zip... &
$ pipe curl -range 4000000001-5000000000 -o part5.zip... &
$ pipe curl -range 5000000001-6000000000 -o part6.zip... &
$ pipe curl -range 6000000001-7000000000 -o part7.zip... &
$ pipe curl -range 7000000001-8000000000 -o part8.zip... &
$ pipe curl -range 8000000001- ... -o part9.zip &
现在我在第 4、5 和 9 部分收到以下错误消息 - 总是相同的部分
> > PWD < 257 "/" is current directory.
> * Entry path is '/'
> > CWD Products < 250 Requested file action okay, completed.
> > CWD OwnershipDetailV2 < 250 Requested file action okay, completed.
> > PASV
> * Connect data stream passively < 227 Entering Passive Mode (204,8,135,60,43,24)
> * Trying 204.8.135.60... connected
> * Connecting to 204.8.135.60 (204.8.135.60) port 11032
> > TYPE I < 200 Type set to I.
> > SIZE OwnershipDetailV2Full20160110.zip < 451 Requested action aborted: session in inconsistent state.
> * ftp server doesn't support SIZE
> * Instructs server to resume from offset -1294967295
> > REST -1294967295 < 554 Invalid REST argument.
> * Couldn't use REST
> ** Resuming transfer from byte position -1294967295 % Total % Received % Xferd Average Speed Time Time Time Current
> Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:01
> --:--:-- 0* Closing connection #0
>
> %CURL-E-FTP_COULDNT_USE, FTP REST command failed
起初我以为这是范围参数的某种 2Gig 限制,但第 6 部分和第 7 部分工作正常。欢迎任何想法、想法或解决方法。
顺便说一下第1、2、3、6、7部分下载就好了
看起来像一个 32/64 位 signed/unsigned 整数问题。 3000000001 是 0xb2d05e01 并且作为一个适合 32 位的无符号值,解释为一个带符号的 32 位值它是 -1294967295。
您使用的偏移量不适合 32 位整数,既不带符号也不带符号。从输出中我看不出错误是在客户端还是在服务器。
编辑:我可能错过了 curl 版本,我刚刚注意到 VMS curl 版本 7.46 是几天前发布的。但是我没有关于变更日志的信息。但尝试新客户端可能是值得的。
好的,为了遇到此问题的任何其他人的利益,答案是将我们的 curl 升级到最新版本 - 在我们的例子中是...
$ curl2 --version
curl 7.46.0 (IA64-HP-VMS) libcurl/7.46.0 OpenSSL/0.9.8z zlib/1.2.8
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IPv6 Largefile GSS-API Kerberos SPNEGO NTLM SSL libz
然后我能够启动 9 个并发卷曲,每个卷曲提取大约 1 G 的数据,将它们重新组合成一个大 ZIP,并通过解压缩从存档中获取所需的文本文件。
这将提取时间从大约 3 小时缩短到大约 25 分钟
非常感谢所有就此问题提供建议和帮助的人。
这是我之前的问题 - Curl 在 OpenVMS 上的使用的后续问题。 所以我在我的 39MB 小文件上一切正常。然后我更改了我的命令文件以尝试处理刚刚超过 8Gig 的正确目标文件。 我有 9 个
类型的 curl 命令$ pipe curl -range 0-100000000 -o part1.zip etc ... &
$ pipe curl -range 1000000001-2000000000 -o part2.zip ... &
$ pipe curl -range 2000000001-3000000000 -o part3.zip... &
$ pipe curl -range 3000000001-4000000000 -o part4.zip... &
$ pipe curl -range 4000000001-5000000000 -o part5.zip... &
$ pipe curl -range 5000000001-6000000000 -o part6.zip... &
$ pipe curl -range 6000000001-7000000000 -o part7.zip... &
$ pipe curl -range 7000000001-8000000000 -o part8.zip... &
$ pipe curl -range 8000000001- ... -o part9.zip &
现在我在第 4、5 和 9 部分收到以下错误消息 - 总是相同的部分
> > PWD < 257 "/" is current directory.
> * Entry path is '/'
> > CWD Products < 250 Requested file action okay, completed.
> > CWD OwnershipDetailV2 < 250 Requested file action okay, completed.
> > PASV
> * Connect data stream passively < 227 Entering Passive Mode (204,8,135,60,43,24)
> * Trying 204.8.135.60... connected
> * Connecting to 204.8.135.60 (204.8.135.60) port 11032
> > TYPE I < 200 Type set to I.
> > SIZE OwnershipDetailV2Full20160110.zip < 451 Requested action aborted: session in inconsistent state.
> * ftp server doesn't support SIZE
> * Instructs server to resume from offset -1294967295
> > REST -1294967295 < 554 Invalid REST argument.
> * Couldn't use REST
> ** Resuming transfer from byte position -1294967295 % Total % Received % Xferd Average Speed Time Time Time Current
> Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:01
> --:--:-- 0* Closing connection #0
>
> %CURL-E-FTP_COULDNT_USE, FTP REST command failed
起初我以为这是范围参数的某种 2Gig 限制,但第 6 部分和第 7 部分工作正常。欢迎任何想法、想法或解决方法。
顺便说一下第1、2、3、6、7部分下载就好了
看起来像一个 32/64 位 signed/unsigned 整数问题。 3000000001 是 0xb2d05e01 并且作为一个适合 32 位的无符号值,解释为一个带符号的 32 位值它是 -1294967295。 您使用的偏移量不适合 32 位整数,既不带符号也不带符号。从输出中我看不出错误是在客户端还是在服务器。
编辑:我可能错过了 curl 版本,我刚刚注意到 VMS curl 版本 7.46 是几天前发布的。但是我没有关于变更日志的信息。但尝试新客户端可能是值得的。
好的,为了遇到此问题的任何其他人的利益,答案是将我们的 curl 升级到最新版本 - 在我们的例子中是...
$ curl2 --version
curl 7.46.0 (IA64-HP-VMS) libcurl/7.46.0 OpenSSL/0.9.8z zlib/1.2.8
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IPv6 Largefile GSS-API Kerberos SPNEGO NTLM SSL libz
然后我能够启动 9 个并发卷曲,每个卷曲提取大约 1 G 的数据,将它们重新组合成一个大 ZIP,并通过解压缩从存档中获取所需的文本文件。
这将提取时间从大约 3 小时缩短到大约 25 分钟
非常感谢所有就此问题提供建议和帮助的人。