<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://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://jackxiang.com/post//</link>
<title><![CDATA[自动摘除后端已Down的memcache]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 29 Nov 2010 05:18:02 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	代码：<br/><br/><br/><div class="code">#!/bin/bash<br/>#author Sky<br/>PATH=&quot;/var/PROGRAM/MANAGEMENT/modules/xbash:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:&quot;<br/>LANG=zh_CN<br/>export PATH LANG<br/><br/>RESINHOME=&quot;/data/resin-pro-3.1.8&quot;<br/>PLUGIN_HOME=$RESINHOME/pconline_plugin<br/><br/>JAVAHOME=&quot;/usr/java/jdk1.6.0_06&quot;<br/><br/>PLUGIN_MC=&quot;java_memcached-release_2.0.1.jar&quot;<br/>PLUGIN_LOG4J=&quot;log4j-1.2.15.jar&quot;<br/>PLUGIN_NAME=&quot;mcheathychk.jar&quot;<br/><br/>#############enviroment initialize###################<br/>&#91;&#91; ! -e $JAVAHOME/jre/lib/ext/$PLUGIN_MC &#93;&#93; &amp;&amp; cp $RESINHOME/pconline_plugin/$PLUGIN_MC $JAVAHOME/jre/lib/ext/<br/>&#91;&#91; ! -e $JAVAHOME/jre/lib/ext/$PLUGIN_LOG4J &#93;&#93; &amp;&amp; cp $RESINHOME/pconline_plugin/$PLUGIN_LOG4J $JAVAHOME/jre/lib/ext/<br/>####################################################<br/><br/><br/>############<br/># 主机信息 #<br/>############<br/>INTF=$(netstat -rn &#124; tail -1 &#124; awk &#039;&#123;print $NF&#125;&#039;)<br/>IP=$(ifconfig $INTF &#124; awk &#039;/inet addr/&#123; split($2,tmp,&quot;:&quot;) ; print tmp&#91;2&#93; &#125;&#039;)<br/>HOST_NAME=$(hostname --short)<br/><br/>##########<br/>#邮件环境#<br/>##########<br/>#CHARTSET=&quot;zh_CN.&quot;<br/>MAIL_CLIENT=&quot;&quot;<br/>MAIL_SENDER=&quot;&quot;<br/>MAIL_SERVER=&quot;&quot;<br/>case $IP in<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.230.*&#124;192.168.1&#91;0-1&#93;.*&#124;192.168.238.*&#124;202.9.1.*)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MAIL_SERVER=&quot;202.2&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MAIL_SERVER=&quot;192.168.8.&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>esac<br/>##########<br/><br/>for resin in `cat /etc/mods.conf &#124; grep resind &#124; grep -v &quot;#&quot; &#124; awk -F&quot;:&quot; &#039;&#123;print $2&#125;&#039; &#124; xargs`<br/>do<br/>&nbsp;&nbsp; ######get relate configuration#####################<br/>&nbsp;&nbsp; JAVAHOME=`cat $resin&nbsp;&nbsp;&#124; grep &quot;JAVA_HOME=&quot; &#124; awk -F&quot;=&quot; &#039;&#123;print $2&#125;&#039;`<br/>&nbsp;&nbsp; RESINHOME=`cat $resin&nbsp;&nbsp;&#124; grep &quot;RESIN_HOME=&quot; &#124; awk -F&quot;=&quot; &#039;&#123;print $2&#125;&#039;`<br/>&nbsp;&nbsp; CONF_NAME=`cat $resin&nbsp;&nbsp;&#124; grep &quot;SEARCH_STR=&quot; &#124; awk -F&quot;=&quot; &#039;&#123;print $2&#125;&#039; &#124; sed &#039;s/&#92;&quot;//g&#039;`<br/>&nbsp;&nbsp; APP_HOME=`cat $RESINHOME/conf/$CONF_NAME &#124; grep &quot;&lt;web-app id=&#92;&quot;/&#92;&quot; root-directory=&#92;&quot;&quot; &#124; awk -F&quot;=&quot; &#039;&#123;print $3&#125;&#039; &#124; sed &quot;s#&#92;&quot;##g&quot; &#124; sed &quot;s#/&gt;##g&quot;`<br/>&nbsp;&nbsp; CONF_MC=$APP_HOME/WEB-INF/classes/memcached.properties<br/>&nbsp;&nbsp; ###################################################<br/>&nbsp;&nbsp; if &#91;&#91; -e $CONF_MC &#93;&#93; ;&nbsp;&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;servers=`cat $CONF_MC &#124; grep &quot;servers&quot; &#124; awk -F&quot;=&quot; &#039;&#123;print $2&#125;&#039;`<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for server in `echo $servers &#124; awk -F&quot;,&quot; &#039;&#123;for( i=0;i&lt;$NF;i++) &#123;print $((i+1))&#125;&#125;&#039; &#124; xargs`<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #echo $server<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $server &#124;&nbsp;&nbsp;awk -F&quot;:&quot; &#039;&#123;print $1,$2&#125;&#039; &#124; &#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while read dip port<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;/sbin/iptables -nL &#124; grep -q &quot;$dip&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ######解封###############<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /sbin/iptables -D OUTPUT -p tcp -s $IP -d $dip --dport $port -j REJECT --reject-with tcp-reset 2&gt; /dev/null<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; done<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ##############Test Memcache################<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stats=`$JAVAHOME/bin/java -jar $RESINHOME/pconline_plugin/$PLUGIN_NAME $server 2&gt; /dev/dull`<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #echo &quot;stats=&quot;$stats <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if &#91;&#91; $stats == &quot;MCOK&quot; &#93;&#93; ; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; agentname=`echo $resin &#124; awk -F&quot;_&quot; &#039;&#123;print $2&#125;&#039;`<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;mcchk_$agentname=0&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; agentname=`echo $resin &#124; awk -F&quot;_&quot; &#039;&#123;print $2&#125;&#039;`<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $server &#124;&nbsp;&nbsp;awk -F&quot;:&quot; &#039;&#123;print $1,$2&#125;&#039; &#124; &#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while read dip port<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/sbin/iptables -A OUTPUT -p tcp -s $IP -d $dip --dport $port&nbsp;&nbsp;-j REJECT --reject-with tcp-reset<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; done<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;mcchk_$agentname=1&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $agentname&quot;_&quot;$server&quot;&nbsp;&nbsp;is bad&quot; &#124;&nbsp;&nbsp;env MAILRC=/dev/null charset=&quot;$CHARTSET&quot; from=&quot;$MAIL_SENDER&quot; smtp=&quot;$MAIL_SERVER&quot; &#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nail -n -s &quot;$HOST_NAME($IP)MC had bad information&quot; $MAIL_CLIENT <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; done<br/>&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp;&nbsp; agentname=`echo $resin &#124; awk -F&quot;_&quot; &#039;&#123;print $2&#125;&#039;`<br/>&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;mcchk_$agentname=0&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp; break<br/>&nbsp;&nbsp; fi<br/>done</div><br/>来源：http://blog.chinaunix.net/u2/84280/showart_2311724.html
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 自动摘除后端已Down的memcache]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>