#curl是一个命令行访问URL的工具
-v 详细输出,包含请求和响应的首部
-o test 将指定curl返回保存为test文件,内容从html/jpg到各种MIME类型文件
-O 把输出写到该文件中,保留远程文件的文件名
-C 在保存文件时进行续传
-x ip:port 指定使用的http代理
-c <file> 保存服务器的cookie文件
-H <header:value> 为HTTP请求设置任意header及值
-L 跟随重定向
-S 显示错误信息
-s 静默模式,不输出任何信息
-G 以get的方式发送数据
-f 连接失败是不显示http错误
-d 以post方式传送数据
-w 什么输出完成后
curl -o /dev/null -s -w "%{http_code}" http://www.baidu.com
#!/bin/bash  
#遍历多个url
URL_LIST="www.baidu.com www.ctnrs.com"
for URL in $URL_LIST; do
#失败url的次数进行统计
FAIL_COUNT=0
#每个网址进行判断3次
for ((i=1;i<=3;i++)); do
#--connect-timeout表示访问超市时间为3秒;
#只返回状态码
HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)
#如果这个状态码是200,也就是正常的,那么就输出ok;
if [ $HTTP_CODE -eq 200 ]; then
echo "$URL OK"
#如果正常,那么就跳出循环
break
#否则不正常,那么就尝试访问3次。
else
echo "$URL retry $FAIL_COUNT"
#每访问一次加1
let FAIL_COUNT++
fi
done
#如果访问3次都不行,那么就发送告警
if [ $FAIL_COUNT -eq 3 ]; then
echo "Warning: $URL Access failure!"
fi
done