<?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>我爱linux</title>
	<atom:link href="http://www.5ilinux.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.5ilinux.com</link>
	<description>我是一个linux运维从业者，这个网站记录一些平时调试linux相关文档及生活随笔</description>
	<lastBuildDate>Fri, 27 Apr 2012 01:22:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>分享Nginx服务器中文手册</title>
		<link>http://www.5ilinux.com/2012/04/nginx_manual.html</link>
		<comments>http://www.5ilinux.com/2012/04/nginx_manual.html#comments</comments>
		<pubDate>Fri, 27 Apr 2012 01:13:08 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=460</guid>
		<description><![CDATA[网上找到的，觉得不错，分享给大家 &#160; 我放在115网盘上分享了，115注册地址http://115.com/invite/9c3eea Nginx服务器中文手册分享的地址是 http://115.com/file/c2lvs1xr &#160; 解压密码：www.5ilinux.com &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p>网上找到的，觉得不错，分享给大家</p>
<div class="wp-caption alignnone" style="width: 610px"><img title="Nginx服务器中文手册" src="http://pic.yupoo.com/xiangpeng/BVczTCr2/klPdX.jpg" alt="Nginx服务器中文手册" width="600" height="188" /><p class="wp-caption-text">Nginx服务器中文手册</p></div>
<p>&nbsp;</p>
<p>我放在115网盘上分享了，115注册地址<a title="115网盘" href="http://115.com/invite/9c3eea">http://115.com/invite/9c3eea</a></p>
<p>Nginx服务器中文手册分享的地址是 <a title="分享地址" href="http://115.com/file/c2lvs1xr">http://115.com/file/c2lvs1xr</a></p>
<p>&nbsp;</p>
<p>解压密码：www.5ilinux.com</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/nginx_manual.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>内存监控小脚本</title>
		<link>http://www.5ilinux.com/2012/04/%e5%86%85%e5%ad%98%e7%9b%91%e6%8e%a7%e5%b0%8f%e8%84%9a%e6%9c%ac.html</link>
		<comments>http://www.5ilinux.com/2012/04/%e5%86%85%e5%ad%98%e7%9b%91%e6%8e%a7%e5%b0%8f%e8%84%9a%e6%9c%ac.html#comments</comments>
		<pubDate>Fri, 27 Apr 2012 00:53:52 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[监控]]></category>
		<category><![CDATA[脚本]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=458</guid>
		<description><![CDATA[此脚本用来监控内存的使用情况，如果内存超过多少比例，自动发送邮件给管理员 #!/bin/bash echo &#34;`date`,warning!!!mem have over 80%&#34; &#38;gt; /root/mem.txt c=`free &#124; grep Mem &#124; awk '{print $4/$2}' ` b=8 a=`echo $c &#124; cut -c1-3 &#124; awk -F&#34;.&#34; '{print $2}'` ((a &#38;gt;= b)) if [ &#34;$?&#34; -eq 0 ];then mail -s &#34;warning!!!mem have over 80%&#34; root &#38;lt; /root/mem.txt echo &#34;over 80&#34; fi #!/bin/bash a=`free &#124; awk [...]]]></description>
			<content:encoded><![CDATA[<p>此脚本用来监控内存的使用情况，如果内存超过多少比例，自动发送邮件给管理员</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">#!/bin/bash
echo &quot;`date`,warning!!!mem have over 80%&quot;  &amp;gt;  /root/mem.txt
c=`free | grep Mem | awk  '{print $4/$2}' `
b=8
a=`echo $c | cut -c1-3 | awk -F&quot;.&quot; '{print $2}'`
((a &amp;gt;= b))
if [ &quot;$?&quot; -eq 0 ];then
mail  -s &quot;warning!!!mem have over 80%&quot;  root &amp;lt; /root/mem.txt
echo &quot;over 80&quot;
fi</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">#!/bin/bash
a=`free | awk '/Mem/{print int($4/$2*100)}'`
b=80
if [ $a -gt $b ]; then
    echo &quot;`date`,warning!!!mem have over $b%&quot; | mail  -s &quot;warning!!!mem have over $b%&quot; root
    echo &quot;over $b&quot;
fi</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/%e5%86%85%e5%ad%98%e7%9b%91%e6%8e%a7%e5%b0%8f%e8%84%9a%e6%9c%ac.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>进程监控小脚本</title>
		<link>http://www.5ilinux.com/2012/04/processmonitoring_script.html</link>
		<comments>http://www.5ilinux.com/2012/04/processmonitoring_script.html#comments</comments>
		<pubDate>Thu, 26 Apr 2012 06:55:01 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[监控]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[进程]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=455</guid>
		<description><![CDATA[linux运维工作中，经常要监控某个进程的运行情况，防止进程神秘死掉 if ps -ef &#124; grep “ 进程名” &#124;grep -v “grep” &#38;gt; /dev/null 2&#38;gt;&#38;amp;1 then : else echo &#34;Warning: 进程 is dead&#34; &#124; mail -s &#34;Subject&#34; &#60;a href=&#34;mailto:someone@somesite.com&#34;&#62;someone@somesite.com&#60;/a&#62; fi 判断进程是否存在，不存在就发邮件给管理员]]></description>
			<content:encoded><![CDATA[<p>linux运维工作中，经常要监控某个进程的运行情况，防止进程神秘死掉</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">if ps -ef | grep “ 进程名” |grep -v “grep” &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
then
:
else
echo &quot;Warning: 进程 is dead&quot; | mail -s &quot;Subject&quot; &lt;a href=&quot;mailto:someone@somesite.com&quot;&gt;someone@somesite.com&lt;/a&gt;
fi</pre></div></div>

<p>判断进程是否存在，不存在就发邮件给管理员</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/processmonitoring_script.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux运维面试题目-网上搜集的</title>
		<link>http://www.5ilinux.com/2012/04/linux_test.html</link>
		<comments>http://www.5ilinux.com/2012/04/linux_test.html#comments</comments>
		<pubDate>Thu, 26 Apr 2012 01:21:20 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[运维]]></category>
		<category><![CDATA[面试]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=451</guid>
		<description><![CDATA[第一部分Linux基础 01. 仅列出 /test目录下的所有目录，请写出完整命令 答：ls -l &#124;grep ^d  或者 ls -d */ 02. umask 022 ，请描述该命令的含义 03. 在排除 /test/a目录的条件下，归档并gzip压缩整个/test目录，请写出完整的操作命令 04. 查询并列出 test进程所打开的当前所有文件，请写出完整的操作命令 lsof -c test 05. 查询并列出 test.rpm包里所包含的所有文件，请写出完整的操作命令 rpm -qpl test.rpm 06. 将 /test/a目录建立软链接到 /test/b目录，请写出完整的操作命令 07. 设置当前用户环境中 test变量为 123并使之立即生效，请写出完整操作命令 08. 设置系统当前运行级别中 test服务状态为启动时自动加载，请写出完整操作命令 09. 列出当前系统中所有的网络连接（包含进程名），请写出完整操作命令 10. 实时抓取并显示当前系统中 tcp 80端口的网络数据信息，请写出完整操作命令 l 第二部分综合应用 01. 请写出5个你常用的系统或网络维护工具的名称 02. 在 nslookup使用中，请问如何查询 [...]]]></description>
			<content:encoded><![CDATA[<p>第一部分Linux基础</p>
<p>01. 仅列出 /test目录下的所有目录，请写出完整命令</p>
<p>答：ls -l |grep ^d  或者 ls -d */</p>
<p>02. umask 022 ，请描述该命令的含义</p>
<p>03. 在排除 /test/a目录的条件下，归档并gzip压缩整个/test目录，请写出完整的操作命令</p>
<p>04. 查询并列出 test进程所打开的当前所有文件，请写出完整的操作命令<br />
lsof -c test<br />
05. 查询并列出 test.rpm包里所包含的所有文件，请写出完整的操作命令<br />
rpm -qpl test.rpm<br />
06. 将 /test/a目录建立软链接到 /test/b目录，请写出完整的操作命令<br />
07. 设置当前用户环境中 test变量为 123并使之立即生效，请写出完整操作命令<br />
08. 设置系统当前运行级别中 test服务状态为启动时自动加载，请写出完整操作命令<br />
09. 列出当前系统中所有的网络连接（包含进程名），请写出完整操作命令</p>
<p>10. 实时抓取并显示当前系统中 tcp 80端口的网络数据信息，请写出完整操作命令</p>
<p>l 第二部分综合应用</p>
<p>01. 请写出5个你常用的系统或网络维护工具的名称</p>
<p>02. 在 nslookup使用中，请问如何查询 test.com域中的 MX记录</p>
<p>03. ftp ，ssh，smtp，pop3，https，请写出这些服务的默认端口</p>
<p>答：FTP：21、SSH：22、SMTP:25、POP3：110、HTTPS：443</p>
<p>04. 请问32位的 win2000 / win 2003系统如何打开大内存支持（&gt;3.25G）</p>
<p>05. 请问如何用 iptables工具阻断来自 192.168.0.1的所有网络连接</p>
<p>06. 请简要描述Linux系统下源代码编译方式安装软件的大致步骤</p>
<p>07. 请写出Tomcat程序的主配置文件名</p>
<p>08. Mysql客户端工具中，请问如何查询当前所有的连接进程信息</p>
<p>09. 请问如何清理SQL Server已满的数据库日志</p>
<p>10. 通过cisco acl规则阻止 192.168.0.1到 192.168.0.2的ssh登陆，请写出完整操作命令</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>答案以后公布，大家不妨先做做！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/linux_test.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discuz X2.5去掉标题后缀”Powered by Discuz”</title>
		<link>http://www.5ilinux.com/2012/04/discuz_header_poered.html</link>
		<comments>http://www.5ilinux.com/2012/04/discuz_header_poered.html#comments</comments>
		<pubDate>Thu, 26 Apr 2012 00:59:29 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[discuz]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=449</guid>
		<description><![CDATA[最近discuz更新到2.5的正式版了，版本功能和用户体验有了很大的改善。好久没捣鼓discuz论坛，升级了现有的论坛。从新尝试了一下去掉标题后缀“ &#8211; Powered by Discuz！”的方法，如下： 在discuz的安装目录下找到template目录 依次进入/template/default/common 找到/template/default/common目录下边的文件header_common.htm 打开 找到以下代码， &#60;title&#62;&#60;!&#8211;{if !empty($navtitle)}&#8211;&#62;$navtitle - &#60;!&#8211;{/if}&#8211;&#62;&#60;!&#8211;{if empty($nobbname)}&#8211;&#62; $_G['setting']['bbname'] - &#60;!&#8211;{/if}&#8211;&#62; Powered by Discuz!&#60;/title&#62; 删除红色部分，注意有2个小 “-”。 对于论坛底部的版权信息同样修改footer.htm模板文件就可以了。（不建议删除底部版权信息，至少尊重下别人的版权，标题是没办法，避免太多的重复内容。） 最后记得在后台更新下缓存，一切OK，暂时没发现什么问题。 至此，Discuz! X2.5 去掉标题后缀“ &#8211; Powered by Discuz！”算是完成了。]]></description>
			<content:encoded><![CDATA[<p>最近discuz更新到2.5的正式版了，版本功能和用户体验有了很大的改善。好久没捣鼓discuz论坛，升级了现有的论坛。从新尝试了一下去掉标题后缀“ &#8211; <strong>Powered by Discuz</strong>！”的方法，如下：</p>
<p>在discuz的安装目录下找到template目录<br />
依次进入/template/default/common<br />
找到/template/default/common目录下边的文件header_common.htm 打开<br />
找到以下代码，<br />
&lt;title&gt;&lt;!&#8211;{if !empty($navtitle)}&#8211;&gt;$navtitle <span style="color: #ff0000;">-</span> &lt;!&#8211;{/if}&#8211;&gt;&lt;!&#8211;{if empty($nobbname)}&#8211;&gt; $_G['setting']['bbname'] <span style="color: #ff0000;">-</span> &lt;!&#8211;{/if}&#8211;&gt; <span style="color: #ff0000;">Powered by Discuz!</span>&lt;/title&gt;<br />
删除红色部分，注意有2个小 “-”。<br />
对于论坛底部的版权信息同样修改footer.htm模板文件就可以了。（不建议删除底部版权信息，至少尊重下别人的版权，标题是没办法，避免太多的重复内容。）<br />
最后记得在后台更新下缓存，一切OK，暂时没发现什么问题。</p>
<p>至此，Discuz! X2.5 去掉标题后缀“ &#8211; <span style="color: #ff0000;">Powered by Discuz</span>！”算是完成了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/discuz_header_poered.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ecshop插件:购买记录的用户名的后几位字符用***星号显示</title>
		<link>http://www.5ilinux.com/2012/04/ecshop_bought_username.html</link>
		<comments>http://www.5ilinux.com/2012/04/ecshop_bought_username.html#comments</comments>
		<pubDate>Wed, 25 Apr 2012 05:06:53 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[ecshop]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=447</guid>
		<description><![CDATA[ecshop的一个小插件，保护买家的隐私，只显示用户名的前2个字符，不显示全名，剩余部分用*显示 其实这个ecshop问题很简单就可以解决，只需加一行代码就OK了。 只保留了用户名的前2个字符，后面的都用 ****** 隐藏掉了。 你可以根据教程，灵活修改，可以保留前1个字符，前3个字符。。。。等等 打开 /includes/lib_insert.php 文件 找到 $bought_notes[$key]['add_time'] = local_date(“Y-m-d G:i:s”, $val['add_time']); 在它下边增加一行代码 如下所示： $bought_notes[$key]['user_name'] = sub_str($val['user_name']?$val['user_name']:&#8217;匿名用户&#8217;,2,false).&#8217;******&#8217;;]]></description>
			<content:encoded><![CDATA[<p>ecshop的一个小插件，保护买家的隐私，只显示用户名的前2个字符，不显示全名，剩余部分用*显示</p>
<p>其实这个ecshop问题很简单就可以解决，只需加一行代码就OK了。</p>
<p>只保留了用户名的前2个字符，后面的都用 ****** 隐藏掉了。</p>
<p>你可以根据教程，灵活修改，可以保留前1个字符，前3个字符。。。。等等<br />
打开 /includes/lib_insert.php 文件</p>
<p>找到</p>
<p>$bought_notes[$key]['add_time'] = local_date(“Y-m-d G:i:s”, $val['add_time']);<br />
在它下边增加一行代码</p>
<p>如下所示：<br />
$bought_notes[$key]['user_name'] = sub_str($val['user_name']?$val['user_name']:&#8217;匿名用户&#8217;,2,false).&#8217;******&#8217;;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/ecshop_bought_username.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>设置nginx默认虚拟主机（空主机头，默认主机头）</title>
		<link>http://www.5ilinux.com/2012/04/nginx_default.html</link>
		<comments>http://www.5ilinux.com/2012/04/nginx_default.html#comments</comments>
		<pubDate>Sun, 22 Apr 2012 16:19:53 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[default]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=442</guid>
		<description><![CDATA[设置nginx默认虚拟主机（空主机头，默认主机头） nginx的默认虚拟主机在用户通过IP访问，或者通过未设置的域名访问（比如有人把他自己的域名指向了你的ip）的时候生效 最关键的一点事，在server的设置里面添加这一行： listen 80 default; 后面的default参数表示这个是默认虚拟主机。 这个设置非常有用。 比如别人通过ip或者未知域名访问你的网站的时候，你希望禁止显示任何有效内容，可以给他返回500. 目前国内很多机房都要求网站主关闭空主机头，防止未备案的域名指向过来造成麻烦。就可以这样设置： server { listen 80 default; return 500; } 也可以把这些流量收集起来，导入到自己的网站，只要做以下跳转设置就可以： server { listen 80 default; rewrite ^(.*) http://www.5ilinux.com; }]]></description>
			<content:encoded><![CDATA[<p>设置<strong>nginx</strong>默认虚拟主机（空主机头，默认主机头）</p>
<p><strong>nginx</strong>的默认虚拟主机在用户通过IP访问，或者通过未设置的域名访问（比如有人把他自己的域名指向了你的ip）的时候生效</p>
<p>最关键的一点事，在server的设置里面添加这一行：<br />
listen 80 default;<br />
后面的<strong>default</strong>参数表示这个是默认虚拟主机。</p>
<p>这个设置非常有用。<br />
比如别人通过ip或者未知域名访问你的网站的时候，你希望禁止显示任何有效内容，可以给他返回500.<br />
目前国内很多机房都要求网站主关闭空主机头，防止未备案的域名指向过来造成麻烦。就可以这样设置：<br />
server {<br />
listen 80 default;<br />
return 500;<br />
}</p>
<p>也可以把这些流量收集起来，导入到自己的网站，只要做以下跳转设置就可以：<br />
server {<br />
listen 80 default;<br />
rewrite ^(.*) http://www.5ilinux.com;<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/nginx_default.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian5 Lenny 升级源遇到404错误解决</title>
		<link>http://www.5ilinux.com/2012/04/debian_lenny_update_404.html</link>
		<comments>http://www.5ilinux.com/2012/04/debian_lenny_update_404.html#comments</comments>
		<pubDate>Sat, 21 Apr 2012 23:44:46 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[lenny]]></category>
		<category><![CDATA[sources]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=439</guid>
		<description><![CDATA[不知道从2012年2月份什么时候开始，我的linode的vps上的debian5 就不能正常更新，老提示404错误，一开始以为是服务器暂时不能访问，后来才知道原来服务器把更新源更换地址了，意思是告诉你，该升级到debian Squeeze了。由于是生产机，暂时无法升级到Squeeze，不过也是计划中了 先解决404错误再说，大家修改源文件就行 vi /etc/apt/sources.list 修改为: deb http://archive.debian.org/debian-archive/debian lenny main contrib non-free deb http://archive.debian.org/debian-archive/debian-security lenny/updates main contrib non-free deb http://archive.debian.org/debian-archive/debian-volatile lenny/volatile main contrib non-free 虽然能更新了，但更新的内容几乎很少，看来是该计划升级到debian6 Squeeze]]></description>
			<content:encoded><![CDATA[<p>不知道从2012年2月份什么时候开始，我的linode的vps上的debian5 就不能正常更新，老提示404错误，一开始以为是服务器暂时不能访问，后来才知道原来服务器把更新源更换地址了，意思是告诉你，该升级到debian Squeeze了。由于是生产机，暂时无法升级到Squeeze，不过也是计划中了</p>
<p>先解决404错误再说，大家修改源文件就行</p>
<p>vi /etc/apt/sources.list</p>
<p>修改为:</p>
<p>deb http://archive.debian.org/debian-archive/debian lenny main contrib non-free<br />
deb http://archive.debian.org/debian-archive/debian-security lenny/updates main contrib non-free<br />
deb http://archive.debian.org/debian-archive/debian-volatile lenny/volatile main contrib non-free</p>
<p>虽然能更新了，但更新的内容几乎很少，看来是该计划升级到debian6 Squeeze</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/debian_lenny_update_404.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux 服务器根据CPU负载及内存占用自动重启服务脚本</title>
		<link>http://www.5ilinux.com/2012/04/linux_auto_reboot.html</link>
		<comments>http://www.5ilinux.com/2012/04/linux_auto_reboot.html#comments</comments>
		<pubDate>Wed, 18 Apr 2012 05:33:00 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[负载]]></category>
		<category><![CDATA[重启]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=436</guid>
		<description><![CDATA[最近发现我的vps服务器经常无故cpu负载超过2，甚至达到4，影响网站访问，具体原因可能是php5-cgi的问题，但深层次的原因还没找到，为了让服务器能稳定运行，所以做个脚本能自动检测系统负载，但复杂很高的时候，自动重启有问题的程序 主要用于监控 linux 服务器负载及内存占用，如 MySQl、php-fpm，当负载或内存占用达到设置值后，便自动重启该进程以避免宕机。 # 设置最大内存占用百分比 PID_MEM_MAX=”85&#8243; # 设置最大系统负载 SYS_LOAD_MAX=”1&#8243; # 设置需要监控的服务名称 NAME_LIST=”php5-cgi mysql” for NAME in $NAME_LIST do # 初始化内存统计 PID_MEM_SUM=0 # 获取该程序总进程数 PID_NUM_SUM=`ps aux &#124; grep $NAME &#124; wc -l` # 列出每个进程内存占用百分比 PID_MEM_LIST=`ps aux &#124; grep $NAME &#124; awk &#8216;{print $4}&#8217;` # 计算所有进程总内存占用 for PID_MEM in $PID_MEM_LIST do PID_MEM_SUM=`echo $PID_MEM_SUM + $PID_MEM [...]]]></description>
			<content:encoded><![CDATA[<p>最近发现我的vps服务器经常无故cpu负载超过2，甚至达到4，影响网站访问，具体原因可能是php5-cgi的问题，但深层次的原因还没找到，为了让服务器能稳定运行，所以做个脚本能自动检测系统负载，但复杂很高的时候，自动重启有问题的程序<br />
主要用于监控 linux 服务器负载及内存占用，如 MySQl、php-fpm，当负载或内存占用达到设置值后，便自动重启该进程以避免宕机。</p>
<p># 设置最大内存占用百分比<br />
PID_MEM_MAX=”85&#8243;</p>
<p># 设置最大系统负载<br />
SYS_LOAD_MAX=”1&#8243;</p>
<p># 设置需要监控的服务名称<br />
NAME_LIST=”php5-cgi mysql”</p>
<p>for NAME in $NAME_LIST<br />
do<br />
# 初始化内存统计<br />
PID_MEM_SUM=0</p>
<p># 获取该程序总进程数<br />
PID_NUM_SUM=`ps aux | grep $NAME | wc -l`</p>
<p># 列出每个进程内存占用百分比<br />
PID_MEM_LIST=`ps aux | grep $NAME | awk &#8216;{print $4}&#8217;`</p>
<p># 计算所有进程总内存占用<br />
for PID_MEM in $PID_MEM_LIST<br />
do<br />
PID_MEM_SUM=`echo $PID_MEM_SUM + $PID_MEM | bc`<br />
done</p>
<p># 获取最近一分钟系统负载<br />
SYS_LOAD=`uptime | awk &#8216;{print $(NF-2)}&#8217; | sed &#8216;s/,//&#8217;`</p>
<p># 比较内存占用和系统负载是否超过阀值<br />
MEM_VULE=`awk &#8216;BEGIN{print(&#8216;”$PID_MEM_SUM”&#8216;&gt;=&#8217;”$PID_MEM_MAX”&#8216;?”1&#8243;:”0&#8243;)}&#8217;`<br />
LOAD_VULE=`awk &#8216;BEGIN{print(&#8216;”$SYS_LOAD”&#8216;&gt;=&#8217;”$SYS_LOAD_MAX”&#8216;?”1&#8243;:”0&#8243;)}&#8217;`</p>
<p># 如果系统内存占用和系统负载超过阀值，则进行下面操作。<br />
if [ $MEM_VULE = 1 ] || [ $LOAD_VULE = 1 ] ;then<br />
# 写入日志<br />
echo $(date +”%y-%m-%d %H:%M:%S”) “killall $NAME” “(MEM:$PID_MEM_SUM,LOAD:$SYS_LOAD)”&gt;&gt; /var/log/autoreboot.log<br />
# 正常停止服务<br />
/etc/init.d/$NAME stop<br />
sleep 3<br />
# 强制关闭<br />
pkill $NAME</p>
<p># 重启<br />
/etc/init.d/$NAME start<br />
#写入日志<br />
echo $(date +”%y-%m-%d %H:%M:%S”) “start $NAME” “(MEM:$PID_MEM_SUM,LOAD:$SYS_LOAD)” &gt;&gt; /var/log/autoreboot.log<br />
else<br />
echo “$NAME very health!(MEM:$PID_MEM_SUM,LOAD:$SYS_LOAD)” &gt; /dev/null<br />
fi<br />
done<br />
以上代码保存为一个文件，例如：auto_reboot.sh</p>
<p>添加计划任务，设置每分钟检查一次</p>
<p>crontab -e<br />
* * * * * /bin/bash/root/auto_reboot.sh</p>
<p>注意文件的位置要搞正确。</p>
<p>请确保您的Linux系统中已经安装了bc，否则会出现错误。查看是否安装了bc可以使用命令：</p>
<p>1<br />
bc -v<br />
如果没有安装，centos可以用 yum -y install bc 安装它</p>
<p>可以使用命令</p>
<p>1<br />
sh /bin/bash/root/auto_reboot.sh<br />
测试以上脚本，如果出现 syntax error near unexpected token `do 这样的错误请查看本站文章《Linux 下sh脚本执行时出现 syntax error near unexpected token `do 错误的解决方法 》一文。</p>
<p>CentOS VPS服务器根据CPU负载及内存占用自动重启的bash shell脚本：<br />
#!/bin/sh<br />
#usage: */2 * * * * root /root/checkload.sh<br />
# [CentOS]VPS服务器根据CPU负载及内存占用自动重启脚本<br />
# 设置最小剩余内存，一般至少要剩余50M可用（单位兆）<br />
FREE_MEM_MIN=”50&#8243;<br />
# 设置最大系统负载<br />
SYS_LOAD_MAX=”3&#8243;<br />
# 设置重启服务的最小剩余内存（单位兆）<br />
RESTART_FREE_MEM_MIN=”500&#8243;<br />
# 设置需要监控的服务名称<br />
NAME_LIST=”httpd mysqld”<br />
for NAME in $NAME_LIST<br />
do<br />
# 获得剩余内存（单位兆）<br />
FREE_MEM=`free -m|grep Mem|awk &#8216;{print $4}&#8217;`<br />
# 获得已用内存（单位兆）<br />
#FREE_MEM=`free -m|grep Mem|awk &#8216;{print $3}&#8217;`<br />
# 获取最近一分钟系统负载<br />
SYS_LOAD=`uptime | awk &#8216;{print $(NF-2)}&#8217; | sed &#8216;s/,//&#8217;`<br />
# 比较内存占用和系统负载是否超过阀值<br />
MEM_VULE=`awk &#8216;BEGIN{print(&#8216;”$FREE_MEM”&#8216;&lt;&#8217;”$FREE_MEM_MIN”&#8216;?”1&#8243;:”0&#8243;)}&#8217;`<br />
LOAD_VULE=`awk &#8216;BEGIN{print(&#8216;”$SYS_LOAD”&#8216;&gt;=&#8217;”$SYS_LOAD_MAX”&#8216;?”1&#8243;:”0&#8243;)}&#8217;`</p>
<p># 测试结果<br />
#LOAD_VULE=”1&#8243;<br />
#echo $(date +”%y-%m-%d %H:%M:%S”) “DEBUG $NAME” “(FREE_MEM:$FREE_MEM|$MEM_VULE,LOAD:$SYS_LOAD|$LOAD_VULE)”&gt;&gt; /var/log/autoreboot_debug.log</p>
<p># 如果系统内存占用和系统负载超过阀值，则进行下面操作。<br />
if [ $MEM_VULE = 1 ] || [ $LOAD_VULE = 1 ] ;then<br />
# 写入日志<br />
echo $(date +”%y-%m-%d %H:%M:%S”) “killall $NAME” “(FREE_MEM:$FREE_MEM,LOAD:$SYS_LOAD)”&gt;&gt; /var/log/autoreboot.log<br />
# 正常停止服务<br />
service $NAME stop<br />
sleep 3<br />
# 强制关闭<br />
skill $NAME<br />
# 重启<br />
sleep 10<br />
for i in 1 2 3<br />
do<br />
FREE_MEM=`free -m|grep Mem|awk &#8216;{print $4}&#8217;`<br />
MEM_VULE=`awk &#8216;BEGIN{print(&#8216;”$FREE_MEM”&#8216;&gt;=&#8217;”$RESTART_FREE_MEM_MIN”&#8216;?”1&#8243;:”0&#8243;)}&#8217;`<br />
if [ `pgrep $NAME | wc -l` -le 0 ] &amp;&amp; [ $MEM_VULE = 1 ]<br />
then<br />
service $NAME start<br />
sleep 15<br />
echo “AutoStart:” $(date +”%y-%m-%d %H:%M:%S”) “start $NAME” `ps -ef | grep $NAME | wc -l` &gt; /var/log/autoreboot.log<br />
fi<br />
done</p>
<p># 写入日志<br />
echo $(date +”%y-%m-%d %H:%M:%S”) “start $NAME” “(FREE_MEM:$FREE_MEM,LOAD:$SYS_LOAD)” &gt;&gt; /var/log/autoreboot.log<br />
else<br />
MEM_VULE=`awk &#8216;BEGIN{print(&#8216;”$FREE_MEM”&#8216;&gt;=&#8217;”$RESTART_FREE_MEM_MIN”&#8216;?”1&#8243;:”0&#8243;)}&#8217;`<br />
if [ `pgrep $NAME | wc -l` -le 0 ] &amp;&amp; [ $MEM_VULE = 1 ]<br />
then<br />
service $NAME start<br />
sleep 15<br />
echo “AutoStart:” $(date +”%y-%m-%d %H:%M:%S”) “start $NAME” `ps -ef | grep $NAME | wc -l` &gt; /var/log/autoreboot.log<br />
else<br />
echo “$NAME very health!(FREE_MEM:$FREE_MEM,LOAD:$SYS_LOAD)” &gt; /dev/null<br />
fi<br />
fi<br />
done</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/04/linux_auto_reboot.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>抢了个buyvm</title>
		<link>http://www.5ilinux.com/2012/03/buyvm.html</link>
		<comments>http://www.5ilinux.com/2012/03/buyvm.html#comments</comments>
		<pubDate>Mon, 26 Mar 2012 00:49:29 +0000</pubDate>
		<dc:creator>zhangweibo</dc:creator>
				<category><![CDATA[vps]]></category>
		<category><![CDATA[buyvm]]></category>

		<guid isPermaLink="false">http://www.5ilinux.com/?p=432</guid>
		<description><![CDATA[一直说buyvm的口碑还行，性价比很好，但一直没货，终于等到要放货的消息，时间锁定在3月23日晚上10点，可惜我9点上去的时候，已经发现buyvm被ddos攻击，网站根本没法访问，真是树大招风，上twrite和IRC也证实了这事，特逗的是IRC上到处都是国人站长，都快被我们中国人占领了，哈哈 攻击一直在持续，直到11点，还没放货的任何消息，我也觉得希望不大，就洗洗睡了 凌晨4点左右，恍惚听到一个短信声音，迷迷糊糊看一下，发现居然是我的自动脚本提示我buyvm放货了，这才想起几个月前做了自动脚本，只要侦测到库存有货就发短信给我，我怎么把这事给忘了，哈 赶紧起床，可惜我的笔记本不争气，太老了，都陪伴我6年了，启动了将近5分钟 咳，还是错过了15$的那款，估计就差那么几分钟，看看256M的还有，赶紧下手，幸亏前几天我已经通过了帐号验证，购物很顺利，对了，buyvm结算都是按按月来的，所以24日下单，多出的几天就折算出美金，第一次一起算了，以后都是每月1日结帐。 &#160; 下单完成，pp付款，一气呵成。 上午大概10点的时候，服务器就激活了，客服速度还行，离我付款就间隔了4小时]]></description>
			<content:encoded><![CDATA[<p>一直说buyvm的口碑还行，性价比很好，但一直没货，终于等到要放货的消息，时间锁定在3月23日晚上10点，可惜我9点上去的时候，已经发现buyvm被ddos攻击，网站根本没法访问，真是树大招风，上twrite和IRC也证实了这事，特逗的是IRC上到处都是国人站长，都快被我们中国人占领了，哈哈</p>
<p>攻击一直在持续，直到11点，还没放货的任何消息，我也觉得希望不大，就洗洗睡了</p>
<p>凌晨4点左右，恍惚听到一个短信声音，迷迷糊糊看一下，发现居然是我的自动脚本提示我buyvm放货了，这才想起几个月前做了自动脚本，只要侦测到库存有货就发短信给我，我怎么把这事给忘了，哈</p>
<p>赶紧起床，可惜我的笔记本不争气，太老了，都陪伴我6年了，启动了将近5分钟</p>
<p>咳，还是错过了15$的那款，估计就差那么几分钟，看看256M的还有，赶紧下手，幸亏前几天我已经通过了帐号验证，购物很顺利，对了，buyvm结算都是按按月来的，所以24日下单，多出的几天就折算出美金，第一次一起算了，以后都是每月1日结帐。</p>
<p>&nbsp;</p>
<p>下单完成，pp付款，一气呵成。</p>
<p>上午大概10点的时候，服务器就激活了，客服速度还行，离我付款就间隔了4小时</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ilinux.com/2012/03/buyvm.html/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

