<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>旌旗博客 &#187; I.T.</title>
	<atom:link href="http://rocky.kingtch.com/category/it/feed/" rel="self" type="application/rss+xml" />
	<link>http://rocky.kingtch.com</link>
	<description></description>
	<lastBuildDate>Tue, 14 Feb 2012 12:39:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>本地连接消失了</title>
		<link>http://rocky.kingtch.com/2011/11/02/%e6%9c%ac%e5%9c%b0%e8%bf%9e%e6%8e%a5%e6%b6%88%e5%a4%b1%e4%ba%86/</link>
		<comments>http://rocky.kingtch.com/2011/11/02/%e6%9c%ac%e5%9c%b0%e8%bf%9e%e6%8e%a5%e6%b6%88%e5%a4%b1%e4%ba%86/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 16:47:38 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>

		<guid isPermaLink="false">http://rocky.kingtch.com/2011/11/02/%e6%9c%ac%e5%9c%b0%e8%bf%9e%e6%8e%a5%e6%b6%88%e5%a4%b1%e4%ba%86/</guid>
		<description><![CDATA[前几天家里的台式机系统中的＂本地连接＂突然就消失了，新出来一个＂本地连接2＂，无法上网。症状为：DHCP分配不到地址，设静态IP地址后，能访问接在同一交换机上的另一网络设备的samba服务，但ping网关路由器不通。发现有时候重启之后＂本地连接＂又出来了，就一切正常了，但得靠运气，不太靠谱。今天运气不好，重启两次都没管用，仔细检查，发现＂本地连接2＂的MAC地址都是0，于是随便填了一个，然后就一切太平了。]]></description>
			<content:encoded><![CDATA[<p>前几天家里的台式机系统中的＂本地连接＂突然就消失了，新出来一个＂本地连接2＂，无法上网。症状为：DHCP分配不到地址，设静态IP地址后，能访问接在同一交换机上的另一网络设备的samba服务，但ping网关路由器不通。发现有时候重启之后＂本地连接＂又出来了，就一切正常了，但得靠运气，不太靠谱。今天运气不好，重启两次都没管用，仔细检查，发现＂本地连接2＂的MAC地址都是0，于是随便填了一个，然后就一切太平了。</p>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2011/11/02/%e6%9c%ac%e5%9c%b0%e8%bf%9e%e6%8e%a5%e6%b6%88%e5%a4%b1%e4%ba%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP的mysql模块引起的3221225477错误解决</title>
		<link>http://rocky.kingtch.com/2010/12/30/php%e7%9a%84mysql%e6%a8%a1%e5%9d%97%e5%bc%95%e8%b5%b7%e7%9a%843221225477%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3/</link>
		<comments>http://rocky.kingtch.com/2010/12/30/php%e7%9a%84mysql%e6%a8%a1%e5%9d%97%e5%bc%95%e8%b5%b7%e7%9a%843221225477%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 12:49:51 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>

		<guid isPermaLink="false">http://rocky.blog.kingtch.com/2010/12/30/php%e7%9a%84mysql%e6%a8%a1%e5%9d%97%e5%bc%95%e8%b5%b7%e7%9a%843221225477%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3/</guid>
		<description><![CDATA[在windows上，MySQL 5.1中的libmySQL.dll与PHP 5.2.14中的php_mysql模块不兼容，导致3221225477 (0xC0000005)进程退出错误，可以将PHP安装包中的libmySQL.dll复制到apache的bin目录中，重新启动服务就可解决。]]></description>
			<content:encoded><![CDATA[<p>在windows上，MySQL 5.1中的libmySQL.dll与PHP 5.2.14中的php_mysql模块不兼容，导致3221225477 (0xC0000005)进程退出错误，可以将PHP安装包中的libmySQL.dll复制到apache的bin目录中，重新启动服务就可解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2010/12/30/php%e7%9a%84mysql%e6%a8%a1%e5%9d%97%e5%bc%95%e8%b5%b7%e7%9a%843221225477%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patch for anonymous&#8217; comments bug on drupal</title>
		<link>http://rocky.kingtch.com/2010/08/12/patch-for-anonymous-comments-bug-on-drupal/</link>
		<comments>http://rocky.kingtch.com/2010/08/12/patch-for-anonymous-comments-bug-on-drupal/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 09:15:12 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://rocky.blog.kingtch.com/2010/08/12/patch-for-anonymous-comments-bug-on-drupal/</guid>
		<description><![CDATA[&#160; You may allow anonymous post comments on drupal system by granting those rights to anonymous roles. But there is a bug which preventing the anonymous&#8217; comments to display with the posts or in the comment block. You could apply the patch below to fix the bug. It should work for version 6.16 to 6.19. [...]]]></description>
			<content:encoded><![CDATA[<p>&#160; You may allow anonymous post comments on drupal system by granting those rights to anonymous roles. But there is a bug which preventing the anonymous&#8217; comments to display with the posts or in the comment block. You could apply the patch below to fix the bug. It should work for version 6.16 to 6.19.</p>
<pre class="csharpcode">Index: modules/comment/comment.admin.inc
===================================================================
--- modules/comment/comment.admin.inc    (revision 281)
+++ modules/comment/comment.admin.inc    (revision 282)
@@ -57,7 +57,7 @@
     array(<span class="str">'data'</span> =&gt; t(<span class="str">'Time'</span>), <span class="str">'field'</span> =&gt; <span class="str">'timestamp'</span>, <span class="str">'sort'</span> =&gt; <span class="str">'desc'</span>),
     array(<span class="str">'data'</span> =&gt; t(<span class="str">'Operations'</span>))
   ));
-  $result = pager_query(<span class="str">'SELECT c.subject, c.nid, c.cid, c.comment, c.timestamp, c.status, c.name, c.homepage, u.name AS registered_name, u.uid, n.title as node_title FROM {comments} c INNER JOIN {users} u ON u.uid = c.uid INNER JOIN {node} n ON n.nid = c.nid WHERE c.status = %d'</span>. tablesort_sql($form[<span class="str">'header'</span>][<span class="str">'#value'</span>]), 50, 0, NULL, $status);
+  $result = pager_query(<span class="str">'SELECT c.subject, c.nid, c.cid, c.comment, c.timestamp, c.status, c.name, c.homepage, u.name AS registered_name, u.uid, n.title as node_title FROM {comments} c LEFT JOIN {users} u ON u.uid = c.uid INNER JOIN {node} n ON n.nid = c.nid WHERE c.status = %d'</span>. tablesort_sql($form[<span class="str">'header'</span>][<span class="str">'#value'</span>]), 50, 0, NULL, $status);

   <span class="rem">// build a table listing the appropriate comments</span>
   $destination = drupal_get_destination();
@@ -215,7 +215,7 @@
  *   The comment <span class="kwrd">do</span> be deleted.
  */
 function comment_delete($cid = NULL) {
-  $comment = db_fetch_object(db_query(<span class="str">'SELECT c.*, u.name AS registered_name, u.uid FROM {comments} c INNER JOIN {users} u ON u.uid = c.uid WHERE c.cid = %d'</span>, $cid));
+  $comment = db_fetch_object(db_query(<span class="str">'SELECT c.*, u.name AS registered_name, u.uid FROM {comments} c LEFT JOIN {users} u ON u.uid = c.uid WHERE c.cid = %d'</span>, $cid));
   $comment-&gt;name = $comment-&gt;uid ? $comment-&gt;registered_name : $comment-&gt;name;

   $output = <span class="str">''</span>;
@@ -287,7 +287,7 @@
   comment_invoke_comment($comment, <span class="str">'delete'</span>);

   <span class="rem">// Delete the comment's replies</span>
-  $result = db_query(<span class="str">'SELECT c.*, u.name AS registered_name, u.uid FROM {comments} c INNER JOIN {users} u ON u.uid = c.uid WHERE pid = %d'</span>, $comment-&gt;cid);
+  $result = db_query(<span class="str">'SELECT c.*, u.name AS registered_name, u.uid FROM {comments} c LEFT JOIN {users} u ON u.uid = c.uid WHERE pid = %d'</span>, $comment-&gt;cid);
   <span class="kwrd">while</span> ($comment = db_fetch_object($result)) {
     $comment-&gt;name = $comment-&gt;uid ? $comment-&gt;registered_name : $comment-&gt;name;
     _comment_delete_thread($comment);
Index: modules/comment/comment.module
===================================================================
--- modules/comment/comment.module    (revision 281)
+++ modules/comment/comment.module    (revision 282)
@@ -936,7 +936,7 @@

     <span class="kwrd">if</span> ($cid &amp;&amp; is_numeric($cid)) {
       <span class="rem">// Single comment view.</span>
-      $query = <span class="str">'SELECT c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.signature_format, u.picture, u.data, c.status FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.cid = %d'</span>;
+      $query = <span class="str">'SELECT c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.signature_format, u.picture, u.data, c.status FROM {comments} c LEFT JOIN {users} u ON c.uid = u.uid WHERE c.cid = %d'</span>;
       $query_args = array($cid);
       <span class="kwrd">if</span> (!user_access(<span class="str">'administer comments'</span>)) {
         $query .= <span class="str">' AND c.status = %d'</span>;
@@ -957,7 +957,7 @@
     <span class="kwrd">else</span> {
       <span class="rem">// Multiple comment view</span>
       $query_count = <span class="str">'SELECT COUNT(*) FROM {comments} c WHERE c.nid = %d'</span>;
-      $query = <span class="str">'SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.signature_format, u.picture, u.data, c.thread, c.status FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d'</span>;
+      $query = <span class="str">'SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.signature_format, u.picture, u.data, c.thread, c.status FROM {comments} c LEFT JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d'</span>;

       $query_args = array($nid);
       <span class="kwrd">if</span> (!user_access(<span class="str">'administer comments'</span>)) {</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2010/08/12/patch-for-anonymous-comments-bug-on-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make cronolog work with Nginx</title>
		<link>http://rocky.kingtch.com/2009/01/12/make-cronolog-work-with-nginx/</link>
		<comments>http://rocky.kingtch.com/2009/01/12/make-cronolog-work-with-nginx/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 15:02:53 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[nginx cronolog]]></category>

		<guid isPermaLink="false">http://rocky.blog.kingtch.com/2009/01/12/make-cronolog-work-with-nginx/</guid>
		<description><![CDATA[I got two solutions from here: http://pjkh.com/articles/2007/03/15/nginx-and-cronolog/. But I am not satisfied with the second solution because of some wrong placement with a few log records. I would like use this: mv /var/log/nginx/access_log /var/log/nginx/access_log.processing -f; mv /var/log/nginx/error_log /var/log/nginx/error_log.processing -f; kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`; /usr/bin/perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -LogFile=/var/log/nginx/access_log.processing -update cat /var/log/nginx/access_log.processing &#124; /usr/local/sbin/cronolog /var/log/nginx/%Y/%m/%d/access_log; cat /var/log/nginx/error_log.processing &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>I got two solutions from here: <a href="http://pjkh.com/articles/2007/03/15/nginx-and-cronolog/">http://pjkh.com/articles/2007/03/15/nginx-and-cronolog/</a>.</p>
<p>But I am not satisfied with the second solution because of some wrong placement with a few log records. I would like use this:</p>
<pre>mv /var/log/nginx/access_log /var/log/nginx/access_log.processing -f;
mv /var/log/nginx/error_log /var/log/nginx/error_log.processing -f;
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`;
/usr/bin/perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -LogFile=/var/log/nginx/access_log.processing -update
cat /var/log/nginx/access_log.processing | /usr/local/sbin/cronolog /var/log/nginx/%Y/%m/%d/access_log;
cat /var/log/nginx/error_log.processing | /usr/local/sbin/cronolog /var/log/nginx/%Y/%m/%d/error_log;
rm /var/log/nginx/access_log.processing /var/log/nginx/error_log.processing -f;</pre>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2009/01/12/make-cronolog-work-with-nginx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>coolplayer youtube-support-bug fix</title>
		<link>http://rocky.kingtch.com/2008/11/29/coolplayer-youtube-support-bug-fix/</link>
		<comments>http://rocky.kingtch.com/2008/11/29/coolplayer-youtube-support-bug-fix/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 11:18:44 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rocky.blog.kingtch.com/?p=136</guid>
		<description><![CDATA[进入coolplayer的后台设置页面：http://xxxx/wp-admin/options- general.php?page=coolplayer/options.php，将“RPC 服务器地址”设置为 http://rocky.blog.kingtch.com/wp-content/plugins/coolplayer/rpc.php 即可。 如果你想使用自己的rpc，可以从这里下载coolplayer- youtube-patch.zip，解压后将rpc.php覆盖原来目录/wp-content/plugins /coolplayer/下的rpc.php文件即可。]]></description>
			<content:encoded><![CDATA[<p>进入coolplayer的后台设置页面：http://xxxx/wp-admin/options- general.php?page=coolplayer/options.php，将<strong>“RPC 服务器地址</strong>”设置为 http://rocky.blog.kingtch.com/wp-content/plugins/coolplayer/rpc.php 即可。</p>
<p>如果你想使用自己的rpc，可以从这里下载<a href="/files/2008/11/coolplayer-youtube-patch.zip">coolplayer- youtube-patch.zip</a>，解压后将rpc.php覆盖原来目录/wp-content/plugins /coolplayer/下的rpc.php文件即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2008/11/29/coolplayer-youtube-support-bug-fix/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>fix coolcode plugin for WP 2.6.5</title>
		<link>http://rocky.kingtch.com/2008/11/29/fix-coolcode-plugin-for-wp-265/</link>
		<comments>http://rocky.kingtch.com/2008/11/29/fix-coolcode-plugin-for-wp-265/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 09:44:10 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rocky.blog.kingtch.com/?p=120</guid>
		<description><![CDATA[Coolcode is a cool plugin which is made by andot. Now it is not compatible with WP 2.6.5. Ifix it, and you can download new version from here.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.coolcode.cn/show-26-1.html" target="_blank">Coolcode</a> is a cool plugin which is made by andot. Now it is not compatible with WP 2.6.5. Ifix it, and you can download new version from <a href="/files/2008/11/coolcode-wp-2.6.5.zip">here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2008/11/29/fix-coolcode-plugin-for-wp-265/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fix Nginx “411 Length Required” Problem</title>
		<link>http://rocky.kingtch.com/2008/11/28/fix_nginx_411_length_required/</link>
		<comments>http://rocky.kingtch.com/2008/11/28/fix_nginx_411_length_required/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 08:28:53 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://yonggang.blog.kingtch.com/?p=100</guid>
		<description><![CDATA[When using POST method to request via Nginx 0.6.33 without any post body data, you may get this error: 411 Length Required. Download nginx-0.6.33-length_required patch Save the attachment and run this command in the root path of nginx 0.6.33 source code: patch ./src/http/ngx_http_request.c&#60;nginx-0_6_33-length_required.patch Then "make &#38;&#38; make install &#38;&#38; sudo /sbin/service nginx restart" and enjoy [...]]]></description>
			<content:encoded><![CDATA[<pre>When using POST method to request via Nginx 0.6.33 without any post body data, you may get this error: 411 Length Required. 

<a href="/files/2008/11/nginx-0.6.33-length_required.patch">Download nginx-0.6.33-length_required patch</a>
Save the attachment and run this command in the root path of nginx 0.6.33 source code:
patch ./src/http/ngx_http_request.c&lt;nginx-0_6_33-length_required.patch
Then "make &amp;&amp; make install &amp;&amp; sudo /sbin/service nginx restart" and enjoy your AJAX function.</pre>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2008/11/28/fix_nginx_411_length_required/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>自动阻止SYN、DoS攻击</title>
		<link>http://rocky.kingtch.com/2008/07/23/%e8%87%aa%e5%8a%a8%e9%98%bb%e6%ad%a2syn%e3%80%81dos%e6%94%bb%e5%87%bb/</link>
		<comments>http://rocky.kingtch.com/2008/07/23/%e8%87%aa%e5%8a%a8%e9%98%bb%e6%ad%a2syn%e3%80%81dos%e6%94%bb%e5%87%bb/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 05:51:05 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.kingtch.com/2008/07/23/90/%e8%87%aa%e5%8a%a8%e9%98%bb%e6%ad%a2syn%e3%80%81dos%e6%94%bb%e5%87%bb.html</guid>
		<description><![CDATA[除了告警敦促人工处理SYN、DoS攻击，可以将嫌疑犯先抓起来再说： netstat -na &#124; grep :80 &#124;awk '{print $5}'&#124;awk -F '::ffff:' '{print $2}' &#124; grep ':' &#124; awk -F: '{print $1}' &#124; sort &#124; uniq -c &#124; sort -r &#124; awk -F' ' '{if ($1 &#62; 50) print $2}' &#124; sed 's/^.*$/iptables -I RH-Firewall-1-INPUT 1 -p tcp -m tcp -s &#38; --dport 80 --syn -j [...]]]></description>
			<content:encoded><![CDATA[<p>除了告警敦促人工处理SYN、DoS攻击，可以将嫌疑犯先抓起来再说：</p>
<pre>netstat -na | grep :80 |awk '{print $5}'|awk -F '::ffff:' '{print $2}' | grep ':' | awk -F: '{print $1}' | sort | uniq -c | sort -r | awk -F' ' '{if ($1 &gt; 50) print $2}' | sed 's/^.*$/iptables -I RH-Firewall-1-INPUT 1 -p tcp -m tcp -s &amp; --dport 80 --syn -j REJECT/' | sh</pre>
<p>该脚本基于的基础是认为从一个IP过来的连接数过大（超过50个），则该IP可能在进行攻击。实际上可能误杀掉一些只能通过代理服务器访问的大公司用户，或者某些有点贪心的网络爬虫。可以在脚本中加入一些白名单以防止误杀，如：</p>
<pre>netstat -na | grep :80 |awk '{print $5}'|awk -F '::ffff:' '{print $2}' | grep ':' | awk -F: '{print $1}' | sort | uniq -c | sort -r | awk -F' ' '{if ($1 &gt; 50) print $2}' | grep -v xxx.xxx.xxx.xxx | sed 's/^.*$/iptables -I RH-Firewall-1-INPUT 1 -p tcp -m tcp -s &amp; --dport 80 --syn -j REJECT/' | sh</pre>
<p><span style="text-decoration: underline"><a href="http://4thpeg.com/romads/post.php?p=9-4603"></a><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2008/07/23/%e8%87%aa%e5%8a%a8%e9%98%bb%e6%ad%a2syn%e3%80%81dos%e6%94%bb%e5%87%bb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>自动短信提醒进行服务器状态告警</title>
		<link>http://rocky.kingtch.com/2008/05/16/%e8%87%aa%e5%8a%a8%e7%9f%ad%e4%bf%a1%e6%8f%90%e9%86%92%e8%bf%9b%e8%a1%8c%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e5%91%8a%e8%ad%a6/</link>
		<comments>http://rocky.kingtch.com/2008/05/16/%e8%87%aa%e5%8a%a8%e7%9f%ad%e4%bf%a1%e6%8f%90%e9%86%92%e8%bf%9b%e8%a1%8c%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e5%91%8a%e8%ad%a6/#comments</comments>
		<pubDate>Fri, 16 May 2008 08:22:33 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.kingtch.com/2008/05/16/89/%e8%87%aa%e5%8a%a8%e7%9f%ad%e4%bf%a1%e6%8f%90%e9%86%92%e8%bf%9b%e8%a1%8c%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e5%91%8a%e8%ad%a6.html</guid>
		<description><![CDATA[定时启动的脚本： df &#124; grep “/var” &#124; awk &#8216;{ print $5 }&#8217; &#124; awk -F”%” &#8216;{print $1}&#8217; &#124; awk &#8216;{ if ($1 &#62; 90){print “alert.sh \”139xxxxxxxx\” \”insufficient disk space on /var. “,$1,”\”"} }&#8217; &#124; csh ps -ef &#124; grep httpd &#124; grep -v cronolog &#124; grep -v grep &#124; grep -v root &#124; wc -l &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>定时启动的脚本：</p>
<p>df | grep “/var” | awk &#8216;{ print $5 }&#8217; | awk -F”%” &#8216;{print $1}&#8217; | awk &#8216;{ if ($1 &gt; 90){print “alert.sh \”139xxxxxxxx\” \”insufficient disk space on /var. “,$1,”\”"} }&#8217; | csh<br />
ps -ef | grep httpd | grep -v cronolog | grep -v grep | grep -v root | wc -l | awk &#8216;{ if ($1 &gt; 3000){print “alert.sh \”139xxxxxxxx\” \”apache process “, $1,”\”"} }&#8217; | csh<br />
echo &#8216;show processlist&#8217; | mysql | grep -v Id | grep -v processlist | wc -l | awk &#8216;{ if ($1 &gt; 3000){print “alert.sh \”139xxxxxxxx\” \”mysql process “, $1,”\”"} }&#8217; | csh</p>
<p>alert.sh 脚本:</p>
<p>echo $2<br />
echo -e “From:monitor&lt;&gt;\nReply-to:support &lt;support.labs@etentec.com&gt;\nSubject:$2\n\n$2\n.” | /usr/sbin/sendmail $1@139.com</p>
]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2008/05/16/%e8%87%aa%e5%8a%a8%e7%9f%ad%e4%bf%a1%e6%8f%90%e9%86%92%e8%bf%9b%e8%a1%8c%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e5%91%8a%e8%ad%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个监视服务器状态的shell脚本</title>
		<link>http://rocky.kingtch.com/2008/05/16/%e4%b8%80%e4%b8%aa%e7%9b%91%e8%a7%86%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e7%9a%84shell%e8%84%9a%e6%9c%ac/</link>
		<comments>http://rocky.kingtch.com/2008/05/16/%e4%b8%80%e4%b8%aa%e7%9b%91%e8%a7%86%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e7%9a%84shell%e8%84%9a%e6%9c%ac/#comments</comments>
		<pubDate>Fri, 16 May 2008 06:03:47 +0000</pubDate>
		<dc:creator>rocky</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.kingtch.com/2008/05/16/88/%e4%b8%80%e4%b8%aa%e7%9b%91%e8%a7%86%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e7%9a%84shell%e8%84%9a%e6%9c%ac.html</guid>
		<description><![CDATA[#! /bin/bash for1do&#160;&#160;&#160; clear&#160;&#160;&#160; date&#160;&#160;&#160; echo -n &#8216;httpd process:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;;ps -ef &#124; grep httpd &#124; grep -v cronolog &#124; grep -v grep &#124; grep -v root &#124; wc -l&#160;&#160;&#160; echo -n &#8216;http connection:&#160;&#160; &#8216;;netstat -an &#124; grep :80 &#124; grep ESTABLISHED &#124; wc -l&#160;&#160;&#160; echo -n &#8216;mysql process:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;;echo &#8216;show processlist&#8217; &#124; mysql &#124; grep [...]]]></description>
			<content:encoded><![CDATA[<p>#! /bin/bash
<p>for<sup><a href="http://rocky.kingtch.com/2008/05/16/%e4%b8%80%e4%b8%aa%e7%9b%91%e8%a7%86%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e7%9a%84shell%e8%84%9a%e6%9c%ac/#footnote_0_85" id="identifier_0_85" class="footnote-link footnote-identifier-link" title=" ; ; ">1</a></sup><br />do<br />&nbsp;&nbsp;&nbsp; clear<br />&nbsp;&nbsp;&nbsp; date<br />&nbsp;&nbsp;&nbsp; echo -n &#8216;httpd process:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;;ps -ef | grep httpd | grep -v cronolog | grep -v grep | grep -v root | wc -l<br />&nbsp;&nbsp;&nbsp; echo -n &#8216;http connection:&nbsp;&nbsp; &#8216;;netstat -an | grep :80 | grep ESTABLISHED | wc -l<br />&nbsp;&nbsp;&nbsp; echo -n &#8216;mysql process:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;;echo &#8216;show processlist&#8217; | mysql | grep -v Id | grep -v processlist | wc -l<br />&nbsp;&nbsp;&nbsp; echo -n &#8216;mysql connection:&nbsp; &#8216;;netstat -an | grep 3306 | grep ESTABLISHED | wc -l<br />&nbsp;&nbsp;&nbsp; echo &#8216;tcp connection stats:&#8217;;netstat -n | awk &#8216;/^tcp/ {++S[$NF]} END {for(a in S) print “&nbsp;&nbsp; “,a, S[a]}&#8217;<br />&nbsp;&nbsp;&nbsp; echo &#8216;sorted ESTABLISHED connections: &#8216;;netstat -na|grep ESTABLISHED|awk &#8216;{print $5}&#8217;|awk -F: &#8216;{print $1}&#8217;|sort|uniq -c|sort -r +0n<br />&nbsp;&nbsp;&nbsp; echo &#8216;sorted SYN connections: &#8216;; netstat -na|grep SYN|awk &#8216;{print $5}&#8217;|awk -F: &#8216;{print $1}&#8217;|sort|uniq -c|sort -r +0n<br />&nbsp;&nbsp;&nbsp; sleep 5<br />done</p>
<ol class="footnotes"><li id="footnote_0_85" class="footnote"> ; ; </li></ol>]]></content:encoded>
			<wfw:commentRss>http://rocky.kingtch.com/2008/05/16/%e4%b8%80%e4%b8%aa%e7%9b%91%e8%a7%86%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%8a%b6%e6%80%81%e7%9a%84shell%e8%84%9a%e6%9c%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

