<?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>GzV8.com &#187; Linux &amp; Unix</title>
	<atom:link href="http://www.gzv8.com/archives/category/linux-unix/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gzv8.com</link>
	<description>互联网引擎</description>
	<lastBuildDate>Thu, 06 Jan 2011 04:08:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>怎么设置linux时区</title>
		<link>http://www.gzv8.com/archives/375</link>
		<comments>http://www.gzv8.com/archives/375#comments</comments>
		<pubDate>Thu, 06 Jan 2011 04:05:35 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=375</guid>
		<description><![CDATA[Local vs. UTC
首先重要的问题是你使用utc还是local time.
UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)
Local time 是你手表上的时间
传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式
linux可以处理UTC时间和蹩脚的Windows所使用的local time
到底是使用UTC还是local time可以这样来确定：
如果机器上同时安装有Linux和Windows，建议使用local time
如果机器上只安装有Linux，建议使用utc
确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT)
确定timezone
运行tzselect,回答问题后会告诉你时区的名称，比如&#8221;Asia/Shanghai&#8221;,把他记下来(后面我用$timezone代替)
设定timezone
# cp /usr/share/zoneinfo/$timezone /etc/localtime
重新启动或者运行时钟设置脚本使之发生作用
版本差异
由于发行版的差异，以上文件位置可能不同。
一般设置时钟所使用的启动脚本为/etc/rc.d/init.d/setclock
redhat是在/etc/rc.d/rc.sysinit中设置时钟，所以一般要重新启动
]]></description>
			<content:encoded><![CDATA[<p>Local vs. UTC<br />
首先重要的问题是你使用utc还是local time.<br />
UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)<br />
Local time 是你手表上的时间</p>
<p>传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式<br />
linux可以处理UTC时间和蹩脚的Windows所使用的local time</p>
<p>到底是使用UTC还是local time可以这样来确定：<br />
如果机器上同时安装有Linux和Windows，建议使用local time<br />
如果机器上只安装有Linux，建议使用utc<br />
确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT)</p>
<p>确定timezone<br />
运行tzselect,回答问题后会告诉你时区的名称，比如&#8221;Asia/Shanghai&#8221;,把他记下来(后面我用$timezone代替)</p>
<p>设定timezone<br />
# cp /usr/share/zoneinfo/$timezone /etc/localtime</p>
<p>重新启动或者运行时钟设置脚本使之发生作用</p>
<p>版本差异<br />
由于发行版的差异，以上文件位置可能不同。<br />
一般设置时钟所使用的启动脚本为/etc/rc.d/init.d/setclock<br />
redhat是在/etc/rc.d/rc.sysinit中设置时钟，所以一般要重新启动</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/375/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CST 时区问题</title>
		<link>http://www.gzv8.com/archives/373</link>
		<comments>http://www.gzv8.com/archives/373#comments</comments>
		<pubDate>Thu, 06 Jan 2011 04:04:55 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=373</guid>
		<description><![CDATA[在很多unix下用date命令都能看到当前的时区。很多unix下中国时区都是用CST表示的。但是这个表示方法非常不合理。因为CST同时代表了下面4个时区。
CST Central Standard Time (USA) UT-6:00
CST Central Standard Time (Australia) UT+9:30
CST China Standard Time UT+8:00
CST Cuba Standard Time UT-4:00
在unix下通过/etc/localtime这个硬连接指向的/usr/share/zoneinfo下的时区文件表示当前的真正时区。比如 /etc/localtime指向了/usr/share/zoneinfo/Asia/Shanghai这个文件的时候，CST就代表了中国标准时间。
但是很多语言的时间函数库根本不做这个判断，往往就是用一个独立的时区配置文件做时区关键字和GMT的转换。因此很多系统里面CST都变成了GMT-6，也就是美国中部时间。
在zope里面也是如此。而且很奇怪的是有的地方做了正确的判断，有的地方没做正确判断。
比如文件的最后修改时间就是错的，但是如果对一个页面做comment的时候，comment时间就是正确的。
修改Zope中DateTime\DateTime.py的定义为：&#8217;cst&#8217;:'GMT+8&#8242;，就能够解决这个问题。
但是这样做就需要改代码，然后重新编译。
我试着在zope的启动脚本里面加上TZ的环境变量设置，但是没有效果。我想，最根本的解决方法应该是改变unix服务器的时区设置方法吧。
]]></description>
			<content:encoded><![CDATA[<p>在很多unix下用date命令都能看到当前的时区。很多unix下中国时区都是用CST表示的。但是这个表示方法非常不合理。因为CST同时代表了下面4个时区。</p>
<p>CST Central Standard Time (USA) UT-6:00<br />
CST Central Standard Time (Australia) UT+9:30<br />
CST China Standard Time UT+8:00<br />
CST Cuba Standard Time UT-4:00</p>
<p>在unix下通过/etc/localtime这个硬连接指向的/usr/share/zoneinfo下的时区文件表示当前的真正时区。比如 /etc/localtime指向了/usr/share/zoneinfo/Asia/Shanghai这个文件的时候，CST就代表了中国标准时间。</p>
<p>但是很多语言的时间函数库根本不做这个判断，往往就是用一个独立的时区配置文件做时区关键字和GMT的转换。因此很多系统里面CST都变成了GMT-6，也就是美国中部时间。</p>
<p>在zope里面也是如此。而且很奇怪的是有的地方做了正确的判断，有的地方没做正确判断。</p>
<p>比如文件的最后修改时间就是错的，但是如果对一个页面做comment的时候，comment时间就是正确的。</p>
<p>修改Zope中DateTime\DateTime.py的定义为：&#8217;cst&#8217;:'GMT+8&#8242;，就能够解决这个问题。</p>
<p>但是这样做就需要改代码，然后重新编译。</p>
<p>我试着在zope的启动脚本里面加上TZ的环境变量设置，但是没有效果。我想，最根本的解决方法应该是改变unix服务器的时区设置方法吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/373/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的服务器攻击别人了！！ (已解决，把肉鸡抓住了！)</title>
		<link>http://www.gzv8.com/archives/370</link>
		<comments>http://www.gzv8.com/archives/370#comments</comments>
		<pubDate>Thu, 06 Jan 2011 04:02:39 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=370</guid>
		<description><![CDATA[在星期五的时候，上着上着，突然页面打开相当慢。
原本以为是网络问题，没大留意。但频繁出现数次，还居然一直持续。
在Cacti中查看，网卡占用居然达到机房百兆宽带的所有，12m/s
查看网卡的实时流量，得到了相同结果。
而且 CPU 也有点不正常，用 Top 命令查看，占用最高的是 Httpd 进程。即 Apache
原以为是受到了页面攻击，但这样在进程里头出现的，还应该有 Nginx 跟 Mysql 才对。
不会就这么孤独地只有 Apache。
正在我继续查找原因，攻击停下来了，网卡流量恢复正常。
查看了所有的 WEB 访问日志，无一是有能够解释到该现状的记录。
因为如果是 页面攻击，就好比是压力测试般，肯定会有某个或几个地址有重复不断的垃圾请求。
但日志上显示得相当悠然。
好了，没过多久，流量又来了！httpd 进程把 2个 cpu核心占用到 100%
网卡冲到 12m/s
使用网络命令 netstat -ant 查看，没有 DDOS 之类攻击所产生的 wait 。
而且链接IP还越来越少，这时候从本地 Ping 服务器的响应基本上是 timeout 了
一但把 Apache 停下来，流量就会消失。再次启动！没过多久又会再来。
为了知道到底是哪个 IP 令我产生这样的事，我安装了既时流量检测工具 iftop
iftop介绍详见：http://www.oschina.net/p/iftop
经检测，传输量最大的 IP 是 60.219.100.3 这个IP，直接访问能打开到网站。
使用 IPtables 命令禁止该IP访问本机！！无效，流量继续！
哟？？？？！！ 再次使用 IPtables 命令禁止本机访问该IP ！！！这下流量终于停了。
哟！！这事情就明白多了，绝对能断点我的服务器成为了肉鸡，受到操控对特定目标进行了攻击。
而进行攻击的木马，不是啥米东西，而是 PHP 程序！
应该是在服务器里头某个虚拟主机网站有漏洞，被放入了 PHP DDOS 攻击木马！
然而，剩下的问题就更加复杂了，如何在海量文件的目录里头找到那个木马？
希望是有一个杀毒程序能帮我扫描到&#8230;.但我还没能找到这个，如果网友们有的不妨推荐推荐。
我的思路是，开启 Apache 的 Server [...]]]></description>
			<content:encoded><![CDATA[<p>在星期五的时候，上着上着，突然页面打开相当慢。</p>
<p>原本以为是网络问题，没大留意。但频繁出现数次，还居然一直持续。</p>
<p>在Cacti中查看，网卡占用居然达到机房百兆宽带的所有，12m/s</p>
<p>查看网卡的实时流量，得到了相同结果。</p>
<p>而且 CPU 也有点不正常，用 Top 命令查看，占用最高的是 Httpd 进程。即 Apache</p>
<p>原以为是受到了页面攻击，但这样在进程里头出现的，还应该有 Nginx 跟 Mysql 才对。</p>
<p>不会就这么孤独地只有 Apache。</p>
<p>正在我继续查找原因，攻击停下来了，网卡流量恢复正常。</p>
<p>查看了所有的 WEB 访问日志，无一是有能够解释到该现状的记录。</p>
<p>因为如果是 页面攻击，就好比是压力测试般，肯定会有某个或几个地址有重复不断的垃圾请求。</p>
<p>但日志上显示得相当悠然。</p>
<p>好了，没过多久，流量又来了！httpd 进程把 2个 cpu核心占用到 100%</p>
<p>网卡冲到 12m/s</p>
<p>使用网络命令 netstat -ant 查看，没有 DDOS 之类攻击所产生的 wait 。</p>
<p>而且链接IP还越来越少，这时候从本地 Ping 服务器的响应基本上是 timeout 了</p>
<p>一但把 Apache 停下来，流量就会消失。再次启动！没过多久又会再来。</p>
<p>为了知道到底是哪个 IP 令我产生这样的事，我安装了既时流量检测工具 iftop</p>
<p>iftop介绍详见：<a href="http://www.oschina.net/p/iftop">http://www.oschina.net/p/iftop</a></p>
<p>经检测，传输量最大的 IP 是 60.219.100.3 这个IP，直接访问能打开到网站。</p>
<p>使用 IPtables 命令禁止该IP访问本机！！无效，流量继续！</p>
<p>哟？？？？！！ 再次使用 IPtables 命令禁止本机访问该IP ！！！这下流量终于停了。</p>
<p>哟！！这事情就明白多了，绝对能断点我的服务器成为了肉鸡，受到操控对特定目标进行了攻击。</p>
<p>而进行攻击的木马，不是啥米东西，而是 PHP 程序！</p>
<p>应该是在服务器里头某个虚拟主机网站有漏洞，被放入了 PHP DDOS 攻击木马！</p>
<p>然而，剩下的问题就更加复杂了，如何在海量文件的目录里头找到那个木马？</p>
<p>希望是有一个杀毒程序能帮我扫描到&#8230;.但我还没能找到这个，如果网友们有的不妨推荐推荐。</p>
<p>我的思路是，开启 Apache 的 Server Status。 这家伙能实时查看到 Apache 正在执行那个程序。</p>
<p>而且详细到执行时间，输出数据量等等&#8230;</p>
<p>详细可见：<a href="http://www.oschina.net/bbs/thread/12650">http://www.oschina.net/bbs/thread/12650</a></p>
<p>好了！这下我就可以坐着等兔子再次跑上门来！</p>
<p>还有一个方法，就是把 PHP safe_mod 打开，能禁用掉一些例如 调用 系统 Shell 参数的语法。</p>
<p>来导致木马无法执行。可以我倒还真想把这兔子抓住，所以现在在等待中&#8230;</p>
<p>####################</p>
<p>2010-11-9 更新</p>
<p>####################</p>
<p>PHP safe_mod 不能随意打开！期中一个副作用就是导致 Cacti 无法调用 rrdtools 等参数。</p>
<p>就算设置了例外目录也无效！</p>
<p>最后我在 Apache，PHP 上都配置了 php_admin_value open_basedir 选项。</p>
<p>使得虚拟主机的用户无法越权访问到所属目录外的文件，当然也包括 shell 命令了。</p>
<p>但无效，黑客依然能利用暗藏在目录里头的肉鸡程序发动攻击。</p>
<p>虽然攻击事件在凌晨或者早上！！虽然我没在电脑旁！！</p>
<p>但我使用了 curl 对 ApacheStatus 页面的定时抓取作为了日志！！</p>
<p>与 Cacti 配合，一发现高流量！就追索该时间的日志！！</p>
<p>哈哈！这下子被逮个正着！！！！！</p>
<p>以下是 ApacheStatus 的截图，Req 项特别高的！就是 PHP肉鸡程序送发送的  UDP 攻击数据包。</p>
<p><a href="http://www.oschina.net/uploads/bbs/2010/1109/175859_xwAY_17.jpg" target="_blank"><img src="http://www.oschina.net/uploads/bbs/2010/1109/175859_xwAY_17.jpg" alt="" /></a></p>
<p>在此也顺便公布攻击来源，辽宁省盘锦市 联通 119.115.80.102 但也有可能是一台跳板肉鸡。</p>
<p>至此，我服务器上存在漏洞的网站被暂时关闭了，经查看文件修改日期，黑客还放了不少后门程序。</p>
<p>看了得好好清除清除才能再次上线了。</p>
<p>而抓到的肉鸡！用 VI 打开，居然是使用 Zend 加密的！！</p>
<p>有没朋友对加密这东西有办法解决的，短信我，我给你发去研究研究。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/370/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iftop 安装以及相关参数及说明</title>
		<link>http://www.gzv8.com/archives/359</link>
		<comments>http://www.gzv8.com/archives/359#comments</comments>
		<pubDate>Thu, 06 Jan 2011 03:56:09 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[Network]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=359</guid>
		<description><![CDATA[关于 Iftop
iftop 是类似于top的实时流量监控工具。主要用来显示本机网络流量情况及各相互通信的流量集合，如单独同那台机器间的流量大小，非常适合于代理服务器和iptables服务器使用
官方网站：http://www.ex-parrot.com/~pdw/iftop/
安装iftop
安装方法1、编译安装

如果采用编译安装可以到iftop官网下载最新的源码包。
安装前需要已经安装好基本的编译所需的环境，比如make、gcc、autoconf等。安装iftop还需要安装libpcap和libcurses。
CentOS上安装所需依赖包：
yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel
Debian上安装所需依赖包：
apt-get install flex byacc  libpcap0.8 libncurses5
下载iftop
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make &#38;&#38; make install
configure: error: can&#8217;t find pcap.h
You&#8217;re not going to get very far without libpcap.
那你需要先安装libpcap，找到相应的rpm文件，比如：
-rw-r&#8211;r&#8211; 1 root root  108987 Apr  3 08:21 libpcap-0.9.4-8.1.i386.rpm
-rw-r&#8211;r&#8211; 1 root root  119062 Apr  3 08:21 libpcap-devel-0.9.4-8.1.i386.rpm
安装方法2：(懒人办法，最简单)
直接省略上面的步骤
flibpcap-0.9.4-14.el5.x86_64.rpm
CentOS系统：
yum install flex byacc  libpcap ncurses ncurses-devel
wget ftp://fr2.rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/iftop-0.17-1.el5.rf.i386.rpm
rpm [...]]]></description>
			<content:encoded><![CDATA[<p>关于 Iftop</p>
<p>iftop 是类似于top的实时流量监控工具。主要用来显示本机网络流量情况及各相互通信的流量集合，如单独同那台机器间的流量大小，非常适合于代理服务器和iptables服务器使用</p>
<p>官方网站：<a href="http://www.ex-parrot.com/~pdw/iftop/">http://www.ex-parrot.com/~pdw/iftop/</a></p>
<p><strong>安装iftop</strong><br />
<strong>安装方法1、编译安装<br />
</strong><br />
如果采用编译安装可以到iftop官网下载最新的源码包。</p>
<p>安装前需要已经安装好基本的编译所需的环境，比如make、gcc、autoconf等。安装iftop还需要安装libpcap和libcurses。</p>
<p>CentOS上安装所需依赖包：</p>
<p>yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel</p>
<p>Debian上安装所需依赖包：</p>
<p>apt-get install flex byacc  libpcap0.8 libncurses5</p>
<p>下载iftop</p>
<p>wget <a href="http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz">http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz</a></p>
<p>tar zxvf iftop-0.17.tar.gz</p>
<p>cd iftop-0.17</p>
<p>./configure</p>
<p>make &amp;&amp; make install</p>
<p>configure: error: can&#8217;t find pcap.h<br />
You&#8217;re not going to get very far without libpcap.<br />
那你需要先安装libpcap，找到相应的rpm文件，比如：</p>
<p>-rw-r&#8211;r&#8211; 1 root root  108987 Apr  3 08:21 libpcap-0.9.4-8.1.i386.rpm<br />
-rw-r&#8211;r&#8211; 1 root root  119062 Apr  3 08:21 libpcap-devel-0.9.4-8.1.i386.rpm</p>
<p><strong>安装方法2：(懒人办法，最简单)</strong><br />
直接省略上面的步骤<br />
flibpcap-0.9.4-14.el5.x86_64.rpm<br />
CentOS系统：</p>
<p>yum install flex byacc  libpcap ncurses ncurses-devel</p>
<p>wget <a href="ftp://fr2.rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/iftop-0.17-1.el5.rf.i386.rpm">ftp://fr2.rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/iftop-0.17-1.el5.rf.i386.rpm</a></p>
<p>rpm -ivh iftop-0.17-1.el5.rf.i386.rpm</p>
<p>Debian系统 运行：apt-get install iftop</p>
<p><strong>运行iftop</strong><br />
直接运行： iftop</p>
<p><strong>1、iftop界面相关说明</strong><br />
界面上面显示的是类似刻度尺的刻度范围，为显示流量图形的长条作标尺用的。</p>
<p>中间的&lt;= =&gt;这两个左右箭头，表示的是流量的方向。</p>
<p>TX：发送流量<br />
RX：接收流量<br />
TOTAL：总流量<br />
Cumm：运行iftop到目前时间的总流量<br />
peak：流量峰值<br />
rates：分别表示过去 2s 10s 40s 的平均流量</p>
<p><strong>2、iftop相关参数</strong><br />
常用的参数<br />
-i设定监测的网卡，如：# iftop -i eth1</p>
<p>-B 以bytes为单位显示流量(默认是bits)，如：# iftop -B</p>
<p>-n使host信息默认直接都显示IP，如：# iftop -n</p>
<p>-N使端口信息默认直接都显示端口号，如: # iftop -N</p>
<p>-F显示特定网段的进出流量，如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0</p>
<p>-h（display this message），帮助，显示参数信息</p>
<p>-p使用这个参数后，中间的列表显示的本地主机信息，出现了本机以外的IP信息;</p>
<p>-b使流量图形条默认就显示;</p>
<p>-f这个暂时还不太会用，过滤计算包用的;</p>
<p>-P使host信息及端口信息默认就都显示;</p>
<p>-m设置界面最上边的刻度的最大值，刻度分五个大段显示，例：# iftop -m 100M</p>
<p><strong>进入iftop画面后的一些操作命令(注意大小写)</strong></p>
<p>按h切换是否显示帮助;</p>
<p>按n切换显示本机的IP或主机名;</p>
<p>按s切换是否显示本机的host信息;</p>
<p>按d切换是否显示远端目标主机的host信息;</p>
<p>按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;</p>
<p>按N切换显示端口号或端口服务名称;</p>
<p>按S切换是否显示本机的端口信息;</p>
<p>按D切换是否显示远端目标主机的端口信息;</p>
<p>按p切换是否显示端口信息;</p>
<p>按P切换暂停/继续显示;</p>
<p>按b切换是否显示平均流量图形条;</p>
<p>按B切换计算2秒或10秒或40秒内的平均流量;</p>
<p>按T切换是否显示每个连接的总流量;</p>
<p>按l打开屏幕过滤功能，输入要过滤的字符，比如ip,按回车后，屏幕就只显示这个IP相关的流量信息;</p>
<p>按L切换显示画面上边的刻度;刻度不同，流量图形条会有变化;</p>
<p>按j或按k可以向上或向下滚动屏幕显示的连接记录;</p>
<p>按1或2或3可以根据右侧显示的三列流量数据进行排序;</p>
<p>按&lt;根据左边的本机名或IP排序;</p>
<p>按&gt;根据远端目标主机的主机名或IP排序;</p>
<p>按o切换是否固定只显示当前的连接;</p>
<p>按f可以编辑过滤代码，这是翻译过来的说法，我还没用过这个！</p>
<p>按!可以使用shell命令，这个没用过！没搞明白啥命令在这好用呢！</p>
<p>按q退出监控。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/359/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用 Perl 检测 系统进程，实现进程意外退出重启。</title>
		<link>http://www.gzv8.com/archives/351</link>
		<comments>http://www.gzv8.com/archives/351#comments</comments>
		<pubDate>Thu, 06 Jan 2011 03:40:35 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=351</guid>
		<description><![CDATA[最近 RedHat 系统中某个关键进程不知道啥米原因，或鸭梨过大。
总是无故挂掉。
于是写了这个小脚本，自动检测指定进程。
使用 ps -ef 获取内容，if + eq 判断
如果内容为空，则重新启动进程。
本脚本存为 xxx.pl 然后用 crontab 定时执行即可。
但脚本名字别取为 跟所需进程检测相同的名字。
例如检测 mysql 进程。
别把脚本名也设为 mysql_ck.pl 这一类的名字。
因为本身该脚本在运行中，也会有相应名字的进程，会被误判为 mysql。
这样脚本就认为 mysql 依旧执行，判别出错了。
代码中 sasl 就是所检测的某个程序，按照需要修改即可。
 
#! /usr/bin/perl


$ck=`ps -ef &#124; grep &#8217;sasl&#8217; &#124; grep -v grep`;


if ($ck eq &#8221;){
print &#8220;SASL Down, Start up now\n&#8221;;
`/etc/rc.d/init.d/saslauthd start`;
}else{
print &#8220;SASL Running\n&#8221;;
}
#! /usr/bin/perl
$ck=`ps -ef &#124; grep &#8217;sasl&#8217; &#124; grep -v grep`;
 if ($ck [...]]]></description>
			<content:encoded><![CDATA[<p>最近 RedHat 系统中某个关键进程不知道啥米原因，或鸭梨过大。<br />
总是无故挂掉。<br />
于是写了这个小脚本，自动检测指定进程。<br />
使用 ps -ef 获取内容，if + eq 判断<br />
如果内容为空，则重新启动进程。<br />
本脚本存为 xxx.pl 然后用 crontab 定时执行即可。<br />
但脚本名字别取为 跟所需进程检测相同的名字。<br />
例如检测 mysql 进程。<br />
别把脚本名也设为 mysql_ck.pl 这一类的名字。<br />
因为本身该脚本在运行中，也会有相应名字的进程，会被误判为 mysql。<br />
这样脚本就认为 mysql 依旧执行，判别出错了。<br />
代码中 sasl 就是所检测的某个程序，按照需要修改即可。</p>
<p><span style="font-size: small;"><span style="line-height: normal; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"> </span></span></p>
<div id="_mcePaste"><span style="font-size: small;">#! /usr/bin/perl</span></div>
<div><span style="font-size: small;"><br />
</span></div>
<div id="_mcePaste"><span style="font-size: small;">$ck=`ps -ef | grep &#8217;sasl&#8217; | grep -v grep`;</span></div>
<div><span style="font-size: small;"><br />
</span></div>
<div id="_mcePaste"><span style="font-size: small;">if ($ck eq &#8221;){</span></div>
<div id="_mcePaste"><span style="font-size: small;">print &#8220;SASL Down, Start up now\n&#8221;;</span></div>
<div id="_mcePaste"><span style="font-size: small;">`/etc/rc.d/init.d/saslauthd start`;</span></div>
<div id="_mcePaste"><span style="font-size: small;">}else{</span></div>
<div id="_mcePaste"><span style="font-size: small;">print &#8220;SASL Running\n&#8221;;</span></div>
<div id="_mcePaste"><span style="font-size: small;">}</span></div>
<p><span style="font-size: small;">#! /usr/bin/perl</span></p>
<p><span style="font-size: small;">$ck=`ps -ef | grep &#8217;sasl&#8217; | grep -v grep`;</span></p>
<p><span style="font-size: small;"> if ($ck eq &#8221;){</span></p>
<p><span style="font-size: small;"> print &#8220;SASL Down, Start up now\n&#8221;;</span></p>
<p><span style="font-size: small;"> `/etc/rc.d/init.d/saslauthd start`;</span></p>
<p><span style="font-size: small;"><br />
}else{</span></p>
<p><span style="font-size: small;"> print &#8220;SASL Running\n&#8221;; </span></p>
<p><span style="font-size: small;">}</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/351/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>修改linux swap空间的swappiness，降低对硬盘的缓存</title>
		<link>http://www.gzv8.com/archives/343</link>
		<comments>http://www.gzv8.com/archives/343#comments</comments>
		<pubDate>Thu, 19 Aug 2010 11:16:41 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=343</guid>
		<description><![CDATA[linux 会使用硬盘的一部分做为SWAP分区，用来进行进程调度&#8211;进程是正在运行的程序&#8211;把当前不用的进程调成‘等待（standby）‘，甚至‘睡眠（sleep）’，一旦要用，再调成‘活动（active）’，睡眠的进程就躺到SWAP分区睡大觉，把内存空出来让给‘活动’的进程。
　　如果内存够大，应当告诉 linux 不必太多的使用 SWAP 分区， 可以通过修改 swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存，然后才是 swap空间，swappiness＝100的时候表示积极的使用swap分区，并且把内存上的数据及时的搬运到swap空间里面。
1.查看你的系统里面的swappiness
$ cat /proc/sys/vm/swappiness
不出意外的话，你应该看到是 60
2.修改swappiness值为10
$ sudo sysctl vm.swappiness=10
但是这只是临时性的修改，在你重启系统后会恢复默认的60，为长治久安，还要更进一步：
echo 10 &#62; /proc/sys/vm/swappiness
]]></description>
			<content:encoded><![CDATA[<p>linux 会使用硬盘的一部分做为SWAP分区，用来进行进程调度&#8211;进程是正在运行的程序&#8211;把当前不用的进程调成‘等待（standby）‘，甚至‘睡眠（sleep）’，一旦要用，再调成‘活动（active）’，睡眠的进程就躺到SWAP分区睡大觉，把内存空出来让给‘活动’的进程。<br />
　　如果内存够大，应当告诉 linux 不必太多的使用 SWAP 分区， 可以通过修改 swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存，然后才是 swap空间，swappiness＝100的时候表示积极的使用swap分区，并且把内存上的数据及时的搬运到swap空间里面。</p>
<p>1.查看你的系统里面的swappiness</p>
<p>$ cat /proc/sys/vm/swappiness<br />
不出意外的话，你应该看到是 60</p>
<p>2.修改swappiness值为10<br />
$ sudo sysctl vm.swappiness=10<br />
但是这只是临时性的修改，在你重启系统后会恢复默认的60，为长治久安，还要更进一步：</p>
<p>echo 10 &gt; /proc/sys/vm/swappiness</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/343/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X64 Linux 无法从本地字符界面登陆。</title>
		<link>http://www.gzv8.com/archives/323</link>
		<comments>http://www.gzv8.com/archives/323#comments</comments>
		<pubDate>Mon, 03 May 2010 04:20:55 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[无法登陆]]></category>
		<category><![CDATA[本地]]></category>
		<category><![CDATA[本机]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=323</guid>
		<description><![CDATA[经常有怪事发生。话说，我有一台负责squid的服务器，远程登陆好好的就一直由她好好地。
今天要改个网关，于是就接了个显示器在本地操作。
当输入完用户名 root  密码 ***** 回车
哟，又让我再输一次？？
好了，我再输了，还是这样！死活就账号认证的界面登陆不上。
丫的，服务器被黑了？？ 用笔记本登陆却一切正常。
查看服务器安全日志：
# tail -50 /var/log/secure
发现有以下错误：
May  2 18:45:41 server1 login: PAM unable to dlopen(/lib/security/pam_limits.so)
May  2 18:45:41 server1 login: PAM [error: /lib/security/pam_limits.so: wrong ELF class: ELFCLASS32]
May  2 18:45:41 server1 login: PAM adding faulty module: /lib/security/pam_limits.so
May  2 18:45:45 server1 login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=root
May  2 18:45:46 server1 login: FAILED [...]]]></description>
			<content:encoded><![CDATA[<p>经常有怪事发生。话说，我有一台负责squid的服务器，远程登陆好好的就一直由她好好地。<br />
今天要改个网关，于是就接了个显示器在本地操作。</p>
<p>当输入完用户名 root  密码 ***** 回车<br />
哟，又让我再输一次？？<br />
好了，我再输了，还是这样！死活就账号认证的界面登陆不上。</p>
<p>丫的，服务器被黑了？？ 用笔记本登陆却一切正常。<br />
查看服务器安全日志：</p>
<p># tail -50 /var/log/secure</p>
<p>发现有以下错误：</p>
<p>May  2 18:45:41 server1 login: PAM unable to dlopen(/lib/security/pam_limits.so)<br />
May  2 18:45:41 server1 login: PAM [error: /lib/security/pam_limits.so: wrong ELF class: ELFCLASS32]<br />
May  2 18:45:41 server1 login: PAM adding faulty module: /lib/security/pam_limits.so<br />
May  2 18:45:45 server1 login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=root<br />
May  2 18:45:46 server1 login: FAILED LOGIN 1 FROM (null) FOR root, Authentication failure<br />
May  2 18:46:05 server1 login: FAILED LOGIN 2 FROM (null) FOR root, Authentication failure<br />
May  2 18:46:15 server1 login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)<br />
May  2 18:46:15 server1 login: Module is unknown</p>
<p>由于操作系统是 RedHat As5.3 X64 之前的经验暗示我，这很有可能跟 X64 类文件的存放路径有关。<br />
于是编辑登陆配置文件：</p>
<p># vim /etc/pam.d/login</p>
<p>把最下一行<br />
session    required     /lib/security/pam_limits.so</p>
<p>修改为：<br />
session    required     /lib64/security/pam_limits.so</p>
<p>保存并退出。<br />
再试试在本地登陆，成功！日志没再报错了。<br />
但还是摸不着头脑，是我做了什么设置弄出这个问题来了&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/323/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell R710 + RedHat AS 5.4 X64 网卡驱动升级，可远程，无需重启。</title>
		<link>http://www.gzv8.com/archives/313</link>
		<comments>http://www.gzv8.com/archives/313#comments</comments>
		<pubDate>Sun, 02 May 2010 14:45:00 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[Broadcom NetXtreme II BCM 5709]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[R610]]></category>
		<category><![CDATA[R710]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=313</guid>
		<description><![CDATA[有史以来最怪的问题，如果不是友人早前的提示，我还真得还要得耗半天找原。话说他们公司 Dell R710 用的操作系统是 RedHat As5.3 X64 会在正常运行中无故断网&#8230;.
而且并没有规律，择日而断&#8230;弄了好久，还以为是机房的问题，最后无奈之下打电话给 Dell 报修。
他们的工程师立马就反应过来，这是 RedHat As5.X 版本中的Broadcom NetXtreme II BCM 5709 驱动 BUG，涉及到 ACPI 电源管理的问题。
所以当网卡在正常工作的时候，会被 ACPI 误以为他闲着，从而把它给关闭掉。
每次出现这个情况，只需要 service network restart  或者 ifdown/ifup ethX (对于被关闭的网卡端口) 就可以恢复正常。
真有够气愤的。
解决这个问题有2种方法，第一种相对简单，就是在Linux内核中禁用 ACPI 电源管理系统。
但该方法不推荐，因为会导致服务器失去智能电源调节，增加功耗。
另外一种方法就是升级网卡驱动，以下是过程：
首先当然是去 Dell 下载一份最新的 Broadcom NetXtreme II BCM 驱动。
相信只要是 使用 Broadcom NetXtreme II BCM 5709 网卡的服务器都有必要更新，例如 R710 ，R610。
[root@localhost DRIVER]# modinfo bnx2  [首先查看当前驱动版本]
filename:       /lib/modules/2.6.18-164.el5/updates/bnx2.ko
version:        1.9.3
license:        [...]]]></description>
			<content:encoded><![CDATA[<p>有史以来最怪的问题，如果不是友人早前的提示，我还真得还要得耗半天找原。话说他们公司 Dell R710 用的操作系统是 RedHat As5.3 X64 会在正常运行中无故断网&#8230;.<br />
而且并没有规律，择日而断&#8230;弄了好久，还以为是机房的问题，最后无奈之下打电话给 Dell 报修。<br />
他们的工程师立马就反应过来，这是 RedHat As5.X 版本中的Broadcom NetXtreme II BCM 5709 驱动 BUG，涉及到 ACPI 电源管理的问题。<br />
所以当网卡在正常工作的时候，会被 ACPI 误以为他闲着，从而把它给关闭掉。</p>
<p>每次出现这个情况，只需要 service network restart  或者 ifdown/ifup ethX (对于被关闭的网卡端口) 就可以恢复正常。<br />
真有够气愤的。</p>
<p>解决这个问题有2种方法，第一种相对简单，就是在Linux内核中禁用 ACPI 电源管理系统。<br />
但该方法不推荐，因为会导致服务器失去智能电源调节，增加功耗。</p>
<p>另外一种方法就是升级网卡驱动，以下是过程：</p>
<p>首先当然是去 Dell 下载一份最新的 Broadcom NetXtreme II BCM 驱动。<br />
相信只要是 使用 Broadcom NetXtreme II BCM 5709 网卡的服务器都有必要更新，例如 R710 ，R610。</p>
<p>[root@localhost DRIVER]# modinfo bnx2  [首先查看当前驱动版本]<br />
filename:       /lib/modules/2.6.18-164.el5/updates/bnx2.ko<br />
version:        1.9.3<br />
license:        GPL<br />
description:    Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver</p>
<p>[root@localhost DRIVER]# tar zxvf Bcom_LAN_14.1.5_Linux_Source_A00.tar.gz<br />
[root@localhost DRIVER]# cd Bcom_LAN_14.1.5_Linux_Source_A00/NetXtremeII/<br />
[root@localhost NetXtremeII]# rpm -ivh netxtreme2-5.0a.10-1.src.rpm<br />
   1:netxtreme2             ######################## [100%]</p>
<p>[root@localhost NetXtremeII]# cd /usr/src/redhat/<br />
[root@localhost redhat]# rpmbuild &#8211;bb SPECS/netxtreme2.spec<br />
[root@localhost redhat]# rpm -ivh RPMS/x86_64/netxtreme2-5.0a.10-1.x86_64.rpm</p>
<p>好了，驱动都安装上了，然后有2个方法让新驱动起效，一是重启服务器。<br />
如果不便重启的话，以下是第二种：</p>
<p>但过程会导致网络断开，而且没有人工干预，会无法连上。<br />
所以如果你并不在本地操作，或者你的服务器与您相隔甚远，建议三思后行。</p>
<p>[root@localhost NetXtremeII]# rmmod bnx2 卸载现有驱动[注意!!!会导致网络中断]<br />
[root@localhost NetXtremeII]# modprobe bnx2  [重新加载驱动]</p>
<p>但是，如果你非逼不得已。<br />
可以用以下小方法：</p>
<p>把以上2个命令写成一个 sh 脚本</p>
<p>[root@localhost redhat]# vim lan_dr_up.sh</p>
<p>rmmod bnx2<br />
modprobe bnx2</p>
<p>:wq</p>
<p>然后赐予可执行权限</p>
<p>[root@localhost redhat]# chmod +x lan_dr_up.sh<br />
[root@localhost redhat]# ./lan_dr_up.sh &amp;  [留意，在执行命令后方带有&amp;符号，意思是让该命令在后台执行就算ssh控制端掉线了，服务器还能自主把新的网卡驱动重新加载。]</p>
<p>好了，下边我们再次查看网卡驱动的版本号</p>
<p>[root@localhost DRIVER]# modinfo bnx2  [首先查看当前驱动版本]<br />
filename:       /lib/modules/2.6.18-164.el5/updates/bnx2.ko<br />
version:        1.9.20d<br />
license:        GPL<br />
description:    Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/313/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux怎么禁用和退出图形界面X-windows的启动？</title>
		<link>http://www.gzv8.com/archives/244</link>
		<comments>http://www.gzv8.com/archives/244#comments</comments>
		<pubDate>Thu, 11 Mar 2010 08:52:20 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Xwindows]]></category>
		<category><![CDATA[图形界面]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=244</guid>
		<description><![CDATA[ 
如要退出X-Windows ，就在 X下边 同时按 Ctrl+Alt+F2  
如果想开机吾好启动X-Windows 就~ 
好简单既姐&#8230; 
[root@server1 ~]# vi /etc/inittab 
将里边的id:5:initdefault 行中的5改为3即可。
]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>如要退出X-Windows ，就在 X下边 同时按 Ctrl+Alt+F2  </p>
<p>如果想开机吾好启动X-Windows 就~ </p>
<p>好简单既姐&#8230; </p>
<p>[root@server1 ~]# vi /etc/inittab </p>
<p>将里边的id:5:initdefault 行中的5改为3即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/244/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux 中文字体乱码修改 i18n 文件</title>
		<link>http://www.gzv8.com/archives/243</link>
		<comments>http://www.gzv8.com/archives/243#comments</comments>
		<pubDate>Thu, 11 Mar 2010 08:51:22 +0000</pubDate>
		<dc:creator>qbanke</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[乱码]]></category>
		<category><![CDATA[字体]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=243</guid>
		<description><![CDATA[ 
# cd /etc/sysconfig
# vi il8n
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-文件内容&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
LANG=&#8221;zh_CN.GB18030&#8243;
SUPPORTED=&#8221;zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030&#8243;
SYSFONT=&#8221;latarcyrheb-sun16&#8243; 
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;：qw 保存退出&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
有些编译环境，会因 GBK 而编译出错，可以尝试让系统(i18n)扩展支持多字符集解决。
LANG=&#8221;zh_CN.GB18030&#8243;
SUPPORTED=&#8221;zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030&#8243;
SYSFONT=&#8221;latarcyrheb-sun16&#8243;
]]></description>
			<content:encoded><![CDATA[<p> </p>
<p># cd /etc/sysconfig</p>
<p># vi il8n</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-文件内容&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>LANG=&#8221;zh_CN.GB18030&#8243;<br />
SUPPORTED=&#8221;zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030&#8243;<br />
SYSFONT=&#8221;latarcyrheb-sun16&#8243; </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;：qw 保存退出&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>有些编译环境，会因 GBK 而编译出错，可以尝试让系统(i18n)扩展支持多字符集解决。</p>
<p>LANG=&#8221;zh_CN.GB18030&#8243;<br />
SUPPORTED=&#8221;zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030&#8243;<br />
SYSFONT=&#8221;latarcyrheb-sun16&#8243;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/243/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

