curl 模拟http发送请求

时间:2021-10-15 16:57:32

转载地址:http://blog.sina.com.cn/s/blog_6e2d53050101k230.html

  http://blog.csdn.net/zzulp/article/details/8018751

一、get请求

curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地

curl -i "http://www.baidu.com"  显示全部信息

curl -l "http://www.baidu.com" 只显示头部信息

curl -v "http://www.baidu.com" 显示get请求全过程解析

wget "http://www.baidu.com"也可以


二、post请求

curl -d "param1=value1&param2=value2" "http://www.baidu.com"


通用语法:

curl [option] [URL...]

在处理URL的时候其支持类型于SHELL的名称扩展功能,如http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html可以生成多个期望的URL

下面介绍选项功能:

不带任何参数时 curl 将返回指定url中的数据并打印在屏幕上

-o out  将指定curl返回保存为out文件,内容从html/jpg到各种MIME类型文件

-O  按服务器上的名称保存下载的文件

-r/--range  from-to 下载指定range内的数据

-C 在保存文件时进行续传

-A/--user-agent  <ua>  指定发送请求的用户代理 如 curl -A My-Agent/1.0.0 www.apple.com 

-x  ip:port 指定使用的http代理,如curl -x 192.168.1.1:8080 www.apple.com

-D head.txt  将服务器的返回的header保存为文件,头部的cookie也可被保存   curl -D header.txt www.apple.com

-c <file> 保存服务器的cookie文件

-b/--cookie  <name=data>   向服务器提交cookie,若无=则name视为文件名  curl -b cookie.txt www.apple.com

-e url  设置引用头的值

-T localfile  向服务器PUT文件 如curl -T 1.mp3  www.apple.com/upload.php

-d <key=value>  向服务器POST表单数据 如curl -d "order=111&count=2" http://www.apple.com/buy

-F <key=value> 向服务器POST表单 curl -F "web=@index.html;type=text/html" url.com

如果希望从本地文件中获取表单数据,则在文件名前加@ 如 curl -d @data.xml http://www.apple.com

若希望从标准输入获取则用curl -d - http://www.apple.com

-E cert.pem  指定本地证书

-H <header:value>  为HTTP请求设置任意header及值。如curl -H "Connection:keep-alive" http://www.apple.com

-I  构造一个HEAD请求

-X/--request method 用户定义的HTTP请求方法名如 curl -X GET www.baidu.com

--compressed 采用压缩方式接收返回数据

--connect-timeout <s> 设置超时时间

-v 详细输出,包含请求和响应的首部

--retry num

--retry timeo 指定重试的次数和间隔

--tcp-nodelay 打开TCP_NODELAY选项  不进行捎带确认

环境 变量:http_proxy [protocol://]<host>[:port]


Ubuntu查看crontab运行日志

今天发现一台Ubuntu服务器crontab定时运行scp的备份脚本失败,手动执行脚本没问题,所以想从crontab的日志里找原因,突然发现我的/var/log下没有cron日志,这里记录一下如何ubuntu server如何查看crontab日志

crontab记录日志

修改rsyslog

sudo vim /etc/rsyslog.d/50-default.conf

cron.*              /var/log/cron.log #将cron前面的注释符去掉 

重启rsyslog

sudo  service rsyslog  restart

查看crontab日志

less  /var/log/cron.log

****No MTA installed, discarding output****错误

在命令后面加上

>> /dev/null 2>&1
0 */2 * * * root /usr/bin/somecommand >> /dev/null 2>&1
搞定