linux中curl命令获取http状态码
curl命令是一个功能强大的网络工具,它能够通过http、ftp等方式下载文件,也能够上传文件。
常用参数
curl命令参数很多,这里只列出我曾经用过、特别是在shell脚本中用到过的那些。
-v/–verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。
-m/–max-time 指定处理的最大时长
-H/–header
-s/–slient 减少输出的信息,比如进度
–connect-timeout 指定尝试连接的最大时长
-x/–proxy
-T/–upload-file 指定上传文件路径
-o/–output 指定输出文件名称
-d/–data/–data-ascii 指定POST的内容
–retry 指定重试次数
-e/–referer 指定引用地址
-I/–head 仅返回头部信息,使用HEAD请求
通过curl的-w参数我们可以自定义curl的输出
代码如下
# curl -I -m 10 -o /dev/null -s -w %{http_code} IP地址或者网址
结合shell实现报警
#!/bin/shdate=`date +"%Y%m%d-%H%M"`
title="status"
contentFail="status is not ok:"
contentSuccess="status is ok:"
url="https://www.abc.com"
status=`curl -m 20 -s -I $url | grep HTTP | awk '{print $2}'`#echo "status: $status"cd /data/shell
laststatus=`cat status.log`if [ "$status" == "200" ]thenif [ "$laststatus" != 200 ]then/usr/bin/python /shell/mail.py "$title" "$contentSuccess $url $date $status"echo "200" > status.logfi
elseif [ "$laststatus" == 200 ]then/usr/bin/python /shell/mail.py "$title" "$contentFail $url $date $status"echo "$status" > status.logfi
fi
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
