在shell中使用curl命令,,取得網站的http狀態(tài)碼,。
例子:
復制代碼代碼示例:
# cat http_status.sh
#!/bin/bash
for i in `cat sites.txt`
do
STATUS_CODE=`curl -o /dev/null -s -w %{http_code} $i`
echo -e "$i:\t$STATUS_CODE"
done
調用示例:
復制代碼代碼示例:
# cat sites.com
www.baidu.com
www.google.com
www.
# sh http_status.sh
www.baidu.com: 200
www.google.com: 200
www.: 200
附, Shell下curl的使用,。
curl是一個訪問url的工具,,可以用他構造http request報文,且可以解析服務器返回的http response,,額外還支持cookie特性,,可以用curl完成web瀏覽器的基本功能。
當然curl還支持HTTPS/FTP/FTPS/TELNET/LDAP等協議,。
本文只介紹下curl強大的HTTP功能,。
通用語法:
curl [option] [URL...]
在處理URL時其支持類型于SHELL的名稱擴展功能,如http://www./archive[1996-1999]/vol[1-4]/part{a,b,c}.html可以生成多個期望的URL
curl的選項功能:
不帶任何參數時 curl 將返回指定url中的數據并打印在屏幕上
-o out 將指定curl返回保存為out文件,,內容從html/jpg到各種MIME類型文件
-O 按服務器上的名稱保存下載的文件
-r/--range from-to 下載指定range內的數據
-C 在保存文件時進行續(xù)傳
-A/--user-agent <ua> 指定發(fā)送請求的用戶代理,,例如:curl -A My-Agent/1.0.0 www.
-x ip:port 指定使用的http代理,例如:curl -x 192.168.1.1:8080 www.
-D head.txt 將服務器的返回的header保存為文件,,頭部的cookie也可被保存,,例如:curl -D header.txt www.
-c <file> 保存服務器的cookie文件
-b/--cookie <name=data> 向服務器提交cookie,若無=則name視為文件名,,例如:curl -b cookie.txt www.
-e url 設置引用頭的值
-T localfile 向服務器PUT文件 例如:curl -T 1.mp3 www./upload.php
-d <key=value> 向服務器POST表單數據 例如:curl -d "order=111&count=2" http://www./buy
-F <key=value> 向服務器POST表單,,例如:curl -F "[email protected];type=text/html" url.com
如果希望從本地文件中獲取表單數據,則在文件名前加@ ,,例如:curl -d @data.xml http://www.
若希望從標準輸入獲取則用curl -d - http://www.
-E cert.pem 指定本地證書
-H <header:value> 為HTTP請求設置任意header及值,。如curl -H "Connection:keep-alive" http://www.
-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選項 不進行捎帶確認
環(huán)境 變量:http_proxy [protocol://]<host>[:port]