<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=%E6%AF%8F%E5%A4%A9%E4%B8%80%E5%91%BD%E4%BB%A4%E4%B9%8Bcurl</id>
	<title>每天一命令之curl - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=%E6%AF%8F%E5%A4%A9%E4%B8%80%E5%91%BD%E4%BB%A4%E4%B9%8Bcurl"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=%E6%AF%8F%E5%A4%A9%E4%B8%80%E5%91%BD%E4%BB%A4%E4%B9%8Bcurl&amp;action=history"/>
	<updated>2026-04-20T09:35:00Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=%E6%AF%8F%E5%A4%A9%E4%B8%80%E5%91%BD%E4%BB%A4%E4%B9%8Bcurl&amp;diff=1341&amp;oldid=prev</id>
		<title>Evan：​/* downloads */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=%E6%AF%8F%E5%A4%A9%E4%B8%80%E5%91%BD%E4%BB%A4%E4%B9%8Bcurl&amp;diff=1341&amp;oldid=prev"/>
		<updated>2023-10-06T06:57:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;downloads&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=常用参数=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-o： --output &amp;lt;file&amp;gt; Write to file instead of stdout 内置option:-o(小写)保存网页&lt;br /&gt;
  将文件保存为命令行中指定的文件名的文件中&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
借助-o选项，提供名称，下载文件会以该名称保存；如使用-O选项，文件就会以原始名称保存。&lt;br /&gt;
&lt;br /&gt;
-O：使用URL中默认的文件名保存文件到本地&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 -L, --location      Follow redirects 进行强制重定向&lt;br /&gt;
     --location-trusted Like --location, and send auth to other hosts&lt;br /&gt;
     --login-options &amp;lt;options&amp;gt; Server login options&lt;br /&gt;
     --mail-auth &amp;lt;address&amp;gt; Originator address of the original email&lt;br /&gt;
     --mail-from &amp;lt;address&amp;gt; Mail from this address&lt;br /&gt;
     --mail-rcpt &amp;lt;address&amp;gt; Mail to this address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
下载2022    -L, --location    Follow redirects 进行强制重定向   -s/--silent 静音模式。不输出任何东西  -O：使用URL中默认的文件名保存文件到本地&lt;br /&gt;
curl -L -s -O https://kuboard.cn/statics/learning/job/job-tmpl.yaml&lt;br /&gt;
&lt;br /&gt;
举个栗子&lt;br /&gt;
curl -L linux.net/lnmp.sh -o 1.sh&lt;br /&gt;
把lnmp.sh 下载回来 并重命令为1.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
指令：curl&lt;br /&gt;
在linux中curl是一个利用URL规则在命令行下工作的文件传输工具，可以说是一款很强大的http命令行工具。它支持文件的上传和下载，是综合传输工具，但按传统，习惯称url为下载工具。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
语法：# curl [option] [url]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
常见参数：&lt;br /&gt;
-A/--user-agent &amp;lt;string&amp;gt;        设置用户代理发送给服务器&lt;br /&gt;
-b/--cookie &amp;lt;name=string/file&amp;gt;  cookie字符串或文件读取位置&lt;br /&gt;
-c/--cookie-jar &amp;lt;file&amp;gt;          操作结束后把cookie写入到这个文件中&lt;br /&gt;
-C/--continue-at &amp;lt;offset&amp;gt;       断点续转&lt;br /&gt;
-D/--dump-header &amp;lt;file&amp;gt;         把header信息写入到该文件中&lt;br /&gt;
-e/--referer                    来源网址&lt;br /&gt;
-f/--fail                       连接失败时不显示http错误&lt;br /&gt;
-o/--output                     把输出写到该文件中&lt;br /&gt;
-O/--remote-name                把输出写到该文件中，保留远程文件的文件名&lt;br /&gt;
-r/--range &amp;lt;range&amp;gt;              检索来自HTTP/1.1或FTP服务器字节范围&lt;br /&gt;
-s/--silent                     静音模式。不输出任何东西&lt;br /&gt;
-T/--upload-file &amp;lt;file&amp;gt;         上传文件&lt;br /&gt;
-u/--user &amp;lt;user[:password]&amp;gt;     设置服务器的用户和密码&lt;br /&gt;
-w/--write-out [format]         什么输出完成后&lt;br /&gt;
-x/--proxy &amp;lt;host[:port]&amp;gt;        在给定的端口上使用HTTP代理&lt;br /&gt;
-#/--progress-bar               用进度条显示当前的传送状态&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
用curl的内置option就好，存下http的结果，用这个option: -o&lt;br /&gt;
&lt;br /&gt;
 curl -o page.html http://www.yahoo.com&lt;br /&gt;
