<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[使用curl获取网站的http的状态码]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 23 Dec 2013 07:52:28 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	实践改写了一下：<br/>http_status.sh<br/><textarea name="code" class="C" rows="15" cols="100">
# cat http_status.sh
#!/bin/bash
dateStr=`date +%Y%m%d`
for i in `cat /home/xiangdong/curl_test_mytv/sites.txt`
do
#STATUS_CODE=`curl -o /dev/null -s -w %&#123;http_code&#125; $i`
`curl -l -H &quot;Host:xiyou.cntv.cn&quot; $i &gt;&gt; /home/xiangdong/curl_test_mytv/result_$&#123;dateStr&#125;.html`
#echo -e &quot;$i:&#92;t$STATUS_CODE&quot;
done
</textarea><br/><br/>sites.txt<br/>http://127.0.0.1/mytv/<br/>http://127.0.0.1/mytv/<br/>http://127.0.0.1/mytv/<br/>http://127.0.0.1/mytv/<br/><br/>http://127.0.0.1/mytv/<br/>http://127.0.0.1/mytv/<br/>http://127.0.0.1/mytv/<br/>http://127.0.0.1/mytv/<br/>http://127.0.0.1/mytv/<br/><br/>crontab:<br/>#Add mytv&#039;s Log forbbiden PHP must be writeable error Test<br/>59 23 * * *&nbsp;&nbsp;/bin/bash&nbsp;&nbsp;/home/xiangdong/crontab/mkdirMytvLogFolder.sh<br/>0 0 * * *&nbsp;&nbsp;/bin/bash&nbsp;&nbsp;/home/xiangdong/curl_test_mytv/http_status.sh<br/><br/>___________________________________________________________________________________<br/>在shell中使用curl命令，取得网站的http状态码。<br/>例子：<br/><textarea name="code" class="C" rows="15" cols="100">
# cat http_status.sh
#!/bin/bash
for i in `cat sites.txt`
do
STATUS_CODE=`curl -o /dev/null -s -w %&#123;http_code&#125; $i`
echo -e &quot;$i:&#92;t$STATUS_CODE&quot;
done
</textarea><br/><br/>调用示例：<br/><textarea name="code" class="C" rows="15" cols="100">
# cat sites.com
www.baidu.com
www.google.com
www.jbxue.com

# sh http_status.sh
www.baidu.com:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;200
www.google.com:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 200
www.jbxue.com:&nbsp;&nbsp; 200
</textarea><br/><br/>附， Shell下curl的使用。<br/>curl是一个访问url的工具，可以用他构造http request报文，且可以解析服务器返回的http response，额外还支持cookie特性，可以用curl完成web浏览器的基本功能。<br/>当然curl还支持HTTPS/FTP/FTPS/TELNET/LDAP等协议。<br/><br/>本文只介绍下curl强大的HTTP功能。<br/><br/>通用语法：<br/>curl [option] [URL...]<br/>在处理URL时其支持类型于SHELL的名称扩展功能，如http://www.jbxue.com/archive[1996-1999]/vol[1-4]/part&#123;a,b,c&#125;.html可以生成多个期望的URL<br/><br/>curl的选项功能：<br/>不带任何参数时 curl 将返回指定url中的数据并打印在屏幕上<br/>-o out&nbsp;&nbsp;将指定curl返回保存为out文件，内容从html/jpg到各种MIME类型文件<br/>-O&nbsp;&nbsp;按服务器上的名称保存下载的文件<br/>-r/--range&nbsp;&nbsp;from-to 下载指定range内的数据<br/>-C 在保存文件时进行续传<br/>-A/--user-agent&nbsp;&nbsp;&lt;ua&gt;&nbsp;&nbsp;指定发送请求的用户代理，例如：curl -A My-Agent/1.0.0 www.jbxue.com<br/>-x&nbsp;&nbsp;ip:port 指定使用的http代理，例如：curl -x 192.168.1.1:8080 www.jbxue.com<br/>-D head.txt&nbsp;&nbsp;将服务器的返回的header保存为文件，头部的cookie也可被保存，例如：curl -D header.txt www.jbxue.com<br/>-c &lt;file&gt; 保存服务器的cookie文件<br/>-b/--cookie&nbsp;&nbsp;&lt;name=data&gt;&nbsp;&nbsp; 向服务器提交cookie，若无=则name视为文件名，例如：curl -b cookie.txt www.jbxue.com<br/>-e url&nbsp;&nbsp;设置引用头的值<br/>-T localfile&nbsp;&nbsp;向服务器PUT文件 例如：curl -T 1.mp3&nbsp;&nbsp;www.jbxue.com/upload.php<br/>-d &lt;key=value&gt;&nbsp;&nbsp;向服务器POST表单数据 例如：curl -d &quot;order=111&amp;count=2&quot; http://www.jbxue.com/buy<br/>-F &lt;key=value&gt; 向服务器POST表单，例如：curl -F &quot;web=@index.html;type=text/html&quot; url.com<br/>如果希望从本地文件中获取表单数据，则在文件名前加@ ，例如：curl -d @data.xml http://www.jbxue.com<br/>若希望从标准输入获取则用curl -d - http://www.jbxue.com<br/>-E cert.pem&nbsp;&nbsp;指定本地证书<br/>-H &lt;header:value&gt;&nbsp;&nbsp;为HTTP请求设置任意header及值。如curl -H &quot;Connection:keep-alive&quot; http://www.jbxue.com<br/>-I&nbsp;&nbsp;构造一个HEAD请求<br/>-X/--request method 用户定义的HTTP请求方法名如 curl -X GET www.baidu.com<br/>--compressed 采用压缩方式接收返回数据<br/>--connect-timeout &lt;s&gt; 设置超时时间<br/>-v 详细输出，包含请求和响应的首部<br/>--retry num<br/>--retry timeo 指定重试的次数和间隔<br/>--tcp-nodelay 打开TCP_NODELAY选项&nbsp;&nbsp;不进行捎带确认<br/>环境 变量：http_proxy [protocol://]&lt;host&gt;[:port]<br/><br/>来自：http://www.jbxue.com/article/curl_http_M1hclL89Ps3f.html
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 使用curl获取网站的http的状态码]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>