<?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; Unix</title>
	<atom:link href="http://www.litrin.net/tag/unix/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.litrin.net</link>
	<description>It is Cool to OpenSource</description>
	<lastBuildDate>Fri, 23 Jul 2010 02:29:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=1662</generator>
		<item>
		<title>python multiprocessing的问题</title>
		<link>http://www.litrin.net/2010/06/23/python-multiprocessing%e7%9a%84%e9%97%ae%e9%a2%98/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=python-multiprocessing%25e7%259a%2584%25e9%2597%25ae%25e9%25a2%2598</link>
		<comments>http://www.litrin.net/2010/06/23/python-multiprocessing%e7%9a%84%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 09:30:55 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[硬件相关]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=1260</guid>
		<description><![CDATA[multiprocessing的是Python2.6中新加入的模块，旨在用类似threading调用tread(线程)的方式使用process(进程)。 服务器中经常需要对大规模的数据进行压缩，传统使用单进程操作不足以体现8核CPU并发的威力。于是写了一个脚本用于多进程压缩。然而在windows的主机上进行调试，全都是死循环，以至于机器都无法进行响应。导入Linux主机，测试却通过。对脚本进行了精简如下： 出错的代码： from multiprocessing import Process #from threading import Thread def work(a): print "This is : " + str(a) + '\n' exit x = 2 while(x&#62;1): p = Process(target=work, args=(x,)) p.start() x -= 1 类似的调用方法，换成threading库是正确的 #from multiprocessing import Process from threading import Thread def work(a): print "This is : " + str(a) + '\n' [...]]]></description>
			<content:encoded><![CDATA[<p>multiprocessing的是Python2.6中新加入的模块，旨在用类似threading调用tread(线程)的方式使用process(进程)。</p>
<p>服务器中经常需要对大规模的数据进行压缩，传统使用单进程操作不足以体现8核CPU并发的威力。于是写了一个脚本用于多进程压缩。然而在windows的主机上进行调试，全都是死循环，以至于机器都无法进行响应。导入Linux主机，测试却通过。对脚本进行了精简如下：</p>
<p><span id="more-1260"></span><br />
出错的代码：</p>
<pre name=code class="python">
from multiprocessing  import Process
#from threading  import Thread
def work(a):
    print "This is : " + str(a) + '\n'
    exit
x = 2
while(x&gt;1):
    p = Process(target=work, args=(x,))
    p.start()
    x -= 1</pre>
<p>类似的调用方法，换成threading库是正确的</p>
<pre name=code class="python">
#from multiprocessing  import Process
from threading  import Thread
def work(a):
    print "This is : " + str(a) + '\n'
    exit
x = 2
while(x&gt;1):
    thread = Thread(target=work, args=(x,))
    thread.start()
    x -= 1</pre>
<p>翻阅了<a rel="nofollow" target="_blank" href="http://docs.python.org/library/multiprocessing.html#windows">官方文档</a>，找到了问题所在：</p>
<p>*Nix平台对于multiprocessing 的实现是基于C库中的fork()，所有子进程与父进程的数据是完全相同，可以说是父进程的完全克隆。<br />
而对于windows，由于windows对于进程的实现方式不同，没有fork()函数，multiprocessing 的调用只能是对于该脚本的重新调用，难怪会出现死循环的问题。</p>
<p>改良后的代码：</p>
<pre name=code class="python">
from multiprocessing  import Process
#from threading  import Thread
def work(a):
    print "This is : " + str(a) + '\n'
    exit
if __name__ == '__main__' :
    x = 2
    while (x&gt;1):
        p= Process(target=work, args=(x,))
        p.start()
        x -= 1</pre>
<p>对于multiprocessing 和 Threading的区别：</p>
<p>Threading的操作只能和父进程在同一个物理CPU上执行。但由于不需要底层的调用，大多数简单的操作效率很高。<br />
multiprocessing的操作可以在多个CPU上执行，但耗费的内存资源也远高于thread方式，适合于集中运算或大并发的状态。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2010/06/23/python-multiprocessing%e7%9a%84%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>再谈谈 Oracle+Sun=?</title>
		<link>http://www.litrin.net/2010/03/31/%e5%86%8d%e8%b0%88%e8%b0%88-oraclesun/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e5%2586%258d%25e8%25b0%2588%25e8%25b0%2588-oraclesun</link>
		<comments>http://www.litrin.net/2010/03/31/%e5%86%8d%e8%b0%88%e8%b0%88-oraclesun/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 08:06:56 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[开源7788]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[业界话题]]></category>
		<category><![CDATA[服务器]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=1208</guid>
		<description><![CDATA[上次写过几篇东西，关于Oracle收购Sun的。Oracle+Sun=? , Sun的身前身后事。 如今尘埃落定，www.sun.com 也已经被重定向到了www.oracle.com 。至少局外人看来，两家公司已经合并，而且至少不是失败的。 也就是在今天，得知oracle放出消息：今后Solaris不再免费提供，下载版本只提供90天的试用。如果使用，请买授权！ 从个人角度上来说，我当然希望是提前一天庆祝了明天的节日。但事实上这并非是空穴来风。 Sun是一家技术公司，需要推广自己的产品。免费派送操作系统提升Sun硬件产品、Java，这种方式是明智的选择。但相对比较商业化一点的Oracle则认为Solaris只是一个众多产品线上其中的一环，并没有Sun之前认为的那种“中心化”地位——他们的中心是Oracle数据库。而且Oracle已经在用类似的方式进行了推广。或者至少说明Oracle认为没有必要同时免费派发这么多软件。 接下去，可能Solaris会被逐步边缘化，代码逐步合并到了Oracle Linux中——由于Linux遵循GPL，这样有可能出现Solaris和Linux的大混血。原本仅属于Sun Solaris的种种优势将会完全移植到Linux，这会Linux社区的幸运。或者出现完全相反的状况，Oracle Linux被边缘化，Solaris取代了它的地位。这样反而成为Linux的不幸，这是又一家大的商业公司的倒戈。 不管出现什么状况，最不幸的永远是opensolaris项目。要么会尾随Solaris退去光环，要么完全沦为小白鼠，一蹶不振，就如同Redhat之fedora。 那Mysql呢？后果已经“不容乐观”了，提起来伤心，不提也罢。]]></description>
			<content:encoded><![CDATA[<p>上次写过几篇东西，关于Oracle收购Sun的。<a href="http://www.litrin.net/2009/04/21/oraclesun/">Oracle+Sun=?</a> , <a href="http://www.litrin.net/2009/03/29/sun%e7%9a%84%e8%ba%ab%e5%89%8d%e8%ba%ab%e5%90%8e%e4%ba%8b/">Sun的身前身后事</a>。</p>
<p>如今尘埃落定，<a rel="nofollow" target="_blank" href="http://www.sun.com/">www.sun.com</a> 也已经被重定向到了<a rel="nofollow" target="_blank" href="http://www.oracle.com">www.oracle.com</a> 。至少局外人看来，两家公司已经合并，而且至少不是失败的。</p>
<p>也就是在今天，得知oracle放出消息：今后Solaris不再免费提供，下载版本只提供90天的试用。如果使用，请买授权！</p>
<p>从个人角度上来说，我当然希望是提前一天庆祝了明天的节日。但事实上这并非是空穴来风。</p>
<p><span id="more-1208"></span></p>
<p>Sun是一家技术公司，需要推广自己的产品。免费派送操作系统提升Sun硬件产品、Java，这种方式是明智的选择。但相对比较商业化一点的Oracle则认为Solaris只是一个众多产品线上其中的一环，并没有Sun之前认为的那种“中心化”地位——他们的中心是Oracle数据库。而且Oracle已经在用类似的方式进行了推广。或者至少说明Oracle认为没有必要同时免费派发这么多软件。</p>
<p style="text-align: center;"><a href="http://www.litrin.net/wp-content/uploads/2010/03/oracle_solaris_download_page.gif"><img class="size-medium wp-image-1209  aligncenter" title="oracle_solaris_download_page" src="http://www.litrin.net/wp-content/uploads/2010/03/oracle_solaris_download_page-300x286.gif" alt="" width="300" height="286" /></a></p>
<p>接下去，可能Solaris会被逐步边缘化，代码逐步合并到了Oracle Linux中——由于Linux遵循GPL，这样有可能出现Solaris和Linux的大混血。原本仅属于Sun Solaris的种种优势将会完全移植到Linux，这会Linux社区的幸运。或者出现完全相反的状况，Oracle Linux被边缘化，Solaris取代了它的地位。这样反而成为Linux的不幸，这是又一家大的商业公司的倒戈。</p>
<p>不管出现什么状况，最不幸的永远是opensolaris项目。要么会尾随Solaris退去光环，要么完全沦为小白鼠，一蹶不振，就如同Redhat之fedora。</p>
<p>那Mysql呢？后果已经“不容乐观”了，提起来伤心，不提也罢。</p>
<p><a href="http://www.litrin.net/wp-content/uploads/2010/03/oracle_solaris_download_page.gif"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2010/03/31/%e5%86%8d%e8%b0%88%e8%b0%88-oraclesun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris连锁故障</title>
		<link>http://www.litrin.net/2010/02/22/solaris%e8%bf%9e%e9%94%81%e6%95%85%e9%9a%9c/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=solaris%25e8%25bf%259e%25e9%2594%2581%25e6%2595%2585%25e9%259a%259c</link>
		<comments>http://www.litrin.net/2010/02/22/solaris%e8%bf%9e%e9%94%81%e6%95%85%e9%9a%9c/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 06:19:29 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[硬件相关]]></category>
		<category><![CDATA[站长的blog]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[服务器]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=1172</guid>
		<description><![CDATA[公司有一台服务器，属于经常被冷落的那种。SunV245 + solaris 10 + Oracle 10G 。自从装好机之后uptime至少有2年了。 且说这天需要重启，重启后无法通过ssh连接，通过串口终端连上之后发觉由于之前习惯于ssh key登录，一直没有root密码。郁闷中。 这台机器，一没有显卡，二没有光驱。实在让人头疼。七手八脚的把自己本本的光驱拆下来装在机器上，又发觉是自动硬盘启动的那种，无法光驱启动。 获得OK提示符 获得OK，相对比较容易，只是一般的键盘不是sun专用，没有那一堆控制键。 进入串口终端，启动机器并载入操作系统之后，在终端输入 #. 进入SC，运气不错，SC没有密码。输入break，再console回来就获得了Ok提示符。 获取root密码 进入OK后，放入solaris for sparc的盘，输入boot cdrom -s 进入修复系统。中间有一段比较漫长的等待。 进入系统后将硬盘 /dev/dsk/c1t0d0s0 挂装好之后找到硬盘上的etc/shadow。 将第一行的root:xxxxxxxxxxxx:14302:::::: 修改为root::14302:::::: 重新启动后用空密码就可以直接登系统。 SVCS问题 进入系统后，发现一大堆SVC服务无法启动，所有的问题都来自于一个关键应用 system-filesystem-local:default 无法正常启动。 tail /var/svc/log/system-filesystem-local:default.log 发觉有如下报错：WARNING: /sbin/mountall -l failed: exit status 1 不解，但既然是mount的问题，肯定和/etc/vfstab有关。打开这个文件，顿时就傻了——最后一行： /dev/dsk/c1t0d0s0       /dev/rdsk/c1t0d0s0      /       ufs     1       no &#8230;&#8230;. /dev/dsk/c1t3d0s0  /dev/rdsk/c1t3d0s0  /backup  ufs  0  yes  [...]]]></description>
			<content:encoded><![CDATA[<p>公司有一台服务器，属于经常被冷落的那种。SunV245 + solaris 10 + Oracle 10G 。自从装好机之后uptime至少有2年了。</p>
<p>且说这天需要重启，重启后无法通过ssh连接，通过串口终端连上之后发觉由于之前习惯于ssh key登录，一直没有root密码。郁闷中。</p>
<p><span id="more-1172"></span></p>
<p>这台机器，一没有显卡，二没有光驱。实在让人头疼。七手八脚的把自己本本的光驱拆下来装在机器上，又发觉是自动硬盘启动的那种，无法光驱启动。</p>
<p><strong>获得OK提示符</strong></p>
<p>获得OK，相对比较容易，只是一般的键盘不是sun专用，没有那一堆控制键。<br />
进入串口终端，启动机器并载入操作系统之后，在终端输入 #. 进入SC，运气不错，SC没有密码。输入break，再console回来就获得了Ok提示符。</p>
<p><strong>获取root密码</strong></p>
<p>进入OK后，放入solaris for sparc的盘，输入boot cdrom -s 进入修复系统。中间有一段比较漫长的等待。<br />
进入系统后将硬盘 /dev/dsk/c1t0d0s0 挂装好之后找到硬盘上的etc/shadow。<br />
将第一行的root:xxxxxxxxxxxx:14302:::::: 修改为root::14302::::::<br />
重新启动后用空密码就可以直接登系统。</p>
<p><strong>SVCS问题</strong></p>
<p>进入系统后，发现一大堆SVC服务无法启动，所有的问题都来自于一个关键应用 system-filesystem-local:default 无法正常启动。<br />
tail /var/svc/log/system-filesystem-local:default.log 发觉有如下报错：<span style="color: #ff0000;">WARNING: /sbin/mountall -l failed: exit status 1</span></p>
<p><span style="color: #000000;">不解，但既然是mount的问题，肯定和/etc/vfstab有关。打开这个文件，顿时就傻了——最后一行：<br />
</span><span style="color: #000000;">/dev/dsk/c1t0d0s0       /dev/rdsk/c1t0d0s0      /       ufs     <span style="text-decoration: underline;">1 </span>      no<br />
&#8230;&#8230;.</span><span style="color: #000000;"><br />
/dev/dsk/c1t3d0s0  /dev/rdsk/c1t3d0s0  /backup  ufs <span style="text-decoration: underline;"> 0</span>  yes  rw<br />
系统将/backup的挂装顺序设置为了0，/为1。这意味着系统默认会先挂/backup，后挂/。摆明了肯定会错。注释掉/backup这一行，问题解决！</span></p>
<p><span style="color: #000000;"><strong>分析</strong></span></p>
<p><span style="color: #000000;">问题出的无厘头。<br />
原来之前曾经对这个机器添加过硬盘，当时通过webmin直接修改的vfstab，webmin的一个bug导致了vfstab的错误。只是之前从未重启，也没暴露出来。<br />
没有root密码也是因为一直没有暴露出这个交接不清的问题。</span></p>
<p><span style="color: #000000;"><br />
<strong>Webmin BUG -&gt;硬盘挂装出错-&gt;fs关键服务不能启动-&gt;网络不启动-&gt;ssh不启动-&gt;无密码不能登入-&gt;需要OK提示符</strong></span><span style="color: #000000;">纠结~~~~</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2010/02/22/solaris%e8%bf%9e%e9%94%81%e6%95%85%e9%9a%9c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用SSH Tunnel穿越防火墙</title>
		<link>http://www.litrin.net/2010/02/09/%e7%94%a8ssh-tunnel%e7%a9%bf%e8%b6%8a%e9%98%b2%e7%81%ab%e5%a2%99/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e7%2594%25a8ssh-tunnel%25e7%25a9%25bf%25e8%25b6%258a%25e9%2598%25b2%25e7%2581%25ab%25e5%25a2%2599</link>
		<comments>http://www.litrin.net/2010/02/09/%e7%94%a8ssh-tunnel%e7%a9%bf%e8%b6%8a%e9%98%b2%e7%81%ab%e5%a2%99/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 02:17:06 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[网络和安全]]></category>
		<category><![CDATA[桌面应用]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=1164</guid>
		<description><![CDATA[这次接上篇。 很多企业对互联网的访问进行了限制，如何突破防火墙的限制成了一个问题。本文就是利用了SSH tunnel搭建了socket5代理。 首先，申请一个外网的ssh帐户，个人建议使用http://www.unix-center.net/提供的免费资源，该网站还提供多种平台主机可供测试之用，非常不错！当然，如果可以使用密钥方式登录那就完美了。 申请好账户之后，依然在本地安装ssh的客户端，windows推荐putty。 安装好后执行putty，在hostname里面输入主机名，或者用户名@主机名。我选了FreeBSD的那台，有兴趣的话还有ubuntu，Sun，甚至龙芯一系列主机可供挑选 选择ssh-&#62;tunnels，在source栏里添加你要提供的端口号，一般随便填一个未使用的端口就可，我用了8080端口。选择Dynamic，点击add。这里需要说明的是，如果你的主机允许别人使用的话，请勾选最上面的Local ports accept connection from other hosts。 点击Open确认连接，在接下来的窗口中输入用户名和密码。最小化窗口，不要关闭。 打开命令行，输入命令netstat -an，如果出现了你刚才输入的那个端口号的侦听，说明搭建成功！socket服务已经完成。 浏览器设置，IE:internet选项，连接，局域网设置，勾选“为LAN使用代理服务器”，高级，套接字选择127.0.0.1并填写端口号。完成设置。 对应的命令行： plink : plink -C -N -f -D 端口号 用户名@主机名 ssh: ssh  -C -N -f -D 端口号 用户名@主机名 PS: 话两头说，如果你负责一个企业局域网的话，稍大点的企业如果要限网，SSH端口是绝对要加以限制使用的。伟大的防火墙亦是如此。]]></description>
			<content:encoded><![CDATA[<p>这次接<a href="http://www.litrin.net/2010/02/03/%e7%94%a8ssh-tunnel%e6%89%93%e9%80%a0%e5%ae%89%e5%85%a8%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f/" target="_blank">上篇</a>。</p>
<p>很多企业对互联网的访问进行了限制，如何突破防火墙的限制成了一个问题。本文就是利用了SSH tunnel搭建了socket5代理。</p>
<p>首先，申请一个外网的ssh帐户，个人建议使用<a rel="nofollow" target="_blank" href="http://www.unix-center.net/">http://www.unix-center.net/</a>提供的免费资源，该网站还提供多种平台主机可供测试之用，非常不错！当然，如果可以使用密钥方式登录那就完美了。</p>
<p><span id="more-1164"></span></p>
<p>申请好账户之后，依然在本地安装ssh的客户端，windows推荐<a rel="nofollow" target="_blank" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">putty</a>。</p>
<p>安装好后执行putty，在hostname里面输入主机名，或者用户名@主机名。我选了FreeBSD的那台，有兴趣的话还有ubuntu，Sun，甚至龙芯一系列主机可供挑选</p>
<div id="attachment_1166" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.litrin.net/wp-content/uploads/2010/02/ssh_proxy_putty_main.png"><img class="size-medium wp-image-1166" title="ssh_proxy_putty_main" src="http://www.litrin.net/wp-content/uploads/2010/02/ssh_proxy_putty_main-300x288.png" alt="Putty 主界面" width="300" height="288" /></a><p class="wp-caption-text">Putty 主界面</p></div>
<p>选择ssh-&gt;tunnels，在source栏里添加你要提供的端口号，一般随便填一个未使用的端口就可，我用了8080端口。选择Dynamic，点击add。这里需要说明的是，如果你的主机允许别人使用的话，请勾选最上面的Local ports accept connection from other hosts。</p>
<div id="attachment_1167" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.litrin.net/wp-content/uploads/2010/02/ssh_proxy_putty_tunnel_setting.png"><img class="size-medium wp-image-1167" title="ssh_proxy_putty_tunnel_setting" src="http://www.litrin.net/wp-content/uploads/2010/02/ssh_proxy_putty_tunnel_setting-300x288.png" alt="Putty ssh tunnel界面" width="300" height="288" /></a><p class="wp-caption-text">Putty ssh tunnel界面</p></div>
<p>点击Open确认连接，在接下来的窗口中输入用户名和密码。最小化窗口，不要关闭。</p>
<p>打开命令行，输入命令netstat -an，如果出现了你刚才输入的那个端口号的侦听，说明搭建成功！socket服务已经完成。</p>
<div id="attachment_1165" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.litrin.net/wp-content/uploads/2010/02/ssh_proxy_netstat.png"><img class="size-medium wp-image-1165" title="ssh_proxy_netstat" src="http://www.litrin.net/wp-content/uploads/2010/02/ssh_proxy_netstat-300x195.png" alt="netstat -an " width="300" height="195" /></a><p class="wp-caption-text">netstat -an </p></div>
<p>浏览器设置，IE:internet选项，连接，局域网设置，勾选“为LAN使用代理服务器”，高级，套接字选择127.0.0.1并填写端口号。完成设置。</p>
<div id="attachment_1168" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.litrin.net/wp-content/uploads/2010/02/ssh_proxy_IE.png"><img class="size-medium wp-image-1168" title="ssh_proxy_IE" src="http://www.litrin.net/wp-content/uploads/2010/02/ssh_proxy_IE-300x300.png" alt="IE 设置" width="300" height="300" /></a><p class="wp-caption-text">IE 设置</p></div>
<p>对应的命令行：</p>
<ol>
<li>plink : plink -C -N -f -D 端口号 用户名@主机名</li>
<li>ssh: ssh  -C -N -f -D 端口号 用户名@主机名</li>
</ol>
<p>PS:<br />
话两头说，如果你负责一个企业局域网的话，稍大点的企业如果要限网，SSH端口是绝对要加以限制使用的。伟大的防火墙亦是如此。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2010/02/09/%e7%94%a8ssh-tunnel%e7%a9%bf%e8%b6%8a%e9%98%b2%e7%81%ab%e5%a2%99/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>用ssh tunnel打造安全邮件系统</title>
		<link>http://www.litrin.net/2010/02/03/%e7%94%a8ssh-tunnel%e6%89%93%e9%80%a0%e5%ae%89%e5%85%a8%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e7%2594%25a8ssh-tunnel%25e6%2589%2593%25e9%2580%25a0%25e5%25ae%2589%25e5%2585%25a8%25e9%2582%25ae%25e4%25bb%25b6%25e7%25b3%25bb%25e7%25bb%259f</link>
		<comments>http://www.litrin.net/2010/02/03/%e7%94%a8ssh-tunnel%e6%89%93%e9%80%a0%e5%ae%89%e5%85%a8%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 14:33:01 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[网络和安全]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[桌面应用]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=1156</guid>
		<description><![CDATA[近期，甚至于连Google这样的企业也感觉到了邮件系统的安全问题。这里采用了相对实现成本较低的方式，通过ssh的tunnel达到邮件在传输的过程中不会受到中间人攻击造成数据泄露。 故名思义，tunnel就是在邮件服务器和企业防火墙之后设置一条逻辑上的隧道。这条隧道一方面为了数据安全，另一方面，由于ssh的压缩功能也能在一定程度上减少邮件这类纯文本传输的网络需求。 先决条件： Unix like的邮件系统，并安装了ssh-server，本例中假定邮件服务器ip为1.2.3.4 企业路由器和内网：路由最好有vpn和防火墙功能。 内网的 一台主机，配置不必太高（我用了虚拟机，64M内存已经足够近百人使用），安装有ssh-client，如果是win主机，推荐使用putty的安装版本。经过测试，个人觉得FreeBSD下的性能较好。考虑到安全，这台主机尽量不要安装远程控制台并尽可能上锁。本例假定ip 192.168.1.1。 注意整个系统的安全策略，账户策略等，相比中间人攻击这样的“高级”黑客行为，破解密码，利用漏洞永远是成本最低的方法。 第一步：设置公钥方式登录： 内网主机上运行mkdir -p ~/.ssh;cd ~/.ssh;ssh-keygen –d，如果变态一点可以使用ssh-keygen -b 4096 -d增加强度，之后 不要输入任何信息，一律回车带过，很多人不能实现ssh的无验证通过，大多是因为这里没有弄好。这样~/.ssh目录下将会出现id_dsa 和id_dsa.pub两个文件。 将内网主机的id_dsa.pub文件拷贝邮件服务器，并在邮件服务器上执行cat id_dsa.pub &#62;&#62; ~/.ssh/authorized_keys 。尝试在内网主机上执行 ssh A主机的IP ，成功地话应该没有提示密码（即直接得到A主机的控制台）。 如果经常来小站做客的朋友会觉得这段很熟，没错它贴自这里，如果你用了windows作为内网主机，请参考这里的内容。 第二步：配置管道： 写个脚本 vi /usr/sbin/ssh_tunnel #!/bin/sh localIP='192.168.1.1' removteIP='1.2.3.4' ports='25 80 110' #3个端口，smtp http pop3 for port in $ports do /usr/bin/ssh -C -N -f -L $localIP:$port:$removteIP:$port root@$removteIP [...]]]></description>
			<content:encoded><![CDATA[<p>近期，甚至于连Google这样的企业也感觉到了邮件系统的安全问题。这里采用了相对实现成本较低的方式，通过ssh的tunnel达到邮件在传输的过程中不会受到中间人攻击造成数据泄露。</p>
<p>故名思义，tunnel就是在邮件服务器和企业防火墙之后设置一条逻辑上的隧道。这条隧道一方面为了数据安全，另一方面，由于ssh的压缩功能也能在一定程度上减少邮件这类纯文本传输的网络需求。</p>
<p>先决条件：</p>
<ol>
<li>Unix like的邮件系统，并安装了ssh-server，本例中假定邮件服务器ip为1.2.3.4</li>
<li>企业路由器和内网：路由最好有vpn和防火墙功能。</li>
<li>内网的 一台主机，配置不必太高（我用了虚拟机，64M内存已经足够近百人使用），安装有ssh-client，如果是win主机，推荐使用putty的安装版本。经过测试，个人觉得FreeBSD下的性能较好。考虑到安全，这台主机尽量不要安装远程控制台并尽可能上锁。本例假定ip 192.168.1.1。</li>
<li>注意整个系统的安全策略，账户策略等，相比中间人攻击这样的“高级”黑客行为，破解密码，利用漏洞永远是成本最低的方法。</li>
</ol>
<p><span id="more-1156"></span></p>
<div id="attachment_1161" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.litrin.net/wp-content/uploads/2010/02/ssh_tunnel.gif"><img class="size-medium wp-image-1161" title="ssh_tunnel" src="http://www.litrin.net/wp-content/uploads/2010/02/ssh_tunnel-300x115.gif" alt="SSH隧道实现安全mail" width="300" height="115" /></a><p class="wp-caption-text">SSH隧道实现安全Mail系统示意</p></div>
<p>第一步：设置公钥方式登录：</p>
<p>内网主机上运行mkdir -p ~/.ssh;cd ~/.ssh;<em>ssh-keygen –d，</em>如果变态一点可以使用ssh-keygen -b 4096 -d增加强度，之后<em> </em>不要输入任何信息，<strong>一律回车带过</strong>，很多人不能实现ssh的无验证通过，大多是因为这里没有弄好。这样~/.ssh目录下将会出现id_dsa 和id_dsa.pub两个文件。</p>
<p>将内网主机的id_dsa.pub文件拷贝邮件服务器，<strong>并在邮件服务器</strong><strong>上执行</strong><em>cat id_dsa.pub &gt;&gt; ~/.ssh/authorized_keys 。</em><strong>尝试在内网主机</strong><strong>上执行</strong> <em>ssh A</em><em>主机的IP </em>，成功地话应该没有提示密码（即直接得到A主机的控制台）。</p>
<p>如果经常来小站做客的朋友会觉得这段很熟，没错它贴自<a href="http://www.litrin.net/2007/09/29/%E6%90%AD%E5%BB%BA%E9%80%9A%E8%BF%87ssh%E5%8A%A0%E5%AF%86%E9%AA%8C%E8%AF%81%E7%9A%84rsync/" target="_blank">这里</a>，如果你用了windows作为内网主机，请参考<a href="http://www.litrin.net/2006/04/10/%E7%94%A8publickey%E9%AA%8C%E8%AF%81%E7%99%BB%E5%BD%95ssh%E6%9C%8D%E5%8A%A1%E5%99%A8/" target="_blank">这里的内容</a>。</p>
<p>第二步：配置管道：</p>
<div id="_mcePaste">写个脚本 vi /usr/sbin/ssh_tunnel</div>
<pre name=code class=bash>
#!/bin/sh
localIP='192.168.1.1'
removteIP='1.2.3.4'
ports='25 80 110' #3个端口，smtp http pop3
for port in $ports
do
    /usr/bin/ssh -C -N -f -L $localIP:$port:$removteIP:$port root@$removteIP  &#038;
done
chmod 755 /usr/sbin/ssh_tunnel
</pre>
<p>修改rc.local文件，在其中加入 /usr/sbin/ssh_tunnel，当然要放在exit那条之前。</p>
<p>windows不是很熟，写个笨蛋批处理吧ssh_tunnel.cmd</p>
<pre name=code class=bash>
start /min cmd /c 'C:\Program Files\PuTTY\plink.exe' -C -N -f -L 192.168.1.1:25:1.2.3.4:25 root@1.2.3.4
start /min cmd /c 'C:\Program Files\PuTTY\plink.exe' -C -N -f -L 192.168.1.1:80:1.2.3.4:80 root@1.2.3.4
start /min cmd /c 'C:\Program Files\PuTTY\plink.exe' -C -N -f -L 192.168.1.1:110:1.2.3.4:110 root@1.2.3.4
</pre>
<p>其实putty的那个plink效果完全等同于ssh，当然，win下面主要是用里面的窗口程序，大多数人不怎么用而已。win下比较烦的是每次重起后都要手工加载key，执行这个批处理。希望对win熟的朋友可以提供自动解决方法。</p>
<p>第三步：设置邮件服务器防火墙</p>
<p>通过邮件服务的防火墙关闭除25和22之外的所有端口。这样做是最安全的，但这样的后果是在企业局域网之外只能发不能收邮件。VPN是比较好的折中方案。当然，如果你的邮件系统只需要内部收发邮件（那还要什么邮件系统？），你尽可以连25号也封上。</p>
<p>第四步：设置本地邮件客户端</p>
<p>将局域网内所有邮件客户端的smtp和pop都设置为192.168.1.1即可。我这里由于用了webmail，webmail同样也通过192.168.1.1访问<br />
如果企业有自己的DNS服务器，甚至整个公司都在域管理模式之下。不妨通过本地的DNS服务器用本地IP覆盖掉外网真实IP。这样即便没有vpn，只要不封邮件服务器的110端口，在邮件客户端中设置域名，对用户来说在任何地方都是透明的。</p>
<p>总结：</p>
<ul>
<li>这种模式，从邮件服务器到企业局域网内的传输是加密透明的，外部很难窃取，如果定期为两边的ssh更换强化的秘钥，效果几乎可以达到变态的要求。据说4096位的秘钥的破解成本已经到了天文数字。</li>
<li>这种方式相对成本较低，不需要太多的投入，特别是在多个分支机构之间成本优势更加突出。本想通过smtp的tls和pop的SSL进行加密，可outlook下对没有根秘证书签名的秘钥会弹出讨厌的警告框，反而增加了用户的不安。申请根证书的签名价格也不菲。</li>
<li>由于企业的邮件系统最多的邮件往往来自于内部，这种方式可以减少差不多一半以上的互联网带宽。把带宽留给更重要的应用。</li>
<li>同理，利用此种方式可以实现其他多种安全方案，达到双宿主机或者多机虚拟的效果，进而可以为企业节约宝贵的外网IP资源。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2010/02/03/%e7%94%a8ssh-tunnel%e6%89%93%e9%80%a0%e5%ae%89%e5%85%a8%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>关于vmstat</title>
		<link>http://www.litrin.net/2009/06/04/%e5%85%b3%e4%ba%8evmstat/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e5%2585%25b3%25e4%25ba%258evmstat</link>
		<comments>http://www.litrin.net/2009/06/04/%e5%85%b3%e4%ba%8evmstat/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 09:13:52 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[硬件相关]]></category>
		<category><![CDATA[服务器]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=1023</guid>
		<description><![CDATA[上次谈了load average ，这是一个反应CPU资源利用状况的命令。现实情况下，特别是现在CPU疯狂便宜的时代，对于一个服务器往往不见得是CPU吃紧，这次就来讲讲相对反应整体状况的vmstat命令。 以本人的Freebsd为例，其余的系统类似，直接套用就Ok了。 WWW# vmstat procs      memory      page                    disks     faults         cpu r b w     avm    fre   flt  re  pi  po    fr  sr da0 pa0   in   sy   cs us sy id 0 0 0    738M   108M   957  30  38   0  1226  72   0   0 1782  983  922  2  6 92 Procs 进程 r : 在等待执行的进程，若该项经常大于CPU线程数，说明CPU吃紧。正常情况下应该很快就能恢复为0 [...]]]></description>
			<content:encoded><![CDATA[<p>上次谈了<a rel="nofollow" target="_blank" title="Permanent Link: 关于 load average" rel="bookmark" href="../2009/03/27/%e5%85%b3%e4%ba%8e-load-average/">load average </a>，这是一个反应CPU资源利用状况的命令。现实情况下，特别是现在CPU疯狂便宜的时代，对于一个服务器往往不见得是CPU吃紧，这次就来讲讲相对反应整体状况的vmstat命令。</p>
<p>以本人的Freebsd为例，其余的系统类似，直接套用就Ok了。</p>
<p>WWW# vmstat<br />
procs      memory      page                    disks     faults         cpu<br />
r b w     avm    fre   flt  re  pi  po    fr  sr da0 pa0   in   sy   cs us sy id<br />
0 0 0    738M   108M   957  30  38   0  1226  72   0   0 1782  983  922  2  6 92<span id="more-1023"></span></p>
<p><strong>Procs 进程</strong></p>
<ul>
<li>r : 在等待执行的进程，若该项经常大于CPU线程数，说明CPU吃紧。正常情况下应该很快就能恢复为0</li>
<li>b:等待io的进程数，若经常不为0，恭喜！貌似这个问题只能迂回解决了。</li>
<li>w：可以进入运行队列但被替换的进程（强占？）</li>
</ul>
<p><strong>Memory 内存</strong></p>
<ul>
<li>avm：已用内存</li>
<li>fre:可用内存</li>
</ul>
<p><strong>page （linux表示为swap）页面文件</strong></p>
<ul>
<li>re:回收的页面</li>
<li>pi:进入页面数</li>
<li>po：出页面数，如果进出页面经常性大于0，OK买内存吧。</li>
</ul>
<p><strong>disk / io 磁盘</strong></p>
<p>没有什么复杂的，每个硬盘的读写状况</p>
<p>如果该值从未等于0，且结合proc中b较大，可以判断是哪块盘的读写问题<strong><br />
</strong></p>
<p><strong>faults / system 系统</strong></p>
<ul>
<li>in:设备中断占用的资源</li>
<li>sy：系统中断</li>
<li>cs: CPU交换<strong><br />
</strong></li>
</ul>
<p><strong>cpu</strong></p>
<ul>
<li>cs:用户进程时间</li>
<li>sy:系统进程使用的时间</li>
<li>id: idleCPU空闲时间</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2009/06/04/%e5%85%b3%e4%ba%8evmstat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sun的身前身后事</title>
		<link>http://www.litrin.net/2009/03/29/sun%e7%9a%84%e8%ba%ab%e5%89%8d%e8%ba%ab%e5%90%8e%e4%ba%8b/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sun%25e7%259a%2584%25e8%25ba%25ab%25e5%2589%258d%25e8%25ba%25ab%25e5%2590%258e%25e4%25ba%258b</link>
		<comments>http://www.litrin.net/2009/03/29/sun%e7%9a%84%e8%ba%ab%e5%89%8d%e8%ba%ab%e5%90%8e%e4%ba%8b/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 07:28:36 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[开源7788]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[solaris]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=940</guid>
		<description><![CDATA[最近业界的有个传闻很引人注意，那就是IBM正在与Sun进行收购谈判。最终结果如何都是大家期待的。一代枭雄的Sun再也支撑不住，似乎大厦将倾了&#8230;&#8230; 当大家都在关注Sparc平台，Java中间件，Solaris操作系统以及一大堆应用的何去何从时，业界的另一个比较有趣的话题逐渐的浮出水面&#8211;作为Java下的应用，同时又是IBM竞争对手的Oracle和SAP是否还会继续支持Java？选择继续无疑于与虎谋皮；选择放弃Java，拜托，这么多的客户岂不是要倒戈？ 这些只是作为一些题外话，不管今后Sun怎样，不妨总结下Sun的贡献吧。 首先，在开源领域中，Sun的地位可以说是无可撼动的领头羊。目前最大的3个开源项目，分别是Sun主导的opensolaris，Sun主导的Openoffice，以及Sun主导的OpenJava。是不是感觉到了点什么？除此之外，还有Sun支持的mysql也可以说是最为常用的开源系统之一了。 系统集成上，Sun同时拥有了硬件平台，到操作系统再到桌面生产力工具和IDE。可以说目前连微软也是做不到的高度（至少MS没有自己的CPU）。唯一可以与之匹配唯独IBM这个蓝色巨人。然而一旦IBM==SUN，这又意味着什么？ Java的出现也是一大创举。过去企业要做开发，需要BS,CS,甚至于OA等多个开发团队来实现。Java的很空出世，加上Oracle和SAP的协助，对于企业平台而言，数据库之需要一个，平台只要一个，开发团队只要一个，空前的统一！ 最后，OpenSparc的标准也成为开源硬件的一大创新性尝试。 IBM方面呢？ 蓝色巨人的最大竞争对手倒下了。白捡了客户，减少了竞争对手。这世界顿时清静了。 控制了JAVA，间接的抑制了Oracle对于DB2，SAP对于Domino的市场冲击。 拿到了SPARC的研发团队，弥补了自己power平台的技术缺失。 &#8230;&#8230;&#8230;&#8230; 难道PowerPC版本的Solaris就是对于现状的预兆？ 所谓现代的经济，就是在定期和不定期的执行&#8221;破坏性创造&#8221;。输赢只在乎破坏力来自何方，来自自己，你是赢家；来自竞争对手，很遗憾，You Lose!]]></description>
			<content:encoded><![CDATA[<p>最近业界的有个传闻很引人注意，那就是IBM正在与Sun进行收购谈判。最终结果如何都是大家期待的。一代枭雄的Sun再也支撑不住，似乎大厦将倾了&#8230;&#8230;</p>
<p>当大家都在关注Sparc平台，Java中间件，Solaris操作系统以及一大堆应用的何去何从时，业界的另一个比较有趣的话题逐渐的浮出水面&#8211;作为Java下的应用，同时又是IBM竞争对手的Oracle和SAP是否还会继续支持Java？选择继续无疑于与虎谋皮；选择放弃Java，拜托，这么多的客户岂不是要倒戈？</p>
<p><span id="more-940"></span></p>
<p>这些只是作为一些题外话，不管今后Sun怎样，不妨总结下Sun的贡献吧。</p>
<p>首先，在开源领域中，Sun的地位可以说是无可撼动的领头羊。目前最大的3个开源项目，分别是Sun主导的opensolaris，Sun主导的Openoffice，以及Sun主导的OpenJava。是不是感觉到了点什么？除此之外，还有Sun支持的mysql也可以说是最为常用的开源系统之一了。</p>
<p>系统集成上，Sun同时拥有了硬件平台，到操作系统再到桌面生产力工具和IDE。可以说目前连微软也是做不到的高度（至少MS没有自己的CPU）。唯一可以与之匹配唯独IBM这个蓝色巨人。然而一旦IBM==SUN，这又意味着什么？</p>
<p>Java的出现也是一大创举。过去企业要做开发，需要BS,CS,甚至于OA等多个开发团队来实现。Java的很空出世，加上Oracle和SAP的协助，对于企业平台而言，数据库之需要一个，平台只要一个，开发团队只要一个，空前的统一！</p>
<p>最后，OpenSparc的标准也成为开源硬件的一大创新性尝试。</p>
<p>IBM方面呢？</p>
<p>蓝色巨人的最大竞争对手倒下了。白捡了客户，减少了竞争对手。这世界顿时清静了。</p>
<p>控制了JAVA，间接的抑制了Oracle对于DB2，SAP对于Domino的市场冲击。</p>
<p>拿到了SPARC的研发团队，弥补了自己power平台的技术缺失。</p>
<p>&#8230;&#8230;&#8230;&#8230;</p>
<p>难道<a href="http://www.litrin.net/2006/02/27/%e6%8b%93%e5%b1%95solaris%e7%9a%84%e4%bd%bf%e7%94%a8%e7%8e%87-sun-%e6%8a%95%e6%80%80ibm/" target="_blank">PowerPC版本的Solaris</a>就是对于现状的预兆？</p>
<p>所谓现代的经济，就是在定期和不定期的执行&#8221;破坏性创造&#8221;。输赢只在乎破坏力来自何方，来自自己，你是赢家；来自竞争对手，很遗憾，You Lose!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2009/03/29/sun%e7%9a%84%e8%ba%ab%e5%89%8d%e8%ba%ab%e5%90%8e%e4%ba%8b/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>关于 load average</title>
		<link>http://www.litrin.net/2009/03/27/%e5%85%b3%e4%ba%8e-load-average/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e5%2585%25b3%25e4%25ba%258e-load-average</link>
		<comments>http://www.litrin.net/2009/03/27/%e5%85%b3%e4%ba%8e-load-average/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 04:43:11 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[硬件相关]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=936</guid>
		<description><![CDATA[很多人都知道uptime命令会得到如下的返回： 12:00:59 up 20:24,  1 user,  load average: 0.49, 1.40, 1.61 其中的load average根的3个数字，分别表示系统在1分钟，5分钟和15分钟的平均负载情况。这个数字是系统每5秒钟会自动检测一下活跃的进程数量（即top命令看到的n running），然后得出结果。具体感兴趣的话可以研究下Linux内核中include/linux/sched.h， kernel/timer.c，fs/proc/proc_misc.c 所谓活跃的进程，需要满足： 没有被终止或者正在调用wait。 不是正在等待I/O操作。 很多网上说这个数字除上CPU的数量如果得到的结果大于5就说明系统在超负荷运转。对于这个结论本人持保留意见。 对于双核或者多核的CPU，如果按照1个CPU来计算，那么明显的状况就是对于多核心的不公。如果按照多个CPU来计算，那又是对于多路CPU，甚至是独享内存总线多CPU的不公。对于基于HT技术的“假多核”更是如此。 对于不同平台的CPU而言，目前公认的是X86架构“不耐压”，特别在于高并发的情况下。本人明显觉得SPARC的架构相比X86在压缩同一个文件的时间更长；但是同时进行多个压缩的时候Sparc的平台占有绝对优势。 与IO关系不够紧密，很多情况下，最容易制约系统的是IO，特别是现在正处在“运算不值钱，储存值钱”的时代。 超负荷的界定：有的系统，在1.5的情况下已经能够感到明显的延时；同样有的系统在10以上还能迅速响应。]]></description>
			<content:encoded><![CDATA[<p>很多人都知道uptime命令会得到如下的返回：<br />
12:00:59 up 20:24,  1 user,  load average: 0.49, 1.40, 1.61</p>
<p>其中的load average根的3个数字，分别表示系统在1分钟，5分钟和15分钟的平均负载情况。这个数字是系统每5秒钟会自动检测一下活跃的进程数量（即top命令看到的n running），然后得出结果。具体感兴趣的话可以研究下Linux内核中include/linux/sched.h， kernel/timer.c，fs/proc/proc_misc.c</p>
<p>所谓活跃的进程，需要满足：</p>
<ul>
<li>没有被终止或者正在调用wait。</li>
<li>不是正在等待I/O操作。</li>
</ul>
<p>很多网上说这个数字除上CPU的数量如果得到的结果大于5就说明系统在超负荷运转。对于这个结论本人持保留意见。</p>
<ol>
<li>对于双核或者多核的CPU，如果按照1个CPU来计算，那么明显的状况就是对于多核心的不公。如果按照多个CPU来计算，那又是对于多路CPU，甚至是独享内存总线多CPU的不公。对于基于HT技术的“假多核”更是如此。</li>
<li>对于不同平台的CPU而言，目前公认的是X86架构“不耐压”，特别在于高并发的情况下。本人明显觉得SPARC的架构相比X86在压缩同一个文件的时间更长；但是同时进行多个压缩的时候Sparc的平台占有绝对优势。</li>
<li>与IO关系不够紧密，很多情况下，最容易制约系统的是IO，特别是现在正处在“运算不值钱，储存值钱”的时代。</li>
<li>超负荷的界定：有的系统，在1.5的情况下已经能够感到明显的延时；同样有的系统在10以上还能迅速响应。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2009/03/27/%e5%85%b3%e4%ba%8e-load-average/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sun v245的硬RAID</title>
		<link>http://www.litrin.net/2008/10/21/sun-v245%e7%9a%84%e7%a1%acraid/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sun-v245%25e7%259a%2584%25e7%25a1%25acraid</link>
		<comments>http://www.litrin.net/2008/10/21/sun-v245%e7%9a%84%e7%a1%acraid/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 05:04:43 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[硬件相关]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=494</guid>
		<description><![CDATA[Sun的215和245除了支持传统上的软RAID之外，新增了硬RAID功能。不过话说回来，这种价位上的服务器，不支持硬RAID的似乎也太抠门了。 本文以崭新的机器作为例子，如果不是新机器——建议不要乱来。 一、先期准备： 新的机器一般都没有系统，直接开机即可进入OK模式（OK提示符）  setenv fcode-debug? true  setenv auto-boot? false  reset-all  机器重启以便生效，否则之后将会出现This must be fixed immediately using set-sas-wwid 的提示。 二、初始化磁盘 我的机器disk配置如下： {0} ok show-disks a) /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/disk b) /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/cdrom c) /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/disk q) NO SELECTION Enter Selection, q to quit: {o}ok select /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1 //选择磁盘通道 三、创建RAID卷 {1} ok show-volumes No volumes to show 目前还没有RAID卷存在 {1} ok probe-scsi-all //查看ID /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1 MPT Version 1.05, Firmware Version 1.08.04.00 Target [...]]]></description>
			<content:encoded><![CDATA[<p>Sun的215和245除了支持传统上的软RAID之外，新增了硬RAID功能。不过话说回来，这种价位上的服务器，不支持硬RAID的似乎也太抠门了。</p>
<p>本文以崭新的机器作为例子，如果不是新机器——建议不要乱来。</p>
<p><strong>一、先期准备：</strong></p>
<p>新的机器一般都没有系统，直接开机即可进入OK模式（OK提示符）</p>
<p><em><span class="f14"> setenv fcode-debug? true</span></em></p>
<p><em><span class="f14"> setenv </span>auto-boot? false </em></p>
<p><em> reset-all </em></p>
<p>机器重启以便生效，否则之后将会出现<span class="f14">This must be fixed immediately using set-sas-wwid 的提示</span>。</p>
<p><strong>二、初始化磁盘</strong></p>
<p>我的机器disk配置如下：</p>
<p><em>{0} ok show-disks</em><br />
a)<strong> /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/disk</strong><br />
b) /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/cdrom<br />
c) /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/disk<br />
q) NO SELECTION<br />
Enter Selection, q to quit:</p>
<p><em>{o}ok select /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1</em> //选择磁盘通道</p>
<p><strong>三、创建RAID卷</strong></p>
<p><em>{1} ok show-volumes</em><br />
No volumes to show</p>
<p>目前还没有RAID卷存在</p>
<p>{1} ok probe-scsi-all //查看ID</p>
<p>/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1</p>
<p>MPT Version 1.05, Firmware Version 1.08.04.00</p>
<p>Target 0<br />
Unit 0   Disk     FUJITSU MAY2073RCSUN72G 0501    143374738 Blocks, 73 GB<br />
  SASAddress 500000e01496c622  PhyNum 0<br />
Target 1<br />
Unit 0   Disk     FUJITSU MAY2073RCSUN72G 0501    143374738 Blocks, 73 GB<br />
  SASAddress 500000e01496fa32  PhyNum 1<br />
Target 2<br />
Unit 0   Disk     SEAGATE ST914602SSUN146G0603    286739329 Blocks, 146 GB<br />
  SASAddress 5000c5000cac86fd  PhyNum 2<br />
Target 3<br />
Unit 0   Disk     SEAGATE ST914602SSUN146G0603    286739329 Blocks, 146 GB<br />
  SASAddress 5000c5000cac00c5  PhyNum 3<br />
 </p>
<p>注：如果出现ERROR: /pci@1e,600000: Last Trap: Fast Data Access MMU Miss报错，您可能需要执行</p>
<p><em>{1}ok reset-all</em></p>
<p><em>{1} ok 0 1 create-im-volume //注意：“反向”命令<br />
</em></p>
<p>Target 0 size is 143243264 Blocks, 73 GB<br />
Target 1 size is 143243264 Blocks, 73 GB<br />
The volume can be any size from 1 MB to 69943 MB<br />
What size do you want?  [69943]<br />
Volume size will be 143243264 Blocks, 73 GB<br />
PhysDisk 0 has been created for target 0<br />
PhysDisk 1 has been created for target 1<br />
Volume has been created</p>
<p><em>{1} ok 2 3 create-im-volume</em><br />
Target 2 size is 286607360 Blocks, 146 GB<br />
Target 3 size is 286607360 Blocks, 146 GB<br />
The volume can be any size from 1 MB to 139945 MB<br />
What size do you want?  [139945]<br />
Volume size will be 286607360 Blocks, 146 GB<br />
PhysDisk 2 has been created for target 2<br />
PhysDisk 3 has been created for target 3<br />
Volume has been created</p>
<p>创建了2个Raid1卷，Raid 0 卷则用<span class="f14">create-is-volume命令</span></p>
<p><em>{1} ok show-volumes</em><br />
Volume 0 Target 0  Type IM (Integrated Mirroring)<br />
  Degraded  Enabled  Resync In Progress<br />
  2 Members                                         143243264 Blocks, 73 GB<br />
  Disk 0<br />
    Primary  Online<br />
    Target 4        FUJITSU MAY2073RCSUN72G 0501<br />
  Disk 1<br />
    Secondary  Online  Out Of Sync<br />
    Target 1        FUJITSU MAY2073RCSUN72G 0501<br />
Volume 1 Target 2  Type IM (Integrated Mirroring)<br />
  Degraded  Enabled<br />
  2 Members                                         286607360 Blocks, 146 GB<br />
  Disk 2<br />
    Primary  Online<br />
    Target 5        SEAGATE ST914602SSUN146G0603<br />
  Disk 3<br />
    Secondary  Online  Out Of Sync<br />
    Target 3        SEAGATE ST914602SSUN146G0603</p>
<p> 搞定！</p>
<p><strong>四、删除磁盘</strong></p>
<p><em><span>｛</span><span>1｝ok 0 delete-volume</span></em><br />
The volume and its data will be deleted<br />
Are you sure (yes/no)?  [no] yes<br />
Volume 0 has been deleted</p>
<p>将磁盘0删除</p>
<p><strong>五、重启</strong><br />
<strong> </strong></p>
<p><em><span class="f14"> setenv fcode-debug?false</span></em></p>
<p><em><span class="f14"> setenv </span>auto-boot? true<br />
</em></p>
<p><em> reset-all<br />
</em></p>
<p>安装操作系统和应用程序。部署完毕！</p>
<div><em></em></div>
<p><em> </p>
<p></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2008/10/21/sun-v245%e7%9a%84%e7%a1%acraid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>虚拟化</title>
		<link>http://www.litrin.net/2008/03/10/%e8%99%9a%e6%8b%9f%e5%8c%96/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e8%2599%259a%25e6%258b%259f%25e5%258c%2596</link>
		<comments>http://www.litrin.net/2008/03/10/%e8%99%9a%e6%8b%9f%e5%8c%96/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 11:41:48 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=478</guid>
		<description><![CDATA[上次刚刚提及了MS的虚拟主机服务器，这次我不得不用它来上生产系统了，比较郁闷。 可能细心的朋友已经发现了，近期网站的速度慢到了几乎无法访问的程度。由于种种不可控制的原因，原来本站的服务器可能永远的停机了，目前的网站运行在了一台虚拟主机之上。由于空间原因，目前暂时停止软件下载。等待litrin找到新的空间后，一切将恢复正常。 同时，向业内的朋友求救！本站急需空间，要求如下： &#62; PHP 4.6 with gd （最好是）pgsql8.1 或 mysql 尽可能大的磁盘空间和尽可能大的网络带宽。 如果有此资源的朋友可以跟我联系。]]></description>
			<content:encoded><![CDATA[<p>上次刚刚提及了<a href="http://www.litrin.net/?q=node/477">MS的虚拟主机服务器</a>，这次我不得不用它来上生产系统了，比较郁闷。</p>
<p>可能细心的朋友已经发现了，近期网站的速度慢到了几乎无法访问的程度。由于种种不可控制的原因，原来本站的服务器可能永远的停机了，目前的网站运行在了一台虚拟主机之上。由于空间原因，目前暂时停止软件下载。等待litrin找到新的空间后，一切将恢复正常。</p>
<p>同时，向业内的朋友求救！本站急需空间，要求如下：</p>
<ul>
<li>&gt; PHP 4.6 with gd </li>
<li>（最好是）pgsql8.1 或 mysql </li>
<li>尽可能大的磁盘空间和尽可能大的网络带宽。</li>
</ul>
<p>如果有此资源的朋友可以跟我联系。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2008/03/10/%e8%99%9a%e6%8b%9f%e5%8c%96/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>启用Solaris的tomcat</title>
		<link>http://www.litrin.net/2007/11/19/%e5%90%af%e7%94%a8solaris%e7%9a%84tomcat/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e5%2590%25af%25e7%2594%25a8solaris%25e7%259a%2584tomcat</link>
		<comments>http://www.litrin.net/2007/11/19/%e5%90%af%e7%94%a8solaris%e7%9a%84tomcat/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 08:16:53 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[solaris]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=471</guid>
		<description><![CDATA[网上很多文档对于solaris的tomcat环境都是重新编译或者重新安装的，其实solaris的系统本身并不希望你在上面做太多的编译操作，而作为tomcat这种java应用，其实solaris本身已经自带了一个。 察看系统是否安装了apache和tomcat pkginfo&#124; grep SUNWtcatr pkginfo &#124; grep SUNWapchr 如果有的话 cd /etc/apache cp httpd.conf-example httpd.conf vi httpd.conf include /etc/apache/tomcat.conf #应该是在最后一行，去掉注视 cd /var/apache/tomcat/conf cp server.xml-example server.xml OK了 启动 &#160;/etc/rc3.d/S50apache stop &#160;/etc/rc3.d/S50apache start // 第一次restart似乎无效 svcadm enable apache]]></description>
			<content:encoded><![CDATA[<p>网上很多文档对于solaris的tomcat环境都是重新编译或者重新安装的，其实solaris的系统本身并不希望你在上面做太多的编译操作，而作为tomcat这种java应用，其实solaris本身已经自带了一个。</p>
<p>察看系统是否安装了apache和tomcat</p>
<p>pkginfo| grep <font face="Courier New">SUNWtcatr</font><br />
pkginfo | grep SUNWapchr </p>
<p>如果有的话</p>
<p>cd /etc/apache<br />
cp httpd.conf-example httpd.conf</p>
<p>vi httpd.conf </p>
<p>include /etc/apache/tomcat.conf #应该是在最后一行，去掉注视</p>
<p>cd /var/apache/tomcat/conf <br />
cp server.xml-example server.xml</p>
<p>OK了</p>
<p>启动</p>
<p>&nbsp;/etc/rc3.d/S50apache stop<br />
&nbsp;/etc/rc3.d/S50apache start // 第一次restart似乎无效</p>
<p>svcadm enable apache </p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2007/11/19/%e5%90%af%e7%94%a8solaris%e7%9a%84tomcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>免费的unix测试机</title>
		<link>http://www.litrin.net/2007/03/20/%e5%85%8d%e8%b4%b9%e7%9a%84unix%e6%b5%8b%e8%af%95%e6%9c%ba/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e5%2585%258d%25e8%25b4%25b9%25e7%259a%2584unix%25e6%25b5%258b%25e8%25af%2595%25e6%259c%25ba</link>
		<comments>http://www.litrin.net/2007/03/20/%e5%85%8d%e8%b4%b9%e7%9a%84unix%e6%b5%8b%e8%af%95%e6%9c%ba/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 00:40:36 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[服务器]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=440</guid>
		<description><![CDATA[今天收到了一封来自Gceclube的电子邮件，邀请我注册以获得一个远程Solaris服务器的测试帐户，注册地址如下： http://www.unix-center.net/ 注册之后，就可以用putty这类的工具访问远程主机了。有需要的朋友去注册了，据说6月30日之前注册的用户还有机会抽奖。]]></description>
			<content:encoded><![CDATA[<p>今天收到了一封来自Gceclube的电子邮件，邀请我注册以获得一个远程Solaris服务器的测试帐户，注册地址如下：</p>
<p><a rel="nofollow" target="_blank" target="_blank" href="http://www.unix-center.net/">http://www.unix-center.net/</a></p>
<p>
注册之后，就可以用putty这类的工具访问远程主机了。有需要的朋友去注册了，据说6月30日之前注册的用户还有机会抽奖。</p>
<p><img height="378" width="600" alt="" src="/UserFiles/Image/solaris-test.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2007/03/20/%e5%85%8d%e8%b4%b9%e7%9a%84unix%e6%b5%8b%e8%af%95%e6%9c%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>很直观的vi教程</title>
		<link>http://www.litrin.net/2006/08/30/%e5%be%88%e7%9b%b4%e8%a7%82%e7%9a%84vi%e6%95%99%e7%a8%8b/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e5%25be%2588%25e7%259b%25b4%25e8%25a7%2582%25e7%259a%2584vi%25e6%2595%2599%25e7%25a8%258b</link>
		<comments>http://www.litrin.net/2006/08/30/%e5%be%88%e7%9b%b4%e8%a7%82%e7%9a%84vi%e6%95%99%e7%a8%8b/#comments</comments>
		<pubDate>Wed, 30 Aug 2006 01:05:45 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[桌面应用]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=390</guid>
		<description><![CDATA[找到一篇非常直观的vi教程，用图形标记的相当清楚。 不用我多做介绍了吧？]]></description>
			<content:encoded><![CDATA[<p>找到一篇非常直观的vi教程，用图形标记的相当清楚。</p>
<p>不用我多做介绍了吧？</p>
<p><!--break--><br />
<a rel="nofollow" target="_blank" href="http://www.litrin.net/UserFiles/Image/vi_png.jpg" target="_blank"><img width="480" height="493" src="/UserFiles/Image/vi_png.jpg" alt="图片很大，请耐心等待。。。" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2006/08/30/%e5%be%88%e7%9b%b4%e8%a7%82%e7%9a%84vi%e6%95%99%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OpenDarwin Shutting Down</title>
		<link>http://www.litrin.net/2006/08/03/opendarwin-shutting-down/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=opendarwin-shutting-down</link>
		<comments>http://www.litrin.net/2006/08/03/opendarwin-shutting-down/#comments</comments>
		<pubDate>Thu, 03 Aug 2006 08:30:49 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=377</guid>
		<description><![CDATA[得到了这个消息，心中又是一阵郁闷。虽然我从没有用过这个东西。 其实也许他们本来就没有存在下去的理由，也许仅仅就是当作Apple给开源社区的一种施舍罢了。随着Apple的PPC变成了i386&#8212;&#8212;一个更加廉价、易得或者是说一个更加开放的平台，傻子也知道，将看家的Mac 源代码释放出去意味着什么。 关闭关闭罢，这么多开源操作系统大多都处在不断的开放和关闭，以及关闭之间。能够存活，广为人知的，数来数去也就是那几家。何尝就差opendarwin一家？ 这也许就是现阶段开源社区的宿命吧。]]></description>
			<content:encoded><![CDATA[<p>得到了这个消息，心中又是一阵郁闷。虽然我从没有用过这个东西。</p>
<p>其实也许他们本来就没有存在下去的理由，也许仅仅就是当作Apple给开源社区的一种施舍罢了。随着Apple的PPC变成了i386&mdash;&mdash;一个更加廉价、易得或者是说一个更加开放的平台，傻子也知道，将看家的Mac 源代码释放出去意味着什么。</p>
<p>关闭关闭罢，这么多开源操作系统大多都处在不断的开放和关闭，以及关闭之间。能够存活，广为人知的，数来数去也就是那几家。何尝就差opendarwin一家？</p>
<p>这也许就是现阶段开源社区的宿命吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2006/08/03/opendarwin-shutting-down/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unix的运行apache的内核微调</title>
		<link>http://www.litrin.net/2006/07/19/unix%e7%9a%84%e8%bf%90%e8%a1%8capache%e7%9a%84%e5%86%85%e6%a0%b8%e5%be%ae%e8%b0%83/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=unix%25e7%259a%2584%25e8%25bf%2590%25e8%25a1%258capache%25e7%259a%2584%25e5%2586%2585%25e6%25a0%25b8%25e5%25be%25ae%25e8%25b0%2583</link>
		<comments>http://www.litrin.net/2006/07/19/unix%e7%9a%84%e8%bf%90%e8%a1%8capache%e7%9a%84%e5%86%85%e6%a0%b8%e5%be%ae%e8%b0%83/#comments</comments>
		<pubDate>Wed, 19 Jul 2006 08:03:04 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=370</guid>
		<description><![CDATA[下面叙述的一些调整参数和句法在重新启动后将不会自动激活，所以如果你需要在每次启动的时候长期保持这些参数，你就需要增加这些实时命令到如下的启动文件中： AIX &#8211; /etc/rc.net Solaris &#8211; /etc/init.d/inetinit Tru64 UNIX &#8211; 使用sysconfigdb 或者 dxkerneltuner 命令 HP-UX &#8211; /etc/rc.config.d/nddconf Linux kernel 2.2 &#8211; /etc/sysctl.conf FreeBSD &#8211; /etc/rc.conf IRIX &#8211; 使用systune命令 ============================================================= 以下是一些IP堆栈调整建议： 1，调节TCP发送和接受空间(TCP send and receive spaces) TCP发送和接受的空间直接影响TCP 窗口大小参数(TCP window size parameter), 一定程度上的窗口大小增加有助于更有效的传输，尤其是一些需要大数量传输的服务如FTP和HTTP，默认的一些设置不是每个系统都是最优化的，一般我们需 要增加这个窗口大小为32768字节。除非你设置的时候很清楚的理解RFC1323(http://www.ietf.org/rfc/rfc1323.txt?number=1323)和RFC2018(http://www.ietf.org/rfc/rfc2018.txt?number=2018),否则你不要把这个值增加到高于64K字节。 A. AIX /usr/sbin/no -o tcp_sendspace=32768 /usr/sbin/no -o tcp_recvspace=32768 B. Solaris /usr/sbin/ndd -set /dev/tcp [...]]]></description>
			<content:encoded><![CDATA[<p>下面叙述的一些调整参数和句法在重新启动后将不会自动激活，所以如果你需要在每次启动的时候长期保持这些参数，你就需要增加这些实时命令到如下的启动文件中： </p>
<p>AIX &#8211; /etc/rc.net <br />
Solaris &#8211; /etc/init.d/inetinit <br />
Tru64 UNIX &#8211; 使用sysconfigdb 或者 dxkerneltuner 命令 <br />
HP-UX &#8211; /etc/rc.config.d/nddconf <br />
Linux kernel 2.2 &#8211; /etc/sysctl.conf <br />
FreeBSD &#8211; /etc/rc.conf <br />
IRIX &#8211; 使用systune命令 </p>
<p>============================================================= <br />
以下是一些IP堆栈调整建议： </p>
<p>1，调节TCP发送和接受空间(TCP send and receive spaces) </p>
<p>TCP发送和接受的空间直接影响TCP 窗口大小参数(TCP window size parameter), 一定程度上的窗口大小增加有助于更有效的传输，尤其是一些需要大数量传输的服务如FTP和HTTP，默认的一些设置不是每个系统都是最优化的，一般我们需 要增加这个窗口大小为32768字节。除非你设置的时候很清楚的理解RFC1323(<a rel="nofollow" target="_blank" href="http://www.ietf.org/rfc/rfc1323.txt?number=1323%29" target="_blank">http://www.ietf.org/rfc/rfc1323.txt?number=1323)</a>和RFC2018(<a rel="nofollow" target="_blank" href="http://www.ietf.org/rfc/rfc2018.txt?number=2018%29" target="_blank">http://www.ietf.org/rfc/rfc2018.txt?number=2018)</a>,否则你不要把这个值增加到高于64K字节。 </p>
<p>A. AIX <br />
/usr/sbin/no -o tcp_sendspace=32768 <br />
/usr/sbin/no -o tcp_recvspace=32768 </p>
<p>B. Solaris <br />
/usr/sbin/ndd -set /dev/tcp tcp_xmit_hiwat 32768 <br />
/usr/sbin/ndd -set /dev/tcp tcp_recv_hiwat 32768 </p>
<p>C. Tru64 UNIX <br />
没有推荐的调整. </p>
<p>D. HP-UX <br />
默认情况下TCP发送和接受空间已经设置为32768. </p>
<p>E. Linux kernel 2.2 <br />
Linux自动分配TCP发送和接受空间并默认共同支持RFC1323 (large window support, net.ipv4.tcp_window_scaling) 和 RFC2018 (SACK support, net.ipv4.tcp_sack). </p>
<p>F. FreeBSD <br />
sysctl -w net.inet.tcp.sendspace=32768 <br />
sysctl -w net.inet.tcp.recvspace=32768 </p>
<p>G. IRIX <br />
默认情况下TCP发送和接受空间设置为64K字节. </p>
<p>2，调整套接口序列防止SYN攻击 </p>
<p>各种网络应用软件一般必须开放一个或者几个端口供外界使用，所以其必定可以会被恶意攻击者向这几个口发起拒绝服务攻击，其中一个很流行的攻击就是 SYNFLOOD，在攻击发生时，客户端的来源IP地址是经过伪造的(spoofed)，现行的IP路由机制仅检查目的IP地址并进行转发，该IP包到达 目的主机后返回路径无法通过路由达到的，于是目的主机无法通过TCP三次握手建立连接。在此期间因为TCP套接口缓存队列被迅速填满，而拒绝新的连接请 求。为了防止这些攻击，部分UNIX变种采用分离入站的套接口连接请求队列，一队列针对半打开套接口(SYN 接收, SYN|ACK 发送), 另一队列针对全打开套借口等待一个accept()调用，增加这两队列可以很好的缓和这些SYN FLOOD攻击并使对服务器的影响减到最小程度： </p>
<p>A. AIX <br />
/usr/sbin/no -o clean_partial_conns=1 <br />
这个设置会指示内核随机的从q0队列中去掉半打开套接口来为新的套接口增加所需空间。 </p>
<p>B. Solaris <br />
/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 1024 <br />
使q 队列拥有接口等待来自应用程序的accept()调用. <br />
/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 2048 <br />
使q0 队列能维护半打开套接口. </p>
<p>C. Tru64 UNIX <br />
/sbin/sysconfig -r socket sominconn=65535 <br />
这个sominconn的值决定了系统能同时处理多少个相同的进入的SYN信息包. <br />
/sbin/sysconfig -r socket somaxconn=65535 <br />
这个somaxconn值设置了系统能保留多少个待处理TCP连接. </p>
<p>D. HP-UX <br />
/usr/sbin/ndd -set tcp_syn_rcvd_max 1024 <br />
/usr/sbin/ndd -set tcp_conn_request_max 200 </p>
<p>E. Linux kernel 2.2 <br />
/sbin/sysctl -w net.ipv4.tcp_max_syn_backlog=1280 <br />
有效的增加q0的套接口队列大小. <br />
/sbin/sysctl -w net.ipv4.tcp_syn_cookies=1 <br />
启用TCP SYN cookies支持,能有效的减轻SYN FLOOD的攻击，但是这个参数会对一些大的窗口引起一些性能问题(参看RFC1323 and RFC2018. </p>
<p>F. FreeBSD <br />
sysctl -w kern.ipc.somaxconn=1024 </p>
<p>G. IRIX <br />
listen()队列被硬性设置为32.但是系统实际采用待处理连接数为((3 * backlog) / 2) + 1，其中的backlog数值最大值为49. </p>
<p>3，调整Redirects参数 </p>
<p>恶意用户可以使用IP重定向来修改远程主机中的路由表，在设计良好的网络中，末端的重定向设置是不需要的，发送和接受重定向信息包都要关闭。 </p>
<p>A. AIX <br />
/usr/sbin/no -o ipignoreredirects=1 <br />
/usr/sbin/no -o ipsendredirects=0 </p>
<p>B. Solaris <br />
/usr/sbin/ndd -set /dev/ip ip_ignore_redirect 1 <br />
/usr/sbin/ndd -set /dev/ip ip_send_redirects 0 </p>
<p>C. Tru64 UNIX <br />
没有推荐的调整设置. </p>
<p>D. HP-UX <br />
/usr/sbin/ndd -set /dev/ip ip_send_redirects 0 </p>
<p>E. Linux kernel 2.2 <br />
/sbin/sysctl -w net.ipv4.conf.all.send_redirects=0 <br />
/sbin/sysctl -w net.ipv4.conf.all.accept_redirects=0 </p>
<p>F. FreeBSD <br />
sysctl -w net.inet.icmp.drop_redirect=1 <br />
sysctl -w net.inet.icmp.log_redirect=1 <br />
sysctl -w net.inet.ip.redirect=0 <br />
sysctl -w net.inet6.ip6.redirect=0 </p>
<p>G. IRIX <br />
/usr/sbin/systune icmp_dropredirects to 1 </p>
<p>4,调整ARP清理设置 </p>
<p>通过向IP路由缓冲填充伪造的ARP条目可以让恶意用户产生资源耗竭和性能减低攻击。在Solaris中，有2个参数可以管理间隔的清理IP路由缓冲，针 对未请求的ARP响应可以通过arp_cleanup_interval调整，AIX可以通过artp_killc来设置。 </p>
<p>A. AIX <br />
/usr/sbin/no -o arpt_killc=20 <br />
B. Solaris <br />
/usr/sbin/ndd -set /dev/arp arp_cleanup_interval 60000 <br />
C. Tru64 UNIX <br />
没有参考的调整设置. <br />
D. HP-UX <br />
默认设置为5分钟. <br />
E. Linux kernel 2.2 <br />
没有参考的调整设置. <br />
F. FreeBSD <br />
sysctl -w net.link.ether.inet.max_age=1200 <br />
G. IRIX <br />
没有参考的调整设置. </p>
<p>5,调整源路由的设置 </p>
<p>通过源路由，攻击者可以尝试到达内部IP地址 &#8211;包括RFC1918中的地址，所以不接受源路由信息包可以防止你的内部网络被探测。 </p>
<p>A. AIX <br />
/usr/sbin/no -o ipsrcroutesend=0 <br />
关闭源路由信息包发送. </p>
<p>/usr/sbin/no -o ipsrcrouteforward=0 <br />
如果你这个系统要做路由工作如防火墙，这个参数就很重要，关闭这个特征就可以很好的防止转发源路由信息包. </p>
<p>B. Solaris <br />
/usr/sbin/ndd -set /dev/ip ip_src_route_forward 0 <br />
如果你这个系统要做路由工作如防火墙，这个参数就很重要，关闭这个特征就可以很好的防止转发源路由信息包. </p>
<p>C. Tru64 UNIX <br />
没有推荐的调整. </p>
<p>D. HP-UX <br />
ndd -set /dev/ip ip_forward_src_routed 0 <br />
关闭这个特征就可以很好的防止转发源路由信息包. </p>
<p>E. Linux kernel 2.2 <br />
/sbin/sysctl -w net.ipv4.conf.all.accept_source_route=0 <br />
丢弃所有源地址信息包. <br />
/sbin/sysctl -w net.ipv4.conf.all.forwarding=0 <br />
/sbin/sysctl -w net.ipv4.conf.all.mc_forwarding=0 <br />
不转发源路由帧. </p>
<p>F. FreeBSD <br />
sysctl -w net.inet.ip.sourceroute=0 <br />
sysctl -w net.inet.ip.accept_sourceroute=0 </p>
<p>G. IRIX <br />
/usr/sbin/systune ipforward to 2 </p>
<p>6. 调整TIME_WAIT setting 设置 </p>
<p>在一些比较繁忙的WEB服务器上，许多套接口可能就处于TIME_WAIT状态，这是由于一些不正规编码的客户端应用程序没有很正确的处理套接口所引起的，这就可能引起如DDOS的攻击。 </p>
<p>A. AIX <br />
没有推荐设置. </p>
<p>B. Solaris <br />
/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 60000 </p>
<p>这个参数影响了TCP套接口保持TIME_WAIT状态的时间数，默认情况下对于一个繁忙的WEB服务器太高了，所以需要设置到低于每60秒，这个参数名 字适用与Solaris7或者更高的版本，在Solaris 7之前的版本，其名字不正确的表识为tcp_close_wait_interval. </p>
<p>C. Tru64 UNIX <br />
没有推荐的调整设置. </p>
<p>D. HP-UX <br />
ndd -set /dev/tcp tcp_time_wait_interval 60000 <br />
套接口将保持TIME_WAIT状态不超过60秒. </p>
<p>E. Linux kernel 2.2 <br />
/sbin/sysctl -w net.ipv4.vs.timeout_timewait=60 <br />
套接口将保持TIME_WAIT状态不超过60秒. </p>
<p>F. FreeBSD <br />
没有推荐的调整设置. </p>
<p>G. IRIX <br />
/usr/sbin/systune tcp_2msl to 60 </p>
<p>7，调整广播ECHO响应 </p>
<p>Smurf攻击就是一个伪造的地址通过发送ICMP 8 0 (ECHO REQUEST) 信息到一个广播地址，一些IP堆栈默认情况下会响应这些信息，所以必须关闭这个特征。如果这个主机作为防火墙使用(router)，关闭这个特征就不能处理处理广播。 </p>
<p>A. AIX <br />
/usr/sbin/no -o directed_broadcast=0 <br />
不响应直接广播. </p>
<p>B. Solaris <br />
/usr/sbin/ndd -set /dev/ip ip_respond_to_echo_broadcast 0 <br />
不响应直接广播. <br />
/usr/sbin/ndd -set /dev/ip ip_forward_directed_broadcasts 0 <br />
不转发直接广播. </p>
<p>C. Tru64 UNIX <br />
没有推荐调整设置. </p>
<p>D. HP-UX <br />
ndd -set /dev/ip ip_respond_to_echo_broadcast 0 <br />
不响应直接广播. <br />
ndd -set /dev/ip ip_forward_directed_broadcasts 0 <br />
不转发直接广播.　 </p>
<p>E. Linux kernel 2.2 <br />
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 <br />
不响应直接广播. </p>
<p>F. FreeBSD <br />
sysctl -w net.inet.icmp.bmcastecho=0 </p>
<p>G. IRIX <br />
/usr/sbin/systune allow_brdaddr_srcaddr to 0 </p>
<p>8，针对其他广播探测的调整 </p>
<p>其他还有2个广播探测可以让恶意用户利用，一个就是地址掩码查询可以用来探测网络段大小和范围。时间戳广播可以映射和鉴定主机类型。 </p>
<p>A. AIX <br />
/usr/sbin/no -o icmpaddressmask=0 <br />
防止地址掩玛查询. </p>
<p>B. Solaris <br />
/usr/sbin/ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0 <br />
防止地址掩玛查询. </p>
<p>/usr/sbin/ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0 <br />
关闭对时间戳广播询问的响应. </p>
<p>C. Tru64 UNIX <br />
没有推荐的调整. </p>
<p>D. HP-UX <br />
ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0 <br />
防止泄露主机配置的网络掩码. </p>
<p>ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0 <br />
关闭对时间戳广播询问的响应. </p>
<p>E. Linux kernel 2.2 <br />
没有推荐的调整. </p>
<p>F. FreeBSD <br />
sysctl -w net.inet.icmp.maskrepl=0 </p>
<p>G. IRIX <br />
使用ipfilterd 来阻塞不需要的ICMP类型. </p>
<p>9，调整参数以支持RFC1948 </p>
<p>下面几个调整会利用RFC1948(<a rel="nofollow" target="_blank" href="http://www.ietf.org/rfc/rfc1948.txt?number=1948%29" target="_blank">http://www.ietf.org/rfc/rfc1948.txt?number=1948)</a> <br />
TCP/IP序列号产生技术来保证给一个TCP 套接口的序列号码非常难猜测： </p>
<p>B. Solaris <br />
Set TCP_STRONG_ISS=2 in /etc/default/inetinit. <br />
这需要重新启动才能使能. </p>
<p>G. IRIX <br />
/usr/sbin/systune tcpiss_md5 to 1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2006/07/19/unix%e7%9a%84%e8%bf%90%e8%a1%8capache%e7%9a%84%e5%86%85%e6%a0%b8%e5%be%ae%e8%b0%83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>进程调整命令</title>
		<link>http://www.litrin.net/2006/06/19/%e8%bf%9b%e7%a8%8b%e8%b0%83%e6%95%b4%e5%91%bd%e4%bb%a4/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e8%25bf%259b%25e7%25a8%258b%25e8%25b0%2583%25e6%2595%25b4%25e5%2591%25bd%25e4%25bb%25a4</link>
		<comments>http://www.litrin.net/2006/06/19/%e8%bf%9b%e7%a8%8b%e8%b0%83%e6%95%b4%e5%91%bd%e4%bb%a4/#comments</comments>
		<pubDate>Mon, 19 Jun 2006 06:24:27 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=353</guid>
		<description><![CDATA[kill命令 当需要中断一个前台进程的时候，通常是使用组合键；但是对于一个后台进程恐怕就不是一个组合键所能解决的了，这时就必须求助于kill命令。该命令可 以终止后台进程。至于终止后台进程的原因很多，或许是该进程占用的CPU时间过多；或许是该进程已经挂死。总之这种情况是经常发生的。 kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号，那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill（9）信号了，该信号是不能被捕捉的。 　　kill命令的语法格式很简单，大致有以下两种方式： 　　kill ［-s 信号 &#124; -p ］ ［ -a ］ 进程号 &#8230; 　　kill -l ［信号］ 　　-s 指定需要送出的信号。既可以是信号名也可以对应数字。 　　-p 指定kill命令只是显示进程的pid，并不真正送出结束信号。 　　-l 显示信号名称列表，这也可以在/usr/include/linux/signal.h文件中找到。 　　kill命令的使用 　　下面看看该命令的使用。 　　［例24］ 在执行一条find指令时由于时间过长，决定终止该进程。 　　首先应该使用ps命令来查看该进程对应的PID，键入ps，显示如下： 　　PID TTY TIME COMMAND 　　285 1 00:00:00 -bash 　　287 3 00:00:00 -bash 　　289 5 00:00:00 /sbin/mingetty tty5 　　290 6 00:00:00 /sbin/mingetty tty6 　　312 3 00:00:00 [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: bold;">kill命令</p>
<p></span> 当需要中断一个前台进程的时候，通常是使用组合键；但是对于一个后台进程恐怕就不是一个组合键所能解决的了，这时就必须求助于kill命令。该命令可 以终止后台进程。至于终止后台进程的原因很多，或许是该进程占用的CPU时间过多；或许是该进程已经挂死。总之这种情况是经常发生的。<br /> kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号，那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill（9）信号了，该信号是不能被捕捉的。</p>
<p> 　　kill命令的语法格式很简单，大致有以下两种方式：</p>
<p> 　　kill ［-s 信号 | -p ］ ［ -a ］ 进程号 &#8230;</p>
<p> 　　kill -l ［信号］</p>
<p> 　　-s 指定需要送出的信号。既可以是信号名也可以对应数字。</p>
<p> 　　-p 指定kill命令只是显示进程的pid，并不真正送出结束信号。</p>
<p> 　　-l 显示信号名称列表，这也可以在/usr/include/linux/signal.h文件中找到。</p>
<p> 　　kill命令的使用</p>
<p> 　　下面看看该命令的使用。</p>
<p> 　　［例24］ 在执行一条find指令时由于时间过长，决定终止该进程。</p>
<p> 　　首先应该使用ps命令来查看该进程对应的PID，键入ps，显示如下：</p>
<p> 　　PID TTY TIME COMMAND</p>
<p> 　　285 1 00:00:00 -bash</p>
<p> 　　287 3 00:00:00 -bash</p>
<p> 　　289 5 00:00:00 /sbin/mingetty tty5</p>
<p> 　　290 6 00:00:00 /sbin/mingetty tty6</p>
<p> 　　312 3 00:00:00 telnet bbs3</p>
<p> 　　341 4 00:00:00 /sbin/mingetty tty4</p>
<p> 　　345 1 00:00:00 find / -name foxy.jpg</p>
<p> 　　348 1 00:00:00 ps</p>
<p> 　　可以看到该进程对应的PID是345，现在使用kill命令来终止该进程。键入：</p>
<p> 　　# kill 345</p>
<p> 　　再用ps命令查看，就可以看到，find进程已经被杀掉了。<br /> 　<br /> 　　［例25］ 杀掉进程11721</p>
<p> 　　# ps</p>
<p> 　　PID TTY TIME COMMAND</p>
<p> 　　11668 p1 00:00:00 -tcsh</p>
<p> 　　11721 p1 00:00:00 cat</p>
<p> 　　11737 p1 00:00:00 ps</p>
<p> 　　# kill 11721</p>
<p> 　　［1］ Terminated cat</p>
<p> 　　#</p>
<p> 　　有时候可能会遇到这样的情况，某个进程已经挂死或闲置，使用kill命令却杀不掉。这时候就必须发送信号9，强行关闭此进程。当然这种&ldquo;野蛮&rdquo;的方法 很可能会导致打开的文件出现错误或者数据丢失之类的错误。所以不到万不得已不要使用强制结束的办法。如果连信号9都不响应，那恐怕就只有重新启动计算机 了。</p>
<p> 　　控制多个进程命令</p>
<p> 　　Linux可使用户同时运行多个进程，还允许用户或系统管理员能控制正在运行的进程。</p>
<p><span style="font-weight: bold;"> nohup命令</span><br style="font-weight: bold;" /> <br />理论上，我们一般退出Linux系统时，会把所有的程序全部结束掉，包括那些后台程序。但有时候，例如您正在编辑一个很长的程序，但是您下班或是有事 需要先退出系统，这时您又不希望系统把您编辑那么久的程序结束掉，希望退出系统时，程序还能继续执行。这时，我们就可以使用nohup命令使进程在用户退 出后仍继续执行。<br /> 一般这些进程我们都是让它在后台执行，结果则会写到用户自己的目录下的nohup.out这个文件里（也可以使用输出重定向，让它输出到一个特定的文件）。［例26］</p>
<p> 　　$ nohup sort sales.dat &amp;</p>
<p> 　　这条命令告诉sort命令忽略用户已退出系统，它应该一直运行，直到进程完成。利用这种方法，可以启动一个要运行几天甚至几周的进程，而且在它运行时，用户不需要去登录。</p>
<p> 　　nohup命令把一条命令的所有输出和错误信息送到nohup.out文件中。若将输出重定向，则只有错误信息放在nohup.out文件中。</p>
<p><span style="font-weight: bold;">renice命令</span></p>
<p>renice命令允许用户修改一个正在运行进程的优先权。<br /> 利用renice命令可以在命令执行时调整其优先权。其格式如下：</p>
<p> 　　$ renice -number PID</p>
<p> 　　其中，参数number与nice命令的number意义相同。</p>
<p> 　　注：</p>
<p> 　　（1） 用户只能对自己所有的进程使用renice命令。</p>
<p> 　　（2） root用户可以在任何进程上使用renice命令。</p>
<p> 　　（3） 只有root用户才能提高进程的优先权。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2006/06/19/%e8%bf%9b%e7%a8%8b%e8%b0%83%e6%95%b4%e5%91%bd%e4%bb%a4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris下实现多控制台操作</title>
		<link>http://www.litrin.net/2006/05/30/solaris%e4%b8%8b%e5%ae%9e%e7%8e%b0%e5%a4%9a%e6%8e%a7%e5%88%b6%e5%8f%b0%e6%93%8d%e4%bd%9c/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=solaris%25e4%25b8%258b%25e5%25ae%259e%25e7%258e%25b0%25e5%25a4%259a%25e6%258e%25a7%25e5%2588%25b6%25e5%258f%25b0%25e6%2593%258d%25e4%25bd%259c</link>
		<comments>http://www.litrin.net/2006/05/30/solaris%e4%b8%8b%e5%ae%9e%e7%8e%b0%e5%a4%9a%e6%8e%a7%e5%88%b6%e5%8f%b0%e6%93%8d%e4%bd%9c/#comments</comments>
		<pubDate>Tue, 30 May 2006 06:50:49 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[solaris]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=333</guid>
		<description><![CDATA[Solaris的命令行界面默认只有一个控制台，不能像linux那样实现多个控制台之间的相互切换。还是为了习惯吧，下面的方法可以实现给Solaris增加控制台。 首先用grep命令检查设备文件名: # grep -i chanmux&#160; /etc/name_to_major chanmux &#60;num&#62; 在/dev目录下创建一个设备文件,number这个参数就是上面那个grep命令的结果 : mknod /dev/vt01 c &#60;number&#62; 1 mknod /dev/vt02 c &#60;number&#62; 2 &#8230;&#8230; 然后在/etc/inittab里添加: v1:234:respawn:/usr/lib/saf/ttymon -g -h -p &#34;VT1 Login: &#34; -T AT386 -d /dev/vt01 -l console v2:234:respawn:/usr/lib/saf/ttymon -g -h -p &#34;VT2 Login: &#34; -T AT386 -d /dev/vt02 -l console&#160;&#8230;&#8230; 然后用init命令从读inittab文件,或者reboot,也可以用一下命令: /usr/sbin/init 0 好了,现在可以测试一下了 Alt-PrintScreen F1 [...]]]></description>
			<content:encoded><![CDATA[<p><span class="pg" id="xydwtext">Solaris的命令行界面默认只有一个控制台，不能像linux那样实现多个控制台之间的相互切换。还是为了习惯吧，下面的方法可以实现给Solaris增加控制台。</span></p>
<p><span class="pg">首先用grep命令检查设备文件名: <br /># grep -i chanmux&nbsp; /etc/name_to_major <br />chanmux &lt;num&gt; <br />在/dev目录下创建一个设备文件,number这个参数就是上面那个grep命令的结果 : </p>
<p>mknod /dev/vt01 c &lt;number&gt; 1 <br />mknod /dev/vt02 c &lt;number&gt; 2 <br />&hellip;&hellip;</p>
<p>然后在/etc/inittab里添加: </p>
<p>v1:234:respawn:/usr/lib/saf/ttymon -g -h -p &quot;VT1 Login: &quot; -T AT386 -d /dev/vt01 -l console <br />v2:234:respawn:/usr/lib/saf/ttymon -g -h -p &quot;VT2 Login: &quot; -T AT386 -d /dev/vt02 -l console&nbsp;<br />&hellip;&hellip; </p>
<p>然后用init命令从读inittab文件,或者reboot,也可以用一下命令: </p>
<p>/usr/sbin/init 0</p>
<p>好了,现在可以测试一下了 <br />Alt-PrintScreen F1 切换到VT1 <br />Alt-PrintScreen F2 切换到VT2, <br />Alt-PrintScreen P 切换到上一个界面. <br />Alt-PrintScreen N 切换到下一个界面. <br />Alt-PrintScreen H 切换到X console screen (不是Alt-PrintScreen F)</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2006/05/30/solaris%e4%b8%8b%e5%ae%9e%e7%8e%b0%e5%a4%9a%e6%8e%a7%e5%88%b6%e5%8f%b0%e6%93%8d%e4%bd%9c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>系统状态查看工具Sysstat</title>
		<link>http://www.litrin.net/2006/05/29/%e7%b3%bb%e7%bb%9f%e7%8a%b6%e6%80%81%e6%9f%a5%e7%9c%8b%e5%b7%a5%e5%85%b7sysstat/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e7%25b3%25bb%25e7%25bb%259f%25e7%258a%25b6%25e6%2580%2581%25e6%259f%25a5%25e7%259c%258b%25e5%25b7%25a5%25e5%2585%25b7sysstat</link>
		<comments>http://www.litrin.net/2006/05/29/%e7%b3%bb%e7%bb%9f%e7%8a%b6%e6%80%81%e6%9f%a5%e7%9c%8b%e5%b7%a5%e5%85%b7sysstat/#comments</comments>
		<pubDate>Mon, 29 May 2006 05:50:07 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=332</guid>
		<description><![CDATA[1、关于 Sysstat； Sysstat 是一个软件包，包含监测系统性能及效率的一组工具，这些工具对于我们收集系统性能数据，比如CPU使用率、硬盘和网络吞吐数据，这些数据的收集和分析，有利于我们判断系统是否正常运行，是提高系统运行效率、安全运行服务器的得力助手； Sysstat 软件包集成如下工具： &#160;&#160;&#160;&#160;* iostat 工具提供CPU使用率及硬盘吞吐效率的数据； &#160;&#160;&#160;&#160;* mpstat 工具提供单个处理器或多个处理器相关数据； &#160;&#160;&#160;&#160;* sar 工具负责收集、报告并存储系统活跃的信息； &#160;&#160;&#160;&#160;* sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行， &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;是为sadc所设计的程序前端程序； &#160;&#160;&#160;&#160;* sa2 工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ，要通过cron来调用 &#160;&#160;&#160;&#160;* sadc 是系统动态数据收集工具，收集的数据被写一个二进制的文件中，它被用作sar工具的后端； &#160;&#160;&#160;&#160;* sadf 显示被sar通过多种格式收集的数据； 2、安装 Sysstat和运行； 对于大多数系统，都有这个软件包，软件名以sysstat开头。我们可以通过网络安装它； 2.1 对于Debian或deb软件包为基础的系统； [root@localhost ~]# apt-get install sysstat 2.2 Fedora 系统或以RPM包管理的系统； [root@localhost ~]# yum install sysstat 如果是RPM包，请用下面的命令来安装； [root@localhost ~]#rpm -ivh sysstat*.rpm 如果您想了解yum 和rpm 软件包管理工具，请参考：《Fedora [...]]]></description>
			<content:encoded><![CDATA[<p><b> 1、关于 Sysstat；<br /> </b></p>
<p>Sysstat 是一个软件包，包含监测系统性能及效率的一组工具，这些工具对于我们收集系统性能数据，比如CPU使用率、硬盘和网络吞吐数据，这些数据的收集和分析，有利于我们判断系统是否正常运行，是提高系统运行效率、安全运行服务器的得力助手；</p>
<p><b><br /> Sysstat 软件包集成如下工具：<br /> </b></p>
<div class="codeblock"><code>&nbsp;&nbsp;&nbsp;&nbsp;* iostat 工具提供CPU使用率及硬盘吞吐效率的数据；<br /> &nbsp;&nbsp;&nbsp;&nbsp;* mpstat 工具提供单个处理器或多个处理器相关数据；<br /> &nbsp;&nbsp;&nbsp;&nbsp;* sar 工具负责收集、报告并存储系统活跃的信息；<br /> &nbsp;&nbsp;&nbsp;&nbsp;* sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行，<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是为sadc所设计的程序前端程序；<br /> &nbsp;&nbsp;&nbsp;&nbsp;* sa2 工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ，要通过cron来调用<br /> &nbsp;&nbsp;&nbsp;&nbsp;* sadc 是系统动态数据收集工具，收集的数据被写一个二进制的文件中，它被用作sar工具的后端；<br /> &nbsp;&nbsp;&nbsp;&nbsp;* sadf 显示被sar通过多种格式收集的数据；</code></div>
<p><font size="4" id="2"><b><br /> 2、安装 Sysstat和运行；<br /> </b></font></p>
<p>对于大多数系统，都有这个软件包，软件名以sysstat开头。我们可以通过网络安装它；</p>
<p><font size="3" id="2.1"><b><br /> 2.1 对于Debian或deb软件包为基础的系统；<br /> </b></font></p>
<div class="codeblock"><code>[root@localhost ~]# apt-get install sysstat</code></div>
<p><font size="3" id="2.2"><b><br /> 2.2 Fedora 系统或以RPM包管理的系统；<br /> </b></font></p>
<div class="codeblock"><code>[root@localhost ~]# yum   install sysstat</code></div>
<p>如果是RPM包，请用下面的命令来安装；</p>
<div class="codeblock"><code>[root@localhost ~]#rpm -ivh sysstat*.rpm</code></div>
<p>如果您想了解yum 和rpm 软件包管理工具，请参考：<a rel="nofollow" target="_blank" href="http://www.linuxsir.org/main/?q=node/63">《Fedora / Redhat 软件包管理指南》</a></p>
<p><font size="3" id="2.3"><b><br /> 2.3 Slackware 系统，对于Slackware系统；<br /> </b></font></p>
<div class="codeblock"><code>[root@localhost ~]# installpkg sysstat*.pkg</code></div>
<p><font size="3" id="2.4"><b><br /> 2.4 通过源码包编译安装；<br /> </b></font></p>
<p>如果您是通过源码包安装，请到官方下源源码包  <a rel="nofollow" target="_blank" href="http://perso.wanadoo.fr/sebastien.godard/download.html" target="_blank">http://perso.wanadoo.fr/sebastien.godard</a>，目前最新版本是 sysstat-6.1.2；</p>
<p>如果您想了想一下什么是源码包，请参考：<a rel="nofollow" target="_blank" href="http://www.linuxsir.org/main/?q=node/51">《如何编译安装源码包软件》</a></p>
<div class="codeblock"><code>[root@localhost ~]# tar zxvf sysstat-6.1.2.tar.gz<br /> [beinan@localhost ~]$ cd sysstat-6.1.2<br /> [beinan@localhost sysstat-6.1.2]#<br /> [beinan@localhost sysstat-6.1.2]# make config<br /> [beinan@localhost sysstat-6.1.2]# make<br /> [beinan@localhost sysstat-6.1.2]# make install</code></div>
<p><font size="3" id="2.5"><b><br /> 2.5 关于 Sysstat 计划任务；<br /> </b></font></p>
<p>如果您想得到Sysstat工具集所收集的系统信息自动存为某个文件中，你必须通过cron 为 sa1 和sa2 做计划任务。我们可以通过修改用户的crontab。在默认的情况下，Sysstat历史信息将被存放在/var/log/sa文件中。如果想定义自己的 计划任务，请参考：<a rel="nofollow" target="_blank" href="http://www.linuxsir.org/main/?q=node/209">《计划任务工具 cron 的配置和说明》</a></p>
<p>在root用户，通过 crontab -e 来添加下面的一段；</p>
<div class="codeblock"><code># 8am-7pm activity reports every 10 minutes during weekdays<br /> 0 8-18 * * 1-5 /usr/lib/sa/sa1 600 6 &amp;<br /> # 7pm-8am activity reports every hour during weekdays<br /> 0 19-7 * * 1-5 /usr/lib/sa/sa1 &amp;<br /> # Activity reports every hour on Saturday and Sunday<br /> 0 * * * 0,6 /usr/lib/sa/sa1 &amp;<br /> # Daily summary prepared at 19:05 5 19 * * * /usr/lib/sa/sa2 -A &amp;</code></div>
<p><b>创建Sysstat的启动脚本；</b></p>
<div class="codeblock"><code>[root@localhost ~]# touch  /etc/rc.d/init.d/sysstat<br /> [root@localhost ~]# vi /etc/rc.d/init.d/sysstat</code></div>
<div class="codeblock"><code>#!/bin/sh<br /> # Begin $rc_base/init.d/sysstat<br /> # Based on sysklogd script from LFS-3.1 and earlier.<br /> # Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org<br /> . /etc/sysconfig/rc<br /> . $rc_functions<br /> case &quot;$1&quot; in<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;Calling the system activity data collector (sadc)...&quot;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/usr/lib/sa/sadc -F -L -<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;evaluate_retval<br /> &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;*)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;Usage: $0 start&quot;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 1<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br /> esac<br /> # End $rc_base/init.d/sysstat</code></div>
<div class="codeblock"><code>[root@localhost ~]# chmod 755 /etc/rc.d/init.d/sysstat<br /> [root@localhost ~]# ln -sf /etc/rc.d/init.d/sysstat /etc/init.d/sysstat</code></div>
<p>有了Sysstat的守护进程，这样我们开机后，Sysstat的守护进程，就时时刻刻的为我们服务了。sa 、sa1或sa2自动把信息存在 /var/log/sa目录的二进制文件中，我们可以通过sar工具来提取这些系统信息的历史；</p>
<p>当然我们也可以通过手动的方法来打开Sysstat的守护程序，也就是我们前面所制作的sysstat；</p>
<div class="codeblock"><code>[root@localhost ~]# /etc/rc.d/init.d/sysstat start <br /> 下面的方法也行； <br /> [root@localhost ~]# /usr/lib/sa/sa1<br /> [root@localhost ~]# /usr/lib/sa/sa2</code></div>
<p><font size="4" id="3"><b><br /> 3.Sysstat 工具集介绍；<br /> </b></font></p>
<p><font size="3" id="3.1"><b><br /> 3.1 sadc 工具，<br /> </b></font></p>
<p>sadc 位于 /usr/lib/sa目录中，如果你没有设置可执行路径，要用绝对路径来运行比较方便 ，/usr/lib/sa/sadc；sadc 是把数据写在一个二进制的文件中，如果想查看数据内容，需要用sadf工具来显示；</p>
<p><b><br /> sadc 的用法；<br /> </b></p>
<div class="codeblock"><code>&nbsp;/usr/lib/sa/sadc [ -d ] [ -F ] [ -I ] [ -L ] [ -V ] [ interval [ count ] ] [ outfile ]</code></div>
<p><b>参数说明：</b></p>
<div class="codeblock"><code>-d  报告硬盘设置的相关统计；<br /> -F  强制把数据写入文件；<br /> -I  报告所有系统中断数据；<br /> interval 表示时间间隔，单位是秒，比如3 ；<br /> count 统计数据的次数，也是一个数字；<br /> outfile 输出统计到outfile文件；</code></div>
<p><b>注意：</b>此工具中的参数都是可选的，如果没有指定任何参数，比如  /usr/lib/sa/sadc  &#8211; ，则会输出数据到 /var/log/sa/ 目录下的一个文件中。我们要通过sadf 或sar工具来查看；</p>
<div class="codeblock"><code>[root@localhost beinan]# /usr/lib/sa/sadc  -<br /> [root@localhost beinan]# ls /var/log/sa   注：列出所有sa目录下的文件，根据文件的时间来判断哪个文件是最新的；<br /> [root@localhost beinan]# sar  -f  /var/log/sa/sa12<br /> 或<br /> [root@localhost beinan]# sadf  /var/log/sa/sa12</code></div>
<p><b>举例：</b>我们想把sadc收集到的数据写到一个指定的文件中；</p>
<pre>[root@localhost ~]# /usr/lib/sa/sadc  1 10 sa000[root@localhost ~]# sar -f sa000
Linux 2.6.15-1.2054_FC5 (localhost.localdomain)         2006年05月12日
09时15分30秒       CPU     %user     %nice   %system   %iowait     %idle09时15分31秒       all      3.00      0.00      0.00      1.00     96.0009时15分32秒       all      0.00      0.00      0.00      0.00    100.0009时15分33秒       all      0.00      0.00      0.00      0.00    100.0009时15分34秒       all      0.00      0.00      0.00      0.00    100.0009时15分35秒       all      0.00      0.00      0.00      0.00    100.0009时15分36秒       all      0.00      0.00      0.00      0.00    100.0009时15分37秒       all      0.00      0.00      0.00      0.00    100.0009时15分38秒       all      0.00      0.00      0.00      0.00    100.0009时15分39秒       all      0.00      0.00      0.00      0.00    100.00Average:          all      0.33      0.00      0.00      0.11     99.56
</pre>
<p> <font color="blue">注解：</font>我们用sadc 收集系统动态数据，让它收集1秒之内的10次动态信息； 然后通过sar 工具来查看系统的状态。也可以用 sadf 来查看所收集的数据，但不是太直观。您自己尝试一下看看。查看sa000文件，用 sadf sa000 ;</p>
<p><font size="3" id="3.2"><b><br /> 3.2 sar 工具；<br /> </b></font></p>
<p>sar 工具比较强大，既能收集系统CPU、硬盘、动态数据，也能显示动态显示，更能查看二进制数据文件；sar 的应用比较多，而且也比较复杂，数据更为精确。我们只了解一下常用的内容就行，大多数内容我们了解就行；</p>
<p><b>用法：</b></p>
<div class="codeblock"><code>sar  ［参数选项]</code></div>
<p><b>参数说明：</b></p>
<div class="codeblock"><code>-A  显示所有历史数据，通过读取/var/log/sar 目录下的所有文件，并把它们分门别类的显示出来；<br /> -b  通过设备的I/O中断读取设置的吞吐率；<br /> -B 报告内存或虚拟内存交换统计；<br /> -c 报告每秒创建的进程数；<br /> -d 报告物理块设备（存储设备）的写入、读取之类的信息，如果直观一点，可以和p参数共同使用，-dp<br /> -f 从一个二进制的数据文件中读取内容，比如 sar -f filename<br /> -i interval  指定数据收集的时间，时间单位是秒；<br /> -n 分析网络设备状态的统计，后面可以接的参数有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV<br /> -o 把统计信息写入一个文件，比如  -o filename ；<br /> -P 报告每个处理器应用统计，用于多处理器机器，并且启用SMP内核才有效；<br /> -p 显示友好设备名字，以方便查看，也可以和-d 和-n 参数结合使用，比如 -dp 或-np<br /> -r 内存和交换区占用统计；<br /> -R<br /> -t 这个选项对从文件读取数据有用，如果没有这个参数，会以本地时间为标准 读出；<br /> -u 报告CPU利用率的参数；<br /> -v 报告inode, 文件或其它内核表的资源占用信息；<br /> -w 报告系统交换活动的信息； 每少交换数据的个数；<br /> -W 报告系统交换活动吞吐信息；<br /> -x 用于监视进程的，在其后要指定进程的PID值；<br /> -X 用于监视进程的，但指定的应该是一个子进程ID；</code></div>
<p><font size="3"><b>sar 应用举例；</b></font></p>
<p><b>实例一：</b> 如果只用sar 命令，sar就是读取 /var/log/sa目录下最近系统状态文件。</p>
<div class="codeblock"><code>[root@localhost ~]# sar<br /> [root@localhost ~]# sar -A  注：读取/var/log/sa目录下所有文件数据；</code></div>
<p>如果我们想知道CPU的利用率；动态更新；下面的例子是每秒更新一次数据，总共更新五次；</p>
<pre>[root@localhost ~]# sar -u  1 5Linux 2.6.15-1.2054_FC5 (localhost.localdomain)         2006年05月12日
<b>时间              CPU    利用率    nice值    系统占用    IO占用  空闲</b>11时19分34秒       CPU     %user     %nice   %system   %iowait     %idle11时19分35秒       all      2.97      0.00      0.00      0.00     97.0311时19分36秒       all     11.11      0.00      9.09      0.00     79.8011时19分37秒       all     21.78      0.00      6.93      0.00     71.2911时19分38秒       all     15.00      0.00      0.00      0.00     85.0011时19分39秒       all      8.00      0.00      0.00      0.00     92.00Average:          all     11.78      0.00      3.19      0.00     85.03</pre>
<p> <b>注解：</b></p>
<p>CPU：表示机器内所有的CPU；<br /> %user 表示CPU的利用率；<br /> %nice 表示CPU在用户层优先级的百分比，0表示正常；<br /> %system  表示当系统运行时，在用户应用层上所占用的CPU百分比；<br /> %iowait  表示请求硬盘I/0数据流出时，所占用CPU的百分比；<br /> %idle   表示空闲CPU百分比，值越大系统负载越低；</p>
<p>您可以CPU利用率的动态信息输出到一个文本文件中，然后通过more 来查看。</p>
<div class="codeblock"><code>[root@localhost ~]# sar -u  1 5 &gt; sar000.txt<br /> [root@localhost ~]# more sar000.txt</code></div>
<p>也可以输出到一个二进制的文件中，然后通过sar来查看；</p>
<div class="codeblock"><code>[root@localhost ~]# sar -u  1 5 -o sar002<br /> [root@localhost ~]# sar -f sar002</code></div>
<p><b>注：</b>如果您把数据通过-o filename 输出到一个二进制的文件中，是不能用文件内容查看工具more 、less或cat来查看的，应该用sar工具来查看，要加-f参数；</p>
<p><b>实例二：</b>查看网络设备的吞吐情况；</p>
<p>比如我们让数据每秒更新一次，总共更新十次；</p>
<div class="codeblock"><code>[root@localhost ~]# sar -n DEV  2 5<br /> 时间     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s</code></div>
<pre><b>第一字段：</b>时间；<b>IFACE：</b>设备名；<b>rxpck/s:</b>每秒收到的包；<b>rxbyt/s：</b>每秒收到的所有包的体积；<b>txbyt/s：</b>每秒传输的所有包的体积；<b>rxcmp/s：</b>每秒收到数据切割压缩的包总数；<b>txcmp/s :</b>每秒传输的数据切割压缩的包的总数；<b>rxmcst/s:</b> 每秒收到的多点传送的包；</pre>
<p> 如果我们从事提取eth0设备（也就是网卡eth0)的信息；我们应该用grep 来过滤。然后再显示出来；</p>
<div class="codeblock"><code>[root@localhost ~]# sar -n DEV  2  5  |grep eth0<br /> 11时52分37秒      eth0  1.00  1.00   97.51   97.51   0.00    0.00      0.00<br /> 11时52分39秒      eth0  1.01  1.01   98.49   98.49   0.00    0.00      0.00<br /> 11时52分41秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00<br /> 11时52分43秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00<br /> 11时52分45秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00<br /> Average：   eth0   1.00  1.00  98.00   98.00   0.00    0.00      0.00</code></div>
<p>如果想知道网络设备错误报告，也就就是用来查看设备故障的。应该用EDEV；比如下面的例子；</p>
<div class="codeblock"><code>[root@localhost ~]# sar -n EDEV  2 5</code></div>
<p><font size="3" id="3.3"><b><br /> 3.3 iostat<br /> </b></font></p>
<p>iostat 是用来显示 系统即时系统，比如CPU使用率，硬盘设备的吞吐率；</p>
<pre>[root@localhost ~]# iostatLinux 2.6.15-1.2054_FC5 (localhost.localdomain)   2006年05月12日
avg-cpu:  %user   %nice %system %iowait   %idle           7.24    0.00    0.99    0.35   91.43
Device:   tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtnhda      1.46        28.43        21.43     710589     535680</pre>
<p> <font size="3" id="3.4"><b><br /> 3.4 mpstat<br /> </b></font></p>
<p>mpstat 提供多处理器系统中的CPU的利用率的统计；mpstat 也可以加参数，用-P来指定哪个 CPU，处理器的ID是从0开始的。下面的例子是查看两个处理器，每二秒数据更新一次，总共要显示10次数据；</p>
<div class="codeblock"><code>[root@localhost ~]# mpstat -P 0 2 10  注：查看第一个CPU<br /> [root@localhost ~]# mpstat -p 1 2 10  注：查看第二个CPU<br /> &lt;/code &gt;<br /> &lt;code&gt;<br /> [root@localhost ~]# mpstat 2 10  注：查看所有CPU；</code></div>
<p><font size="3" id="3.5"><b><br /> 3.5 sdaf<br /> </b></font></p>
<p>sdaf 能从二进制文件中提取sar所收集的数据；这个大家知道就行了。显示的并不是友好的格式；</p>
<div class="codeblock"><code>[root@localhost ~]# sar -u 2 5 -o sar003<br /> [root@localhost ~]# sadf  sar003</code></div>
<p>相对来说，用sar来读取输出文件的内容更好；比如下面的；</p>
<div class="codeblock"><code>[root@localhost ~]# sar -f sar003</code></div>
<p><font size="4" id="4"><b><br /> 4、  与Sysstat相似工具；<br /> </b></font></p>
<p><font size="3" id="4.1"><b><br /> 4.1  进程管理工具；<br /> </b></font></p>
<p>进程管理工具，包括ps 、pgrep、top、kill 、killall、pkill 等，请参考 <a rel="nofollow" target="_blank" href="http://www.linuxsir.org/main/?q=node/210">《 Linux 进程管理》</a></p>
<p><font size="3" id="4.2"><b><br /> 4.2  内存使用率查看工具；<br /> </b></font></p>
<p><b>内存使用量 free</b></p>
<p>free 工具既能查看物理内存，也能查看虚拟内存的用量；</p>
<div class="codeblock"><code>[root@localhost ~]# free</code></div>
<p>如果显示以单位M，则加-m参数；</p>
<div class="codeblock"><code>[root@localhost ~]# free -m<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;total       used       free     shared    buffers     cached<br /> Mem:           724        713         11          0         24        290<br /> -/+ buffers/cache:        398        326<br /> Swap:          800          0        800</code></div>
<p><font size="2"><b><br /> vmstat 即时显示内存工具；<br /> </b></font></p>
<p>vmstat 是一个即时显示内存使用情况的工具；</p>
<p><b>vmstat 使用方法：</b></p>
<div class="codeblock"><code>vmstat [-V] [-n] [delay [count]]<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-V 显示vmstat的版本；<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-n causes the headers not to be reprinted regularly.<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-a 显示所有激活和未激活内存的状态；print inactive/active page stats.<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-d 显示硬盘统计信息；prints disk statistics<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-D 显示硬盘分区表；prints disk table<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-p 显示硬盘分区读写状态等；prints disk partition statistics<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-s 显示内存使用情况；prints vm table<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-m prints slabinfo<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-S 定义单位，k K<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay 是两次刷新时间间隔；<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				单位体积： k:1000 K:1024 m:1000000 M:1048576 (默认是 K)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count 刷新次数；</code></div>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2006/05/29/%e7%b3%bb%e7%bb%9f%e7%8a%b6%e6%80%81%e6%9f%a5%e7%9c%8b%e5%b7%a5%e5%85%b7sysstat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《Solaris10红宝书》观感</title>
		<link>http://www.litrin.net/2006/05/10/%e3%80%8asolaris10%e7%ba%a2%e5%ae%9d%e4%b9%a6%e3%80%8b%e8%a7%82%e6%84%9f/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=%25e3%2580%258asolaris10%25e7%25ba%25a2%25e5%25ae%259d%25e4%25b9%25a6%25e3%2580%258b%25e8%25a7%2582%25e6%2584%259f</link>
		<comments>http://www.litrin.net/2006/05/10/%e3%80%8asolaris10%e7%ba%a2%e5%ae%9d%e4%b9%a6%e3%80%8b%e8%a7%82%e6%84%9f/#comments</comments>
		<pubDate>Wed, 10 May 2006 02:22:18 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[站长的blog]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[Unix]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=317</guid>
		<description><![CDATA[对于Solaris的理解，我是从linux过度过来的。原先一直以为Solaris只不过是另一种形式的Linux而已，后接触了真正Sparc平台上(v890)的Solaris才发现自己对于Solaris的理解竟然浅薄的要命。对于作为商业Unix精髓的系统管理软件（诸如Solaris的smc，AIX的smit）根本没有太多理解。在sun的技术支持网站上苦于英语水平有限，所以四处寻找介绍Solaris的专业书籍。 前些日子在淘宝上看到了由段风雷著，电子工业出版社出版的《Solaris10红宝书》，原价49，淘宝上带邮费总计41块，合85折。也正好弥补了我上次参加Sun没有拿到这本书的遗憾。 这本书总体感觉介绍的很详细，分安装、管理、高级管理、IP服务、internet服务五个具体方面介绍了solaris的在各个方面的应用和维护。随书附送了Solaris10(0106)的光盘，没有本地的系统做测试，学习这本书根本是不可能。虽然其中很多东西来自于sun的技术支持网站，但可以看得出作者翻译的很是用心，而且还在本地作了很多测试&#8212;&#8212;作为现在满天飞的IT工具书而言，这已经是非常不容易了。在这里对作者表示一下感谢！由于这本书的起点相对属于中上水平，对于新手可能缺乏&#8220;友好&#8221;，需要一定的Unix基础。 对于该书的内容本人下面发点牢骚： 个人感觉，作者在书中花了很多的篇幅去介绍了Java desktop，根本没有提及CDE的桌面。可能考虑到了很多读者其实只是业余爱好者，只是想把Solaria做一个桌面的环境来应用罢了。其实作为Solaris的强项是在server应用上的，更多接触应该是CDE的桌面而非JDS。ZFS系统，这个系统其实连Sun公司还处在实验阶段，根本没有必要提升到花费一个章的内容来介绍，况且随书附赠的Solaris版本根本不支持ZFS的文件系统，光盘上竟然说需要去下载一个Solaris Express来&#8220;感受&#8221;ZFS，下载几个补丁不就可以了？Internet服务和ip服务篇介绍了DHCP DNS和NIS，而对于WWW和作为Solaris王牌的数据库支持却没有提及（似乎只字未提），倍感蹊跷。可能是源于作者的精力有限，作者似乎仔细测试了安装、jds、SMC等部分，而对于Zone等新技术感觉作者只是翻译了一下，没有做仔细的测试。或者说作者可能是从solaris的旧版本过度过来的，新技术也是不太了解。错别字很多，随便翻了几下就发现好几处。 当然发了牢骚不是说这本书不好，这本书确是我所见到过中文图书中介绍solaris最好的了。总之吧，如果你跟我一样是solaris的&#8220;半吊子&#8221;，这本书还是很适合你的。]]></description>
			<content:encoded><![CDATA[<p>对于Solaris的理解，我是从linux过度过来的。原先一直以为Solaris只不过是另一种形式的Linux而已，后接触了真正Sparc平台上(v890)的Solaris才发现自己对于Solaris的理解竟然浅薄的要命。对于作为商业Unix精髓的系统管理软件（诸如Solaris的smc，AIX的smit）根本没有太多理解。在sun的技术支持网站上苦于英语水平有限，所以四处寻找介绍Solaris的专业书籍。</p>
<p>前些日子在淘宝上看到了由段风雷著，电子工业出版社出版的《Solaris10红宝书》，原价49，淘宝上带邮费总计41块，合85折。也正好弥补了我上次参加Sun没有拿到这本书的遗憾。</p>
<p><img width="360" height="480" alt="" src="/UserFiles/Image/solaris_book_100_0383.jpg" /></p>
<p>这本书总体感觉介绍的很详细，分安装、管理、高级管理、IP服务、internet服务五个具体方面介绍了solaris的在各个方面的应用和维护。随书附送了Solaris10(0106)的光盘，没有本地的系统做测试，学习这本书根本是不可能。虽然其中很多东西来自于sun的技术支持网站，但可以看得出作者翻译的很是用心，而且还在本地作了很多测试&mdash;&mdash;作为现在满天飞的IT工具书而言，这已经是非常不容易了。在这里对作者表示一下感谢！由于这本书的起点相对属于中上水平，对于新手可能缺乏&ldquo;友好&rdquo;，需要一定的Unix基础。</p>
<p>对于该书的内容本人下面发点牢骚：</p>
<p>个人感觉，作者在书中花了很多的篇幅去介绍了Java desktop，根本没有提及CDE的桌面。可能考虑到了很多读者其实只是业余爱好者，只是想把Solaria做一个桌面的环境来应用罢了。其实作为Solaris的强项是在server应用上的，更多接触应该是CDE的桌面而非JDS。<br />ZFS系统，这个系统其实连Sun公司还处在实验阶段，根本没有必要提升到花费一个章的内容来介绍，况且随书附赠的Solaris版本根本不支持ZFS的文件系统，光盘上竟然说需要去下载一个Solaris Express来&ldquo;感受&rdquo;ZFS，下载几个补丁不就可以了？<br />Internet服务和ip服务篇介绍了DHCP DNS和NIS，而对于WWW和作为Solaris王牌的数据库支持却没有提及（似乎只字未提），倍感蹊跷。<br />可能是源于作者的精力有限，作者似乎仔细测试了安装、jds、SMC等部分，而对于Zone等新技术感觉作者只是翻译了一下，没有做仔细的测试。或者说作者可能是从solaris的旧版本过度过来的，新技术也是不太了解。<br />错别字很多，随便翻了几下就发现好几处。</p>
<p>当然发了牢骚不是说这本书不好，这本书确是我所见到过中文图书中介绍solaris最好的了。总之吧，如果你跟我一样是solaris的&ldquo;半吊子&rdquo;，这本书还是很适合你的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2006/05/10/%e3%80%8asolaris10%e7%ba%a2%e5%ae%9d%e4%b9%a6%e3%80%8b%e8%a7%82%e6%84%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SystemV和BSD的区别</title>
		<link>http://www.litrin.net/2006/05/08/systemv%e5%92%8cbsd%e7%9a%84%e5%8c%ba%e5%88%ab/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=systemv%25e5%2592%258cbsd%25e7%259a%2584%25e5%258c%25ba%25e5%2588%25ab</link>
		<comments>http://www.litrin.net/2006/05/08/systemv%e5%92%8cbsd%e7%9a%84%e5%8c%ba%e5%88%ab/#comments</comments>
		<pubDate>Mon, 08 May 2006 00:36:47 +0000</pubDate>
		<dc:creator>Litrin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<guid isPermaLink="false">http://www.litrin.net/?p=314</guid>
		<description><![CDATA[目前，Unix操作系统不管其内核如何，其操作风格上主要分为SystemV（目前一般采用其第4个版本SVR4）和BSD两种。其代表操作系统本别是Solaris和FreeBSD。当然，在SunOS4（Solaris1.x）之前，Solaris采用了BSD的风格，而2.x之后，Solaris投奔了SystemV阵营，不得不说是一个叛逆。 SystemV的鼻祖正是1969年AT&#38;T开发的Unix，随着1993年Novell收购AT&#38;T后开放了Unix的商标，SystemV的风格也逐渐成为Unix厂商的标准。BSD的鼻祖是加州大学伯克利分校在1975年开发的BSDUnix，后被开源组织发展为现在众多的*BSD操作系统。 它们之间的区别主要为： &#160; Sytem V BSD Root脚本位置 /etc/init.d /etc/rc.d 默认Shell Bshell Cshell 文件系统数据 /etc/mnttab /etc/mtab 内核位置 /UNIX /vmUnix 打印机设备 lp rlp 字符串函数 memcopy bcopy 终端初始化设置文件 /etc/initab /etc/ttys 终端控制 termio termios 这里需要说明的是：Linux不能称为&#34;标准的Unix&#8220;而只被称为&#34; Unix Like&#34; 原因有一部分就是来自它的操作风格介乎两者之间，而且不同的厂商为了照顾不同的用户，各linux发行版本的操作风格之间也有不小的出入。]]></description>
			<content:encoded><![CDATA[<p>目前，Unix操作系统不管其内核如何，其操作风格上主要分为SystemV（目前一般采用其第4个版本SVR4）和BSD两种。其代表操作系统本别是Solaris和FreeBSD。当然，在SunOS4（Solaris1.x）之前，Solaris采用了BSD的风格，而2.x之后，Solaris投奔了SystemV阵营，不得不说是一个叛逆。</p>
<p>SystemV的鼻祖正是1969年AT&amp;T开发的Unix，随着1993年Novell收购AT&amp;T后开放了Unix的商标，SystemV的风格也逐渐成为Unix厂商的标准。BSD的鼻祖是加州大学伯克利分校在1975年开发的BSDUnix，后被开源组织发展为现在众多的*BSD操作系统。</p>
<p>它们之间的区别主要为：</p>
<table width="75%" cellspacing="1" cellpadding="1" border="1" align="center">
<tbody>
<tr>
<td style="text-align: center; font-weight: bold;">&nbsp;</td>
<td style="text-align: center; font-weight: bold;">Sytem V</td>
<td style="text-align: center; font-weight: bold;">BSD</td>
</tr>
<tr>
<td style="font-weight: bold;">Root脚本位置</td>
<td>/etc/init.d</td>
<td>/etc/rc.d</td>
</tr>
<tr>
<td style="font-weight: bold;">默认Shell</td>
<td>Bshell</td>
<td>Cshell</td>
</tr>
<tr>
<td style="vertical-align: top; font-weight: bold;">文件系统数据</td>
<td style="vertical-align: top;">/etc/mnttab</td>
<td style="vertical-align: top;">/etc/mtab</td>
</tr>
<tr>
<td style="vertical-align: top; font-weight: bold;">内核位置</td>
<td style="vertical-align: top;">/UNIX</td>
<td style="vertical-align: top;">/vmUnix</td>
</tr>
<tr>
<td style="vertical-align: top; font-weight: bold;">打印机设备</td>
<td style="vertical-align: top;">lp</td>
<td style="vertical-align: top;">rlp</td>
</tr>
<tr>
<td style="vertical-align: top; font-weight: bold;">字符串函数</td>
<td style="vertical-align: top;">memcopy</td>
<td style="vertical-align: top;">bcopy</td>
</tr>
<tr>
<td style="vertical-align: top; font-weight: bold;">终端初始化设置文件</td>
<td style="vertical-align: top;">/etc/initab</td>
<td style="vertical-align: top;">/etc/ttys</td>
</tr>
<tr>
<td style="vertical-align: top; font-weight: bold;">终端控制</td>
<td style="vertical-align: top;">termio</td>
<td style="vertical-align: top;">termios</td>
</tr>
</tbody>
</table>
<p>这里需要说明的是：Linux不能称为&quot;标准的Unix&ldquo;而只被称为&quot; Unix Like&quot; 原因有一部分就是来自它的操作风格介乎两者之间，而且不同的厂商为了照顾不同的用户，各linux发行版本的操作风格之间也有不小的出入。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.litrin.net/2006/05/08/systemv%e5%92%8cbsd%e7%9a%84%e5%8c%ba%e5%88%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