&lt;br /&gt;
大写的O，这么用：这样，就可以按照服务器上的文件名，自动存在本地了&lt;br /&gt;
 curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
访问不到？肯定是你的proxy没有设定了。&lt;br /&gt;
使用curl的时候，用这个option可以指定http访问所使用的proxy服务器及其端口： -x&lt;br /&gt;
 curl -x 123.45.67.89:1080 -o page.html http://www.yahoo.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
下载 &lt;br /&gt;
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py&lt;br /&gt;
&lt;br /&gt;
curl -fsSL -o php.tar.xz https://www.php.net/distributions/php-7.4.22.tar.xz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
其它例子本身就是一个sh脚本 哈哈 写得不错 &lt;br /&gt;
https://test.docker.com/ &lt;br /&gt;
 curl -fsSL https://test.docker.com/ | bash&lt;br /&gt;
&lt;br /&gt;
curl -fsSL https://test.com/lnmp.sh | bash&lt;br /&gt;
&lt;br /&gt;
-f/--fail                       连接失败时不显示http错误&lt;br /&gt;
&lt;br /&gt;
-s/--silent                     静音模式。不输出任何东西&lt;br /&gt;
&lt;br /&gt;
-S, --show-error    Show error. With -s, make curl show errors when they occur&lt;br /&gt;
&lt;br /&gt;
-L, --location      Follow redirects (H)&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
wget http://xxx/xxx.sh -O- | bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==downloads==&lt;br /&gt;
 curl -R -O http://www.lua.org/ftp/lua-5.4.3.tar.gz&lt;br /&gt;
 curl -L -s -O https://kuboard.cn/statics/learning/job/job-tmpl.yaml&lt;br /&gt;
&lt;br /&gt;
= curl获取状态码Getting curl to output HTTP status code?=&lt;br /&gt;
 curl -I http://www.example.org&lt;br /&gt;
