请考虑两个curl命令: curl -v —ssl https://example.com * About to connect() to example.com port 443 (#0) * Trying 10.20.30.40… * connected * Connected to example.com (10.20.30.40) port 443 (#0) * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none * SSLv3, TLS handshake, Client hello (1): * error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112) * Closing connection #0 curl: (35) error:14077458:SSL […]
我正在使用curl将大文件(从5到20Gb)上传到基于HDFS(Hadoop集群)的HOOP ,如下所示: curl -f –data-binary "@$file" "$HOOP_HOST$UPLOAD_PATH?user.name=$HOOP_USER&op=create" 但是,当curl上传大文件时,它试图将其完全caching在RAM中,这会产生高内存负载。 我试过从man curl使用-N标志,应该禁用缓冲。 但没有发生。 所以我的问题是,有没有办法强制curl直接写入套接字,或者你可以build议我另一个util将覆盖我的简单HTTP POST / PUT请求的需求。 我不会自己写,因为它看起来像是一直在发明自行车。 谢谢。
不pipe我为curl指定的URL是什么,我总是得到相同的HTML 404错误页面。 如果我使用–verbose选项,它看起来像curl总是连接到相同的IP地址。 $ curl –verbose http://www.edgeoftheweb.co.uk * About to connect() to www.edgeoftheweb.co.uk port 80 * Trying ::ffff:74.117.222.24… connected * Connected to www.edgeoftheweb.co.uk (::ffff:74.117.222.24) port 80 > GET / HTTP/1.1 > User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 > Host: www.edgeoftheweb.co.uk > Accept: */* > < HTTP/1.1 200 OK < Date: Thu, 15 Sep 2011 […]
当我尝试在我的Ubuntu 12.04 TLS服务器上curlSSL页面时,它不起作用: 不是ssl页面: $ curl https://evernote.com/ -vv [the entire webpage] ssl页面: $ curl https://evernote.com/ -vv * About to connect() to evernote.com port 443 (#0) * Trying 204.154.94.73… connected * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSLv3, TLS handshake, Client hello (1): * Unknown SSL protocol error in connection to […]
我有nginxnetworking服务器。 我有一个丰富的内容网站,我发现一些恶意机器人正试图抓取我的内容。 我阻止任何curl或wget来这样的我的网站 如果($ http_user_agent〜*(curl | wget)){return 301 $ scheme://www.google.com/; } 但我发现我可以访问的内容,如果我改变了下面的curl请求中的用户代理 curl –user-agent“Googlebot / 2.1(+ http://www.google.com/bot.html)”http://example.com/mypage.php 要么 curl –user-agent“whatever”http://example.com/mypage.php 任何想法如何阻止使用Nginx的 curl或wget生成的任何请求,而不pipe已经发送的假的用户代理
我喜欢curl与goDaddy签署的网站合作:如果我打电话 curl mypage.com/bla 我正在收到证书validation错误。 我试图得到这个片段的CA证书: echo | openssl s_client -connect mysite.com:443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > cert.pem 然后打电话 curl mypage.com/bla –cacert cert.pem 这也造成了validation错误。 我检查了证书date和主题,一切看起来不错? 我错过了什么? 我可能需要整个链条? 如果是的话,是否有一个命令来获得这一切?
我有一个链接到我想从shell下载的文件。 不幸的是,该URLredirect到一个软件许可协议页面,需要点击一个接受button。 这是好的,当我在一个标准的浏览器,但是当我在壳牌wget只会下载HTML页面,而不是实际的文件。 当条款必须首先被接受时,有哪些选项可用于将文件下载到shell中? 具体来说,我正在看下面的LSI下载页面: http://www.lsi.com/Pages/user/eula.aspx?file=http%3a%2f%2fwww.lsi.com%2fdownloads%2fPublic%2fSATA%2fSATA%2520Common%2520Files%2f3DM2_CLI-Linux_10.2.1_9 .5.4.zip&源= HTTP%3A%2F%2fwww.lsi.com%2fdownloads 我没有查看页面上的源代码,发现了一个链接到下面的位置,但是当使用wget时,它也拉起了eula页面。 http://www.lsi.com/downloads/Public/SATA/SATA%20Common%20Files/3DM2_CLI-Linux_10.2.1_9.5.4.zip 到目前为止,我提出的唯一select是: 将其下载到具有浏览器的其他计算机上,然后将其上传到只有shell的服务器。 缓慢而痛苦。 安装像Lynx的东西。 我不确定Lynx是否处理好下载,不喜欢在生产服务器上安装额外软件的想法。 继续分析EULA代码,以确定它是如何防止我的下载(假设它是JavaScript,而不是服务器端)。 有一个更简单的方法?
我已经安装了ubuntu Lamp stack.But没有启用,我也不能find在INI文件中列出的扩展名,我手动添加,但它没有工作太。 那么应该如何启用Curl?
我正在使用curl来请求一个使用Location:行redirect到另一个URL的URL: Location:/path/to/resource#name 据我了解,redirect响应中的那一行对于HTTP规范是无效的,所以整个curl调用可以理解地失败(在这种情况下,有一个400响应代码)。 但是,使用wget或Web浏览器请求URL成功呈现页面(我假设通过启发式填充绝对path或在redirect之前删除锚标记)。 有没有什么办法可以让curl做同样的事情(即使是“正式”畸形的成功地执行redirect也需要做什么? 编辑:一些更多的细节。 最终的响应代码是400(不是404或其他)。 当我做一个HEAD请求( curl -I -L ),我得到一个302 Found (与Location: /Error ),redirect到500 Server Error 。 但是,如果我做了一个常规的请求(没有-I选项,但有-L选项),我得到一个400的–write-out (curl的–write-out )。 所以在这种情况下HEAD请求看起来与标准GET不同。
认为这将是一个简单的过程,但我猜不是。 我需要在CentOS 6.3上使用最新版本的CURL(7.23或更新版本)。 如果我这样做: sudo yum升级curl 它只是告诉我没有什么可做的(一切都是最新的)。 所以我跟着其他一些ServerFault的post,并试图这样做: sudo rpm -i http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/libcurl-7.29.0-2.0.cf.rhel6.x86_64.rpm 但是那告诉我: 警告:/var/tmp/rpm-tmp.4L8Nyj:头文件V3 DSA / SHA1签名,密钥ID b56a8bac:NOKEY错误:失败的依赖关系:c-ares(x86-64)> = 1.9.1是libcurl-7.29需要的。 0-2.0.cf.rhel6.x86_64 libcurl-7.29.0-2.0.cf.rhel6.x86_64需要libssh2(x86-64)> = 1.4.3 那么我该怎么做才能升级呢?