&lt;br /&gt;
[https://superuser.com/questions/272265/getting-curl-to-output-http-status-code Getting curl to output HTTP status code?]&lt;br /&gt;
&lt;br /&gt;
=指定ip访问url=&lt;br /&gt;
&amp;lt;pre&amp;gt;指定ip访问url&lt;br /&gt;
curl -H &amp;#039;Host:a.com&amp;#039; http://10.12.20.21&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=每一秒 不停的 curl 一个特定页面=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
cuoun=0&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
me=`curl -N k0.frg.kaixin001.com.cn/curl.php`&lt;br /&gt;
#echo $me&lt;br /&gt;
if [ &amp;quot;$me&amp;quot; != &amp;quot;evan&amp;quot; ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;err $cuoun&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
cuoun=`expr $cuoun + 1`&lt;br /&gt;
sleep 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cat /data/mon/curl_website.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Usage */1  * * * * /bin/bash /data/mon/curl_website.sh&lt;br /&gt;
DATE_TIME=`date +&amp;quot;%Y-%m-%d %H:%M.%S&amp;quot;`&lt;br /&gt;
echo &amp;quot;${DATE_TIME}&amp;quot; &amp;gt;&amp;gt; /data/mon/webcurl.log&lt;br /&gt;
curl -s -o /dev/null -I -w &amp;quot;%{http_code}&amp;quot;  https://www.cailu.net &amp;gt;&amp;gt; /data/mon/webcurl.log&lt;br /&gt;
echo -e &amp;#039;\n&amp;#039; &amp;gt;&amp;gt;/data/mon/webcurl.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cat get.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#author: linuxsa.org &lt;br /&gt;
DATE_TIME=`date +&amp;quot;%Y-%m-%d %H:%M.%S&amp;quot;`&lt;br /&gt;
echo &amp;quot;${DATE_TIME}&amp;quot; &amp;gt;&amp;gt; /home/evan/getes.log&lt;br /&gt;
zabbix_get  -s prod-sns-node-ng-web02 -k&amp;quot;agent.ping&amp;quot; &amp;gt;&amp;gt;/home/evan/getes.log&lt;br /&gt;
#zabbix_get  -s prod-sns-es01 -k&amp;quot;agent.ping&amp;quot; &amp;gt;&amp;gt;/home/evan/getes.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=trouble shooting=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在容器里 curl  里有问题  最终加了-k  叫程序自己去搞&lt;br /&gt;
root@b92094bd49ed:/var/www#  curl -H &amp;quot;Content-Type:application/json&amp;quot; -X POST https://market-api.cailuw.com/api/v1/coin/list&lt;br /&gt;
curl: (60) SSL certificate problem: certificate has expired&lt;br /&gt;
More details here: https://curl.haxx.se/docs/sslcerts.html&lt;br /&gt;
&lt;br /&gt;
curl performs SSL certificate verification by default, using a &amp;quot;bundle&amp;quot;&lt;br /&gt;
 of Certificate Authority (CA) public keys (CA certs). If the default&lt;br /&gt;
 bundle file isn&amp;#039;t adequate, you can specify an alternate file&lt;br /&gt;
 using the --cacert option.&lt;br /&gt;
If this HTTPS server uses a certificate signed by a CA represented in&lt;br /&gt;
 the bundle, the certificate verification probably failed due to a&lt;br /&gt;
 problem with the certificate (it might be expired, or the name might&lt;br /&gt;
 not match the domain name in the URL).&lt;br /&gt;
If you&amp;#039;d like to turn off curl&amp;#039;s verification of the certificate, use&lt;br /&gt;
 the -k (or --insecure) option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/var/www# curl -V     &lt;br /&gt;
curl 7.52.1 (x86_64-pc-linux-gnu) libcurl/7.52.1 OpenSSL/1.0.2l zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3&lt;br /&gt;
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp &lt;br /&gt;
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL &lt;br /&gt;
root@b92094bd49ed:/var/www# exit&lt;br /&gt;
&lt;br /&gt;
[root@prod-sns-php02 ~]# curl -V &lt;br /&gt;
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.36 zlib/1.2.7 libidn/1.28 libssh2/1.4.3&lt;br /&gt;
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp &lt;br /&gt;
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 -k, --insecure      Allow insecure server connections when using SSL&lt;br /&gt;
&lt;br /&gt;
加-k &lt;br /&gt;
&lt;br /&gt;
/etc/pki 加了也不行呀 &lt;br /&gt;
&lt;br /&gt;
      volumes:&lt;br /&gt;
        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}&lt;br /&gt;
        - ${APP_PACKAGE_PATH}:${APP_PACKAGE_PATH_CONTAINER}&lt;br /&gt;
        - ./php-worker/supervisord.d:/etc/supervisor/conf.d&lt;br /&gt;
        - /etc/pki/:/etc/pki/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
date -s &amp;quot;2020-10-14 15:35:01&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo ln -sf /usr/share/zoneinfo/America/Monterrey /etc/localtime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
时间同步 &lt;br /&gt;
&lt;br /&gt;
ln -sf  /usr/share/zoneinfo/Asia/Shanghai   /etc/localtime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1，先修改host使域名解析到正确的IP(至于为什么会解析到一个错误的IP我还没搞清楚，可能是之前的缓存)&lt;br /&gt;
&lt;br /&gt;
2，然后根据https://curl.haxx.se/docs/sslcerts.html，下载证书openssl s_client -showcerts -servername server -connect server:443 &amp;gt; cacert.pem&lt;br /&gt;
&lt;br /&gt;
之前从错误的服务器(IP)上下载的证书所以不行，指定了正确的IP之后就正常了&lt;br /&gt;
&lt;br /&gt;
ntpdate pool.ntp.org&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/xuxinkun/p/5417836.html  记一次解决curl https证书问题 ]&lt;br /&gt;
&lt;br /&gt;
[https://q.cnblogs.com/q/124645/ docker容器内访问https问题，curl: (60) SSL certificate problem: self signed certificate]&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/lixuande19871015/article/details/101206642 curl忽略ssl证书进行https请求]&lt;br /&gt;
&lt;br /&gt;
=see also=&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/hujiapeng/p/8470099.html  Linux curl 命令下载文件 ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.cnblogs.com/gbyukg/p/3326825.html&lt;br /&gt;
&lt;br /&gt;
http://www.21andy.com/new/20080602/1154.html&lt;br /&gt;
&lt;br /&gt;
http://doiido.blog.51cto.com/5503054/1564631&lt;br /&gt;
&lt;br /&gt;
https://www-31.ibm.com/support/techdocs/cn/faqhtmlfaq/2311073I23001.htm &lt;br /&gt;
&lt;br /&gt;
[[category:shell]][[category:ops]][[category:linux]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>