<?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>温室小花.技术.博客 --纯粹的unix技术博客 &#187; redhat linux</title>
	<atom:link href="http://www.evanjiang.net.cn/archives/category/operating_system/redhat-linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.evanjiang.net.cn</link>
	<description>红颜弹指老，刹那芳华，与其天涯思君，恋恋不舍，莫若相忘于江湖！</description>
	<lastBuildDate>Sun, 05 Sep 2010 14:51:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Install MQ on Redhat Linux</title>
		<link>http://www.evanjiang.net.cn/archives/1461.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1461.html#comments</comments>
		<pubDate>Tue, 09 Feb 2010 09:14:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WebSphere]]></category>
		<category><![CDATA[redhat linux]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1461</guid>
		<description><![CDATA[<p>


 <p>To install MQ on RedHat  Linux please note following:
1.        Create group/user need from Control Center
a)        Log in as root. Create MQ groups and users from the yast2 Control Center.
1.        Log in as [...]]]></description>
			<content:encoded><![CDATA[<p style="float: left;margin: 4px;"><script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 160x600, 创建于 10-2-7 */
google_ad_slot = "8970910006";
google_ad_width = 160;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p> <p>To install MQ on RedHat  Linux please note following:<br />
1.        Create group/user need from Control Center<br />
a)        Log in as root. Create MQ groups and users from the yast2 Control Center.<br />
1.        Log in as root. Create MQ groups and users from the yast2 Control Center.<br />
  a. Create the mqm and mqbrkrs user groups:<br />
1) Click Security &#038; Users > Groups > Add a Group.<br />
2) Set the name field to mqm and create the user group.<br />
3) Create the mqbrkrs user group in the same way.</p>
<p>b. Create the mqm user:<br />
1) Click Security &#038; Users > Users > Add a User.<br />
2) Set the name field to mqm and create the user.<br />
3) Click Security &#038; Users > Change a Users Password > Passwords to add a password to the new user </p>
<p>c.Add the mqm and root users to the mqm group:<br />
1) Click Security &#038;Users > Users > Change / Show Characteristics of a User.<br />
2) Enter mqm in the User Name field. 50 IBM WebSphere Application Server: Getting Started<br />
3) Add mqm to the Group SET field, which is a comma-separated list of the groups to which the user belongs.<br />
4) Add root to the mqm group and the mqbrkrs group.<br />
Or Use Script:<br />
linux:~ # groupadd mqm<br />
linux:~ # groupadd mqbrkrs<br />
linux:~ # useradd -g mqm -G mqbrkrs -m mqm<br />
linux:~ # usermod -G mqm root<br />
Adding user root to group mqm<br />
linux:~ # gpasswd -a root mqbrkrs<br />
Adding user root to group mqbrkrs<br />
linux:~ # passwd mqm<br />
Changing password for mqm.<br />
New password:<br />
Re-enter new password:<br />
Password changed<br />
<span id="more-1461"></span><br />
linux:~ #<br />
b)        Copy&#038;mount CD17 to your target linux.Go to folder: CD17\WSMQ5302_LINUX\MQ5302<br />
c)        Run the mqlicense.sh script. If you want to view a text-only version of license, which can be read by a screen-reader, type:<br />
./mqlicense.sh -text_only<br />
The license is displayed.<br />
If want to accept the license without it being displayed, you can run the mqlicense.sh script with the -accept option.<br />
./mqlicense.sh -accept<br />
You must accept the license agreement before you can proceed with the installation.<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
NOTE: If you see below error message -><br />
Problem<br />
You install WebSphere- MQ v5.3 on Linux-. You run the &#8220;./mqlicense.sh -accept&#8221; command to accept the license and receive the following error:<br />
./mqlicense.sh: line 131: 18670 Segmentation fault<br />
${JRE?} -cp<br />
${LAPCLASSPATH?} com.ibm.lex.lapapp.LAP -l<br />
${PROGPATH?}/lap/licenses -s /tmp/mq_license<br />
${STATUSARG}<br />
${DISPLAYARG}<br />
ERROR: Installation will not succeed unless the license agreement can be accepted. If the error was caused by a display problem, read the         license agreement file in the &#8216;License&#8217; directory, and then run the following command:<br />
mqlicense.sh -accept<br />
Only use this command if you accept the license agreement. For other errors, contact your IBM support center.</p>
<p>You need to run below steps firstly -><br />
#1. Read the license agreement in the License directory<br />
#2. export LD_ASSUME_KERNEL=2.4.19<br />
#3. mkdir -p /tmp/mq_license/license<br />
#4. echo 9 > /tmp/mq_license/license/status.dat<br />
                or<br />
   touch /tmp/mq_license/license/status.dat<br />
d)        There the following rpm files: (You can only install the rpms in blue)<br />
MQSeriesRuntime-5.3.0-2.i386.rpm<br />
MQSeriesSDK-5.3.0-2.i386.rpm<br />
MQSeriesServer-5.3.0-2.i386.rpm<br />
MQSeriesJava-5.3.0-2.i386.rpm<br />
MQSeriesMan-5.3.0-2.i386.rpm<br />
MQSeriesSamples-5.3.0-2.i386.rpm<br />
MQSeriesClient-5.3.0-2.i386.rpm<br />
MQSeriseIES30&#8230;..rpm<br />
MQSeriseConfig&#8230;.rpm    (If you want to use MQ explorer on Linux, install these two RPM)</p>
<p>MQSeriesKeyMan-5.3.0-2.i386.rpm<br />
MQSeriesMsg_Zh_CN-5.3.0-2.i386.rpm<br />
MQSeriesMsg_Zh_TW-5.3.0-2.i386.rpm<br />
MQSeriesMsg_de-5.3.0-2.i386.rpm<br />
MQSeriesMsg_es-5.3.0-2.i386.rpm<br />
MQSeriesMsg_fr-5.3.0-2.i386.rpm<br />
MQSeriesMsg_it-5.3.0-2.i386.rpm<br />
MQSeriesMsg_ja-5.3.0-2.i386.rpm<br />
MQSeriesMsg_ko-5.3.0-2.i386.rpm<br />
MQSeriesMsg_pt-5.3.0-2.i386.rpm<br />
gsk6bas-6.0-3.33.i386.rpm<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
by command: rpm -ivh ***.rpm<br />
e)        Go to folder:\WSMQ5302_LINUX\MQ_CSD08<br />
f)        There the following rpm files: (You can only install the rpms in blue)<br />
MQSeriesRuntime-U497537-5.3.0-8.i386.rpm<br />
MQSeriesSDK-U497537-5.3.0-8.i386.rpm<br />
MQSeriesServer-U497537-5.3.0-8.i386.rpm<br />
MQSeriesJava-U497537-5.3.0-8.i386.rpm<br />
MQSeriesMan-U497537-5.3.0-8.i386.rpm<br />
MQSeriesClient-U497537-5.3.0-8.i386.rpm<br />
MQSeriesSamples-U497537-5.3.0-8.i386.rpm<br />
MQSeriseConfig&#8230;.rpm<br />
MQSeriseIES30&#8230;..rpm   (If you want to use MQ explorer on Linux, install these two RPM)</p>
<p>MQSeriesKeyMan-U497537-5.3.0-8.i386.rpm<br />
MQSeriesTXClient-U497537-5.3.0-8.i386.rpm<br />
MQSeriesFTA-U497537-5.3.0-8.i386.rpm<br />
gsk6bas-6.0-5.41.i386.rpm<br />
g)        Uninstall MQSeries<br />
In the MQSeries for Linux Quick Beginnings Book, it describes to uninstall all of the MQSeries files at once<br />
using the command:<br />
rpm -q -a | grep &#8220;MQSeries&#8221; | xargs rpm -e<br />
however, if a Queue Manager is running when you issue this command then only part of MQSeries will be uninstalled.<br />
From that point onwards you will be unable to stop any remaining Q-Managers or uninstall the remaining components.<br />
YOU MUST ENSURE THAT YOU STOP ALL RUNNING QUEUE MANAGERS BEFORE ATTEMPTING TO USE THIS COMMAND(stop WAS).<br />
If you do run this command, while a queue manager is running, then you will need to either reboot your machine or<br />
re-install the removed parts of MQSeries to allow you to stop the Queue Manager before you can fully complete the uninstallation.<br />
NOTE:<br />
There may some errors in the uninstall processing when you installed MQSeries patches, you can use command &#8216;<br />
rpm -q -a | grep &#8220;MQSeries&#8221;&#8216; to check which rpm pack still in the system and use command &#8216;rpm -e
<pack name>&#8216; to uninstall them from high level to low.<br />
If install fail, use rpm -ivh xxx.rpm &#8211;replacefiles to install again</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1461.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux 中命令yum的用法 (网上找的）</title>
		<link>http://www.evanjiang.net.cn/archives/1315.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1315.html#comments</comments>
		<pubDate>Sat, 10 Oct 2009 06:03:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[redhat linux]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1315</guid>
		<description><![CDATA[<p style="float: right;margin: 4px;">


</p> <p>前几天，为了搭建另外一个CENTOS服务器。好好研究了一下yum的用法，转将一篇从网上找的文章转贴于这里。方便俺日后查询吧。。</p>
<p>这个命令在查找安装盘中的rpm比较快，现在把常用的命令用法列一下，当笔记记录一下
1.列出所有可更新的软件清单
命令：yum check-update
2.安装所有更新软件
命令：yum update
3.仅安装指定的软件
命令：yum install
4.仅更新指定的软件
命令：yum update
5.列出所有可安裝的软件清单
命令：yum list
用YUM安装删除软件
装了系统添加删除软件是常事，yum同样可以胜任这一任务，只要软件是rpm安装的。
安装的命令是，yum install xxx，yum会查询数据库，有无这一软件包，如果有，则检查其依赖冲突关系，如果没有依赖冲突，那么最好，下载安装;如果有，则会给出提示，询问是否要同时安装依赖，或删除冲突的包，你可以自己作出判断。
删除的命令是，yum remove xxx，同安装一样，yum也会查询数据库，给出解决依赖关系的提示。
1.用YUM安装软件包
命令：yum install
2.用YUM删除软件包
命令：yum remove
用YUM查询软件信息
我 们常会碰到这样的情况，想要安装一个软件，只知道它和某方面有关，但又不能确切知道它的名字。这时yum的查询功能就起作用。你可以用 yum search keyword这样的命令来进行搜索，比如我们要则安装一个Instant Messenger，但又不知到底有哪些，这时不妨用 yum search messenger这样的指令进行搜索，yum会搜索所有可用rpm的描述，列出所有描述中和messeger有关的rpm包，于 是我们可能得到gaim，kopete等等，并从中选择。
有时我们还会碰到安装了一个包，但又不知道其用途，我们可以用yum info packagename这个指令来获取信息。
1.使用YUM查找软件包
命令：yum search
2.列出所有可安装的软件包
命令：yum list
3.列出所有可更新的软件包
命令：yum list updates
4.列出所有已安装的软件包
命令：yum list installed
5.列出所有已安装但不在 Yum Repository 內的软件包
命令：yum list extras
6.列出所指定的软件包

命令：yum list
7.使用YUM获取软件包信息
命令：yum info
8.列出所有软件包的信息
命令：yum info
9.列出所有可更新的软件包信息
命令：yum info updates
10.列出所有已安裝的软件包信息
命令：yum info installed
11.列出所有已安裝但不在 Yum Repository 內的软件包信息
命令：yum info extras
12.列出软件包提供哪些文件
命令：yum provides
清除YUM缓存
yum 会把下载的软件包和header存储在cache中，而不会自动删除。如果我们觉得它们占用了磁盘空间，可以使用yum clean指令进行清除，更精确 的用法是yum clean [...]]]></description>
			<content:encoded><![CDATA[<p>前几天，为了搭建另外一个CENTOS服务器。好好研究了一下yum的用法，转将一篇从网上找的文章转贴于这里。方便俺日后查询吧。。</p>
<p>这个命令在查找安装盘中的rpm比较快，现在把常用的命令用法列一下，当笔记记录一下<br />
1.列出所有可更新的软件清单<br />
命令：yum check-update<br />
2.安装所有更新软件<br />
命令：yum update<br />
3.仅安装指定的软件<br />
命令：yum install<br />
4.仅更新指定的软件<br />
命令：yum update<br />
5.列出所有可安裝的软件清单<br />
命令：yum list<br />
用YUM安装删除软件<br />
装了系统添加删除软件是常事，yum同样可以胜任这一任务，只要软件是rpm安装的。<br />
安装的命令是，yum install xxx，yum会查询数据库，有无这一软件包，如果有，则检查其依赖冲突关系，如果没有依赖冲突，那么最好，下载安装;如果有，则会给出提示，询问是否要同时安装依赖，或删除冲突的包，你可以自己作出判断。<br />
删除的命令是，yum remove xxx，同安装一样，yum也会查询数据库，给出解决依赖关系的提示。<br />
1.用YUM安装软件包<br />
命令：yum install<br />
2.用YUM删除软件包<br />
命令：yum remove<br />
用YUM查询软件信息<br />
我 们常会碰到这样的情况，想要安装一个软件，只知道它和某方面有关，但又不能确切知道它的名字。这时yum的查询功能就起作用。你可以用 yum search keyword这样的命令来进行搜索，比如我们要则安装一个Instant Messenger，但又不知到底有哪些，这时不妨用 yum search messenger这样的指令进行搜索，yum会搜索所有可用rpm的描述，列出所有描述中和messeger有关的rpm包，于 是我们可能得到gaim，kopete等等，并从中选择。<br />
有时我们还会碰到安装了一个包，但又不知道其用途，我们可以用yum info packagename这个指令来获取信息。<br />
1.使用YUM查找软件包<br />
命令：yum search<br />
2.列出所有可安装的软件包<br />
命令：yum list<br />
3.列出所有可更新的软件包<br />
命令：yum list updates<br />
4.列出所有已安装的软件包<br />
命令：yum list installed<br />
5.列出所有已安装但不在 Yum Repository 內的软件包<br />
命令：yum list extras<br />
6.列出所指定的软件包<br />
<span id="more-1315"></span><br />
命令：yum list<br />
7.使用YUM获取软件包信息<br />
命令：yum info<br />
8.列出所有软件包的信息<br />
命令：yum info<br />
9.列出所有可更新的软件包信息<br />
命令：yum info updates<br />
10.列出所有已安裝的软件包信息<br />
命令：yum info installed<br />
11.列出所有已安裝但不在 Yum Repository 內的软件包信息<br />
命令：yum info extras<br />
12.列出软件包提供哪些文件<br />
命令：yum provides<br />
清除YUM缓存<br />
yum 会把下载的软件包和header存储在cache中，而不会自动删除。如果我们觉得它们占用了磁盘空间，可以使用yum clean指令进行清除，更精确 的用法是yum clean headers清除header，yum clean packages清除下载的rpm包，yum clean all一 股脑儿端<br />
1.清除缓存目录(/var/cache/yum)下的软件包<br />
命令：yum clean packages<br />
2.清除缓存目录(/var/cache/yum)下的 headers<br />
命令：yum clean headers<br />
3.清除缓存目录(/var/cache/yum)下旧的 headers<br />
命令：yum clean oldheaders<br />
4.清除缓存目录(/var/cache/yum)下的软件包及旧的headers<br />
命令：yum clean, yum clean all (= yum clean packages; yum clean oldheaders)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1315.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mirrors.163.com的yum配置文件(从网上找的）</title>
		<link>http://www.evanjiang.net.cn/archives/1312.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1312.html#comments</comments>
		<pubDate>Fri, 09 Oct 2009 04:22:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1312</guid>
		<description><![CDATA[<p>从网上找得163. com的yum设置源。。。</p>
<p>如果强制使用5的源（用于升级系统到centos5），如下：
[base]
name=CentOS-5 – Base
baseurl=http://mirrors.163.com/centos/5/os/x86_64/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[updates]
name=CentOS-5 – Updates
baseurl=http://mirrors.163.com/centos/5/updates/x86_64/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
＃这里是设置centos4的源
如果根据系统使用源，则如下：
[base]
name=CentOS-$releasever ¨C Base
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[updates]

name=CentOS-$releasever  Updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[addons]
name=CentOS-$releasever  Addons
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[extras]
name=CentOS-$releasever  Extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[centosplus]
name=CentOS-$releasever  Plus
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</p>
]]></description>
			<content:encoded><![CDATA[<p>从网上找得163. com的yum设置源。。。</p>
<p>如果强制使用5的源（用于升级系统到centos5），如下：<br />
[base]<br />
name=CentOS-5 – Base<br />
baseurl=http://mirrors.163.com/centos/5/os/x86_64/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5<br />
[updates]<br />
name=CentOS-5 – Updates<br />
baseurl=http://mirrors.163.com/centos/5/updates/x86_64/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5<br />
＃这里是设置centos4的源<br />
如果根据系统使用源，则如下：<br />
[base]<br />
name=CentOS-$releasever ¨C Base<br />
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5<br />
[updates]<br />
<span id="more-1312"></span><br />
name=CentOS-$releasever  Updates<br />
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5<br />
[addons]<br />
name=CentOS-$releasever  Addons<br />
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5<br />
[extras]<br />
name=CentOS-$releasever  Extras<br />
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5<br />
[centosplus]<br />
name=CentOS-$releasever  Plus<br />
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/<br />
gpgcheck=1<br />
enabled=0<br />
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1312.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos4.2 下yum 安装apache2 mysql4 php4 笔记</title>
		<link>http://www.evanjiang.net.cn/archives/1310.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1310.html#comments</comments>
		<pubDate>Fri, 09 Oct 2009 04:13:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1310</guid>
		<description><![CDATA[<p>由于网站国庆中秋假期出了点问题，是网站服务器管理员人为因素造成的网站不能访问。俺深思之下，决定外迁网站，就跟其它相熟的网友伸请一个免费的VPS主机，空间不大那种。，但空间完全让俺管理，没有其它网站服务的。而且环境还是裸机环境，也就是除了基本系统，以及一个yum外。没有其它网络服务在运行。也就是apache mysql,php环境要自已完全搭建。在搭建apache mysql php环境虽遇到一些波折。但也学习懂得许多，也了解到更多，同时，也精进俺在linux/unix的服务器维护以及以及数据库维护持术。由于俺很久没用linux，以往也少用yum这种软件版本升级安装工具。所以，俺也借此环境搭建，熟悉了yum这种软件版本升级安装工具，以及相关命令。。。。
由于服友的vps 系统是centos 4.2 所以，也只能安装apache2,mysql4,php4 ，可能由yum源的限制，centos 4只能安装apache2,mysql4,php4 ,暂时没有找到可以在centos4.安装apache2,mysql5,php5的源。当然，俺从中也懂得如何修改yum的源。俺之前都说，俺很少用yum。这些也顺便熟悉yum源的设置与相关命令使用。。　
俺在安装apache2,mysql4,php4时，借鉴一些网上的文档，由于网上的文档千篇一律，大同小异，并且都没有什么验证过。致使俺在安装amp环境时，遇到一些疑惑或者问题，但后来都懂过经验来判断解决。。。下面就是俺的安装笔记。跟网上一些文档有些区别，算是俺的修订版吧。。。</p>
<p>
centos  用yum来管理安装Apache+PHP+Mysql的基本安装。
1. 安装Apahce, PHP, Mysql, 以及php连接mysql库组件。
yum -y install httpd php mysql mysql-server php-mysql
Yum  -y install mysql*
2. 配置开机启动服务
/sbin/chkconfig httpd on             [设置apache服务器httpd服务开机启动]
/sbin/chkconfig &#8211;add mysqld         [在服务清单中添加mysql服务]
/sbin/chkconfig mysqld [...]]]></description>
			<content:encoded><![CDATA[<p>由于网站国庆中秋假期出了点问题，是网站服务器管理员人为因素造成的网站不能访问。俺深思之下，决定外迁网站，就跟其它相熟的网友伸请一个免费的VPS主机，空间不大那种。，但空间完全让俺管理，没有其它网站服务的。而且环境还是裸机环境，也就是除了基本系统，以及一个yum外。没有其它网络服务在运行。也就是apache mysql,php环境要自已完全搭建。在搭建apache mysql php环境虽遇到一些波折。但也学习懂得许多，也了解到更多，同时，也精进俺在linux/unix的服务器维护以及以及数据库维护持术。由于俺很久没用linux，以往也少用yum这种软件版本升级安装工具。所以，俺也借此环境搭建，熟悉了yum这种软件版本升级安装工具，以及相关命令。。。。<br />
由于服友的vps 系统是centos 4.2 所以，也只能安装apache2,mysql4,php4 ，可能由yum源的限制，centos 4只能安装apache2,mysql4,php4 ,暂时没有找到可以在centos4.安装apache2,mysql5,php5的源。当然，俺从中也懂得如何修改yum的源。俺之前都说，俺很少用yum。这些也顺便熟悉yum源的设置与相关命令使用。。　<br />
俺在安装apache2,mysql4,php4时，借鉴一些网上的文档，由于网上的文档千篇一律，大同小异，并且都没有什么验证过。致使俺在安装amp环境时，遇到一些疑惑或者问题，但后来都懂过经验来判断解决。。。下面就是俺的安装笔记。跟网上一些文档有些区别，算是俺的修订版吧。。。</p>
<p><span id="more-1310"></span><br />
centos  用yum来管理安装Apache+PHP+Mysql的基本安装。<br />
1. 安装Apahce, PHP, Mysql, 以及php连接mysql库组件。<br />
yum -y install httpd php mysql mysql-server php-mysql<br />
Yum  -y install mysql*<br />
2. 配置开机启动服务<br />
/sbin/chkconfig httpd on             [设置apache服务器httpd服务开机启动]<br />
/sbin/chkconfig &#8211;add mysqld         [在服务清单中添加mysql服务]<br />
/sbin/chkconfig mysqld on             [设置mysql服务开机启动]<br />
/sbin/service httpd start            [启动httpd服务,与开机启动无关]<br />
/sbin/service mysqld start           [启动mysql服务,与开机无关]</p>
<p>Yum 安装的mysql下自动生成my.cnf没法正常使用。致使mysql无法正常启动。必需手工编辑一个新的my.cnf 文件。<br />
但就是在这点花费大量时间去排查与查文档。查了大量文档，都没有查到，最后才在一个外国网站查到有人说，centos4　默认yum安装mysql 所产生的my.cnf有问题。所以，俺才将排查重点放在my.cnf　上面。最后，在网上顺便找一个my.cnf配置代替原有的my.cnf ，之后，mysql就启动成功。。<br />
 My.cnf内容如下：<br />
[client]<br />
#password      = your_password<br />
port            = 3306<br />
socket          = /var/lib/mysql/mysql.sock </p>
<p>[mysqld]<br />
port            = 3306<br />
socket          = /var/lib/mysql/mysql.sock<br />
skip-locking<br />
key_buffer = 16M<br />
max_allowed_packet = 1M<br />
table_cache = 64<br />
sort_buffer_size = 512K<br />
net_buffer_length = 8K<br />
read_buffer_size = 256K<br />
read_rnd_buffer_size = 512K<br />
myisam_sort_buffer_size = 8M<br />
skip-innodb </p>
<p>log-bin<br />
server-id      = 1<br />
[mysqldump]<br />
quick<br />
max_allowed_packet = 16M </p>
<p>[mysql]<br />
no-auto-rehash<br />
# Remove the next comment character if you are not familiar with SQL<br />
#safe-updates </p>
<p>[isamchk]<br />
key_buffer = 20M<br />
sort_buffer_size = 20M<br />
read_buffer = 2M<br />
write_buffer = 2M </p>
<p>[myisamchk]<br />
key_buffer = 20M<br />
sort_buffer_size = 20M<br />
read_buffer = 2M<br />
write_buffer = 2M </p>
<p>[mysqlhotcopy]<br />
interactive-timeout<br />
再运行 /sbin/service mysqld start  mysql 就运行成功。<br />
3.设置mysql数据库root帐号密码。<br />
mysqladmin -u root password &#8216;newpassword&#8217;           [引号内填密码]<br />
4. 让mysql数据库更安全<br />
mysql -u root -p<br />
mysql> DROP DATABASE test;                            [删除test数据库]<br />
mysql> DELETE FROM mysql.user WHERE user = &#8221;;        [删除匿名帐户]<br />
mysql> FLUSH PRIVILEGES;                              [重载权限]<br />
5. 按照以上的安装方式, 配置出来的默认站点目录为/var/www/html/<br />
//安装apache扩展<br />
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql<br />
//安装php的扩展<br />
yum install php-gd<br />
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc<br />
//安装mysql扩展<br />
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1310.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos 5.3服务器配置nginx php mysql pureftpd备忘录</title>
		<link>http://www.evanjiang.net.cn/archives/1275.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1275.html#comments</comments>
		<pubDate>Tue, 11 Aug 2009 16:10:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1275</guid>
		<description><![CDATA[<p>服务器硬件环境：vps/20G硬盘/256M内存
服务器系统：centos 5.3 32位
WEB服务器所有相关软件：nginx/php/mysql/pureftpd/eaccelerator/ZendOptimizer/pcre等
系统安装：text文本安装，无任何软件。
1dmesg查看有无错误
升级系统到最新yum -y update
关闭防火墙
#service iptables stop
#chkconfig iptables off
2关闭selinux
使用文本编辑工具打开 /etc/selinux/config
把 SELINUX=enforcing 注释掉：#SELINUX=enforcing ，然后新加一行为：SELINUX=disabled
保存，关闭。
3停止ipv6
vi /etc/sysconfig/network
NETWORKING_IPV6=no
网上所说的下面这种方法会在启动时报错。千万不要乱用。
vi /etc/modprobe.conf
在文件末尾加上
alias net-pf-10 off
alias ipv6 off
4修改SSH配置
vi /etc/ssh/sshd_config
禁止空密码登录
找到
#PermitEmptyPasswords no
去掉前面的 #
5:yum升级
yum install yum-fastestmirror -y
yum upgrade -y
yum install wget #安装wget
yum install setuptool #安装setup
yum install gcc gcc-c++ autoconf vixie-cron #vixie-cron软件包是cron的主程序
yum install gcc gcc-c++ autoconf crontabs #crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序

yum install make #安装make
LANG=C
yum -y install gcc gcc-c++ autoconf [...]]]></description>
			<content:encoded><![CDATA[<p>服务器硬件环境：vps/20G硬盘/256M内存<br />
服务器系统：centos 5.3 32位<br />
WEB服务器所有相关软件：nginx/php/mysql/pureftpd/eaccelerator/ZendOptimizer/pcre等<br />
系统安装：text文本安装，无任何软件。<br />
1dmesg查看有无错误<br />
升级系统到最新yum -y update<br />
关闭防火墙<br />
#service iptables stop<br />
#chkconfig iptables off<br />
2关闭selinux<br />
使用文本编辑工具打开 /etc/selinux/config<br />
把 SELINUX=enforcing 注释掉：#SELINUX=enforcing ，然后新加一行为：SELINUX=disabled<br />
保存，关闭。<br />
3停止ipv6<br />
vi /etc/sysconfig/network<br />
NETWORKING_IPV6=no<br />
网上所说的下面这种方法会在启动时报错。千万不要乱用。<br />
vi /etc/modprobe.conf<br />
在文件末尾加上<br />
alias net-pf-10 off<br />
alias ipv6 off<br />
4修改SSH配置<br />
vi /etc/ssh/sshd_config<br />
禁止空密码登录<br />
找到<br />
#PermitEmptyPasswords no<br />
去掉前面的 #<br />
5:yum升级<br />
yum install yum-fastestmirror -y<br />
yum upgrade -y<br />
yum install wget #安装wget<br />
yum install setuptool #安装setup<br />
yum install gcc gcc-c++ autoconf vixie-cron #vixie-cron软件包是cron的主程序<br />
yum install gcc gcc-c++ autoconf crontabs #crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序<br />
<span id="more-1275"></span><br />
yum install make #安装make<br />
LANG=C<br />
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2<br />
libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl<br />
-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel<br />
nss_ldap openldap-clients openldap-servers<br />
6:修改时区<br />
修改Linux时区为东八区<br />
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime<br />
将系统时间设定成2009年07月22日的命令如下。<br />
#date -s 07/22/09<br />
将系统时间设定成下午4点45分0秒的命令如下。<br />
#date -s 16:45:00<br />
#clock -w #这个命令强制把系统时间写入CMOS<br />
7:优化Linux内核参数<br />
vi /etc/sysctl.conf#在末尾增加以下内容：<br />
# Add<br />
net.ipv4.tcp_max_syn_backlog = 65536<br />
net.core.netdev_max_backlog =  32768<br />
net.core.somaxconn = 32768<br />
net.core.wmem_default = 8388608<br />
net.core.rmem_default = 8388608<br />
net.core.rmem_max = 16777216<br />
net.core.wmem_max = 16777216<br />
net.ipv4.tcp_timestamps = 0<br />
net.ipv4.tcp_synack_retries = 2<br />
net.ipv4.tcp_syn_retries = 2<br />
net.ipv4.tcp_tw_recycle = 1<br />
#net.ipv4.tcp_tw_len = 1<br />
net.ipv4.tcp_tw_reuse = 1<br />
net.ipv4.tcp_mem = 94500000 915000000 927000000<br />
net.ipv4.tcp_max_orphans = 3276800<br />
#net.ipv4.tcp_fin_timeout = 30<br />
#net.ipv4.tcp_keepalive_time = 120<br />
net.ipv4.ip_local_port_range = 1024  65535<br />
使配置立即生效：/sbin/sysctl -p<br />
重启系统。<br />
编译安装PHP 5.2.10所需的支持库<br />
tar zxvf libiconv-1.13.tar.gz<br />
cd libiconv-1.13/<br />
./configure –prefix=/usr/local<br />
make<br />
make install<br />
cd ../<br />
tar zxvf libmcrypt-2.5.8.tar.gz<br />
cd libmcrypt-2.5.8/<br />
./configure<br />
make<br />
make install<br />
/sbin/ldconfig<br />
cd libltdl/<br />
./configure –enable-ltdl-install<br />
make<br />
make install<br />
cd ../../<br />
tar zxvf mhash-0.9.9.9.tar.gz<br />
cd mhash-0.9.9.9/<br />
./configure<br />
make<br />
make install<br />
cd ../<br />
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la<br />
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so<br />
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4<br />
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8<br />
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a<br />
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la<br />
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so<br />
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2<br />
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1<br />
tar zxvf mcrypt-2.6.8.tar.gz<br />
cd mcrypt-2.6.8/<br />
/sbin/ldconfig<br />
./configure<br />
make<br />
make install<br />
cd ../<br />
编译安装MySQL<br />
/usr/sbin/groupadd mysql<br />
/usr/sbin/useradd -g mysql mysql<br />
tar zxvf mysql-5.0.51a.tar.gz<br />
cd mysql-5.0.51a/<br />
./configure –prefix=/usr/local/mysql –localstatedir=/var/lib/mysql –with-mysqld-user=mysql –without-debug –<br />
with-big-tables –with-charset=utf8 –with-extra-charsets=all –with-pthread –enable-static –enable-thread-safe-<br />
client –with-client-ldflags=-all-static –with-mysqld-ldflags=-all-static –enable-assembler –without-innodb –<br />
without-ndb-debug –without-isam<br />
make<br />
make install<br />
chown -R mysql /usr/local/mysql<br />
chgrp -R mysql /usr/local/mysql<br />
./scripts/mysql_install_db –user=mysql –datadir=/var/lib/mysql<br />
chown -R mysql /var/lib/mysql<br />
chgrp -R mysql /var/lib/mysql<br />
chown -R mysql /var/lib/mysql/mysql/<br />
#cp my.cnf /data0/mysql/3306/my.cnf<br />
#cp mysql /data0/mysql/3306/mysql<br />
chmod +x /data0/mysql/3306/mysql<br />
启动MySQL<br />
/data0/mysql/3306/mysql start<br />
通过命令行登录管理MySQL服务器（提示输入密码时直接回车）：<br />
/usr/local/mysql/bin/mysql -u root -p -S /tmp/mysql.sock<br />
update user set password=password(’123456′) where user=’root’;<br />
停止MySQL<br />
/data0/mysql/3306/mysql stop<br />
netstat -atln<br />
编译安装PHP（FastCGI模式）<br />
tar zxvf php-5.2.10.tar.gz<br />
yum install patch<br />
gzip -cd php-5.2.10-fpm-0.5.11.diff.gz | patch -d php-5.2.10 -p1<br />
cd php-5.2.10/<br />
./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with<br />
-mysqli=/usr/local/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-<br />
png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-discard-path –enable-safe-mode –<br />
enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable<br />
-mbregex –enable-fastcgi –enable-fpm –enable-force-cgi-redirect –enable-mbstring –with-mcrypt –with-gd –<br />
enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-ldap –with-ldap-sasl –<br />
with-xmlrpc –enable-zip –enable-soap –without-pear –enable-pdo –with-pdo-sqlite –with-pdo-<br />
mysql=/usr/local/mysql/bin/mysql_config<br />
make ZEND_EXTRA_LIBS=’-liconv’<br />
make install<br />
cp php.ini-dist /usr/local/php/etc/php.ini<br />
tar jxvf eaccelerator-0.9.5.3.tar.bz2<br />
cd eaccelerator-0.9.5.3/<br />
/usr/local/php/bin/phpize<br />
./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config<br />
make<br />
make install<br />
cd ../<br />
mkdir -p /usr/local/eaccelerator_cache<br />
#echo php.ini<br />
zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so”<br />
eaccelerator.shm_size=”64″<br />
eaccelerator.cache_dir=”/usr/local/eaccelerator_cache”<br />
eaccelerator.enable=”1″<br />
eaccelerator.optimizer=”1″<br />
eaccelerator.check_mtime=”1″<br />
eaccelerator.debug=”0″<br />
eaccelerator.filter=”&#8221;<br />
eaccelerator.shm_max=”0″<br />
eaccelerator.shm_ttl=”3600″<br />
eaccelerator.shm_prune_period=”3600″<br />
eaccelerator.shm_only=”0″<br />
eaccelerator.compress=”1″<br />
eaccelerator.compress_level=”9″<br />
rm -f /usr/local/php/etc/php-fpm.conf<br />
vi /usr/local/php/etc/php-fpm.conf<br />
启动php-cgi进程，监听127.0.0.1的9000端口，进程数为200（如果服务器内存小于3GB，可以只开启64个进程）<br />
ulimit -SHn 51200<br />
/usr/local/php/sbin/php-fpm start<br />
注：/usr/local/php/sbin/php-fpm还有其他参数，包括：start|stop|quit|restart|reload|logrotate，修改php.ini后不重启php<br />
-cgi，重新加载配置文件使用reload<br />
/usr/sbin/groupadd www<br />
/usr/sbin/useradd -g www www<br />
mkdir -p /data0/htdocs/blog<br />
chmod +w /data0/htdocs/blog<br />
chown -R www:www /data0/htdocs/blog<br />
mkdir -p /data0/htdocs/www<br />
chmod +w /data0/htdocs/www<br />
chown -R www:www /data0/htdocs/www<br />
安装Nginx所需的pcre库<br />
tar zxvf pcre-7.9.tar.gz<br />
cd pcre-7.9/<br />
./configure<br />
make &#038;&#038; make install<br />
cd ../<br />
tar zxvf nginx-0.8.4.tar.gz<br />
cd nginx-0.8.4/<br />
./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module<br />
make &#038;&#038; make install<br />
cd ../<br />
创建Nginx日志目录<br />
mkdir -p /data1/logs<br />
chmod +w /data1/logs<br />
chown -R www:www /data1/logs<br />
启动Nginx<br />
ulimit -SHn 51200<br />
/usr/local/nginx/sbin/nginx<br />
修改/usr/local/nginx/conf/nginx.conf配置文件后，请执行以下命令检查配置文件是否正确<br />
/usr/local/nginx/sbin/nginx -t<br />
kill -HUP `cat /usr/local/nginx/nginx.pid`<br />
#cp cut_nginx_log.sh /usr/local/nginx/sbin/cut_nginx_log.sh<br />
设置crontab，每天凌晨00:00切割nginx访问日志<br />
配置开机自动启动Nginx + PHP<br />
ulimit -SHn 51200<br />
/usr/local/php/sbin/php-fpm start<br />
/usr/local/nginx/sbin/nginx<br />
/data0/mysql/3306/mysql start<br />
安装ZendOptimizer，<br />
# tar zxvf ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz<br />
# cd ZendOptimizer-3.0.1-linux-glibc21-i386<br />
# ./install.sh<br />
安装pureftpd<br />
tar -zxvf pure-ftpd*<br />
cd pure-ftpd-1.0.21<br />
./configure –prefix=/usr/local/pureftpd  –with-puredb  –with-rfc2640  –with-language=simplified-chinese;<br />
make &#038;&#038; make install<br />
mkdir /usr/local/pureftpd/etc<br />
cd configuration-file<br />
chmod u+x pure-config.pl<br />
cp pure-config.pl /usr/local/pureftpd/bin<br />
cp pure-ftpd.conf /usr/local/pureftpd/etc<br />
cd ..<br />
cp pureftpd* /usr/local/pureftpd/etc/<br />
#ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2<br />
修改配置文件<br />
vim /usr/local/pureftpd/etc/pure-ftpd.conf<br />
NoAnonymous                 yes<br />
Bind                     222.73.*.*,*<br />
添加系统用户<br />
groupadd ftpgroup<br />
useradd -g ftpgroup -d /dev/null -s /sbin/nologin ftpuser<br />
chown ftpuser:ftpgroup /data0/htdocs/www<br />
chmod -R 777 /data0/htdocs/www<br />
/usr/local/pureftpd/bin/pure-pw useradd learsu  -u ftpuser -d /data0/htdocs/www  -r 125.41.143.78<br />
更新虚拟账户文件<br />
/usr/local/pureftpd/bin/pure-pw mkdb /usr/local/pureftpd/etc/pureftpd.pdb  /usr/local/pureftpd/etc/pureftpd.passwd<br />
虚拟账户启动<br />
/usr/local/pureftpd/sbin/pure-ftpd  -j -l puredb:/usr/local/pureftpd/etc/pureftpd.pdb &#038;<br />
虚拟账户修改<br />
/usr/local/pureftpd/bin/pure-pw usermod learsu  -r 125.41.143.78<br />
虚拟账户删除<br />
/usr/local/pureftpd/bin/pure-pw userdel <login> [-f
<passwd file>] [-m]<br />
改变用户口令<br />
/usr/local/pureftpd/bin/pure-pw <login> [-f
<passwd file>] [-m]<br />
显示用户信息<br />
/usr/local/pureftpd/bin/pure-pw show <login> [-f
<passwd file>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1275.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos5.2安装+apache+php+mysql+gd+zend+phpmyadmin</title>
		<link>http://www.evanjiang.net.cn/archives/1272.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1272.html#comments</comments>
		<pubDate>Sat, 08 Aug 2009 07:16:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1272</guid>
		<description><![CDATA[<p>centos5.2是采用最小化的安装，全部的软件都是采用编译安装，软件基本都是最新版本。</p>
<p>1 安装</p>
<p>1.1 CentOS5.2
? 所有需要安装的包都放在/usr/src下，解压也是解压在/usr/src下。
? 所有的软件都是安装在/usr/local下。</p>
<p>1.2 基本信息
? vmware workstation 6.2
? 创建一个redhat as 5.0 vm
? 8g硬盘，160m内存，去掉声卡，软驱
? ip：192.168.1.168
? 掩码：255.255.255.0
? 网关：192.168.1.1
? dns：192.168.1.1
? hostname:centos</p>
<p>1.3 最小化安装
通过命令行的方式进行安装，所有的选择都是采用缺省的，
时区选择：中国
语言：英语
安装了342个包，占用空间是536m，不选择任何组件</p>
<p>1.4 分区
/swap:320
/ :全部空间</p>
<p>2 基本命令使用</p>
<p>2.1 VI
进入编辑状态：i
退出编辑状态：Esc
到第一行：gg
到最後一行：G
到某一行：xxG
到行首：0
到行末：$
复制：yy
贴上：p
复原：u
删整行：dd
删除全部内容：dG
显示行数：:set nu
不显示行数：:set nonu
搜寻：/、再次搜寻：n
储存：:w
离开：:q
储存兼离开：:wq 或 shift+zz
强制离开（不储存）：:q!
2.2 yum
更新：yum update
安装：yum install xxx
移除：yum remove xxx
清除已经安装过的档案（/var/cache/yum/）：yum clean all
搜寻：yum search xxx
列出所有档案：yum list
查询档案讯息：yum info xxx
群组安装功能：
yum grouplist
yum groupinstall &#8220;Web Server&#8221;

2.3 rpm
安装：rpm -ivh xxx
移除：rpm -e xxx
升级：rpm -Uvh xxx
查询：
查询所有安装的包： rpm -qa
查询某个包：rpm -qa [...]]]></description>
			<content:encoded><![CDATA[<p>centos5.2是采用最小化的安装，全部的软件都是采用编译安装，软件基本都是最新版本。</p>
<p>1 安装</p>
<p>1.1 CentOS5.2<br />
? 所有需要安装的包都放在/usr/src下，解压也是解压在/usr/src下。<br />
? 所有的软件都是安装在/usr/local下。</p>
<p>1.2 基本信息<br />
? vmware workstation 6.2<br />
? 创建一个redhat as 5.0 vm<br />
? 8g硬盘，160m内存，去掉声卡，软驱<br />
? ip：192.168.1.168<br />
? 掩码：255.255.255.0<br />
? 网关：192.168.1.1<br />
? dns：192.168.1.1<br />
? hostname:centos</p>
<p>1.3 最小化安装<br />
通过命令行的方式进行安装，所有的选择都是采用缺省的，<br />
时区选择：中国<br />
语言：英语<br />
安装了342个包，占用空间是536m，不选择任何组件</p>
<p>1.4 分区<br />
/swap:320<br />
/ :全部空间</p>
<p>2 基本命令使用</p>
<p>2.1 VI<br />
进入编辑状态：i<br />
退出编辑状态：Esc<br />
到第一行：gg<br />
到最後一行：G<br />
到某一行：xxG<br />
到行首：0<br />
到行末：$<br />
复制：yy<br />
贴上：p<br />
复原：u<br />
删整行：dd<br />
删除全部内容：dG<br />
显示行数：:set nu<br />
不显示行数：:set nonu<br />
搜寻：/、再次搜寻：n<br />
储存：:w<br />
离开：:q<br />
储存兼离开：:wq 或 shift+zz<br />
强制离开（不储存）：:q!<br />
2.2 yum<br />
更新：yum update<br />
安装：yum install xxx<br />
移除：yum remove xxx<br />
清除已经安装过的档案（/var/cache/yum/）：yum clean all<br />
搜寻：yum search xxx<br />
列出所有档案：yum list<br />
查询档案讯息：yum info xxx<br />
群组安装功能：<br />
yum grouplist<br />
yum groupinstall &#8220;Web Server&#8221;<br />
<span id="more-1272"></span><br />
2.3 rpm<br />
安装：rpm -ivh xxx<br />
移除：rpm -e xxx<br />
升级：rpm -Uvh xxx<br />
查询：<br />
查询所有安装的包： rpm -qa<br />
查询某个包：rpm -qa | grep xxx<br />
rpm -qi xxx<br />
查询软件的安装路径：rpm -ql xxx<br />
rpm -qc xxx<br />
查询某个文件是那个rpm包产生：rpm -qf /etc/yum.conf<br />
rpm -qpi xxx<br />
2.4 chkconfig<br />
查看所有服务：chkconfig &#8211;list<br />
查看3启动的状态：chkconfig &#8211;list | grep 3n<br />
把某些服务设置为启动：chkconfig &#8211;level 345 xxx on<br />
把某些服务设置当前启动：chkconfig xxx on<br />
列出某项服务：chkconfig &#8211;list xxx</p>
<p>2.5 查看系统状态<br />
查看系统使用字符集：echo $LANG $LANGUAGE<br />
环境变量：set</p>
<p>2.6 解压<br />
如果是以gz結尾的如：test.tar.gz<br />
tar zxvf test.tar.gz<br />
如果是以bz或bz2結尾如：test.tar.bz2<br />
tar jxvf test.tar.bz2</p>
<p>2.7 基本信息查看和修改<br />
查看 IP：ifconfig<br />
修改 IP：<br />
运行命令：system-config-network-tui<br />
或修改：/etc/sysconfig/network-scripts/ifcfg-eth0<br />
FQDN 设定：<br />
hostname<br />
more /etc/hosts<br />
more /etc/sysconfig/network<br />
修改计算机名字<br />
1：vi /etc/sysconfig/network<br />
2：vi /etc/hosts<br />
如果通过<br />
hostname xxx<br />
来修改计算机名字，则重新启动后就不起作用<br />
DNS 设定：<br />
vi /etc/resolv.conf<br />
nameserver 192.168.1.1<br />
nameserver 202.106.195.68<br />
重新启动网卡：<br />
/etc/rc.d/init.d/network restart</p>
<p>3 登陆后设置</p>
<p>3.1 关闭selinux<br />
1：运行命令setup，可以在图形化界面进行关闭<br />
2：vi /etc/sysconfig/selinux<br />
SELINUX=enforcing 改成&#8211;> SELINUX=disabled</p>
<p>3.2 关闭不需要服务<br />
1：运行命令setup<br />
2：运行命令ntsysv<br />
只启用下面9个服务（autofs是为了方便使用光驱，其实可以不启用这个服务）<br />
acpid<br />
anacron<br />
autofs<br />
cpuspeed<br />
crond<br />
network<br />
sshd<br />
syslog<br />
yum-updatesd<br />
3.3 配置ssh<br />
修改两个地方<br />
vi /etc/ssh/sshd.config<br />
#PermitRootLogin yes 改为<br />
PermitRootLogin yes<br />
#UseDNS yes 改为<br />
UseDNS no</p>
<p>3.4 配置yum</p>
<p>mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.save<br />
vi /etc/yum.repos.d/CentOS-Base.repo<br />
######################<br />
[base]<br />
name=CentOS-5 &#8211; Base<br />
repo=os<br />
baseurl=http://centos.ustc.edu.cn/centos/5.1/os/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5<br />
[update]<br />
name=CentOS-5 &#8211; Updates<br />
baseurl=http://centos.ustc.edu.cn/centos/5.1/updates/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5<br />
[addons]<br />
name=CentOS-5 &#8211; Addons<br />
baseurl=http://centos.ustc.edu.cn/centos/5.1/addons/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5<br />
[extras]<br />
name=CentOS-5 &#8211; Extras<br />
baseurl=http://centos.ustc.edu.cn/centos/5.1/extras/$basearch/<br />
gpgcheck=1<br />
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5<br />
[centosplus]<br />
name=CentOS-5 &#8211; Plus<br />
baseurl=http://centos.ustc.edu.cn/centos/5.1/centosplus/$basearch/<br />
gpgcheck=1<br />
enabled=0<br />
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5<br />
[contrib]<br />
name=CentOS-5 &#8211; Contrib<br />
baseurl=http://centos.ustc.edu.cn/centos/5.1/contrib/$basearch/<br />
gpgcheck=1<br />
enabled=0<br />
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5<br />
###################</p>
<p>rpm &#8211;import http://centos.ustc.edu.cn/centos/5.1/os/i386/RPM-GPG-KEY-CentOS-5<br />
yum update</p>
<p>4 ：编译前准备<br />
4.1 安装编译器gcc<br />
最小化安装，没有安装编译器<br />
yum install gcc<br />
4.2 gcc-c++<br />
如果不安装，在编译mysql的时候会出现【exec: g++: not found】错误<br />
yum install gcc-c++<br />
5：安装软件<br />
5.1安装mysql<br />
1:去下载一个ncurses-5.6.tar.gz，<br />
tar zxvf ncurses-5.6.tar.gz<br />
cd ncurses-5.6<br />
./configure &#8211;prefix=/usr &#8211;with-shared &#8211;without-debug<br />
make<br />
make install clean</p>
<p>2：安装mysql<br />
tar -zxvf mysql-5.0.51a.tar.gz<br />
cd mysql-5.0.51a<br />
./configure &#8211;with-mysqld-user=mysql &#8211;prefix=/usr/local/mysql5 &#8211;with-extra-charset=all &#8211;without-isam &#8211;exec-prefix=/usr/local/mysql5<br />
echo $?<br />
make &#038;&#038; make install</p>
<p>3：初始化数据库：<br />
groupadd mysql<br />
useradd -g mysql mysql<br />
scripts/mysql_install_db<br />
cp /usr/local/mysql5/share/mysql/my-medium.cnf /usr/local/mysql5/var/my.cnf<br />
cp /usr/local/mysql5/share/mysql/mysql.server /etc/init.d/mysqld<br />
chkconfig &#8211;add mysqld<br />
chkconfig &#8211;level 2345 mysqld on<br />
chown mysql:mysql -R /usr/local/mysql5/<br />
service mysqld start<br />
ln -s /usr/local/mysql5/bin/mysql /sbin/mysql<br />
ln -s /usr/local/mysql5/bin/mysqladmin /sbin/mysqladmin</p>
<p>4：设定mysql密码<br />
mysqladmin -uroot password &#8220;123456&#8243;</p>
<p>5：让系统找到mysql（如果必要的话）：<br />
PATH=$PATH:/usr/local/mysql5/bin<br />
export PATH<br />
echo &#8220;/usr/local/mysql5/lib/mysql&#8221; >> /etc/ld.so.conf<br />
ldconfig<br />
6：:测试<br />
netstat -nplt | grep mysql<br />
ps aux|grep mysql<br />
5.2 安装apache<br />
1：编译安装<br />
tar zxvf httpd-2.2.8.tar.gz<br />
cd httpd-2.2.8<br />
./configure &#8211;prefix=/usr/local/apache2 &#8211;enable-so &#8211;enable-rewrite<br />
echo $?<br />
make &#038;&#038; make install<br />
/usr/local/apache2/bin/apachectl configtest<br />
/usr/local/apache2/bin/apachectl start<br />
/usr/local/apache/bin/apachectl stop<br />
2：修改默认启动页<br />
vi /usr/local/apache2/conf/httpd.conf<br />
DirectoryIndex index.html 改为<br />
DirectoryIndex index.html index.htm default.htm default.html index.php index.php3 index.jsp<br />
#ServerName www.example.com:80 改为<br />
ServerName www.example.com:80<br />
3：apache 开机启动的办法<br />
1：#echo &#8220;/usr/local/apache/bin/apachectl start&#8221; >>/etc/rc.local(系统启动时服务自动启动)<br />
2:创建一个httpd启动脚本，内容如下：<br />
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd<br />
vi /etc/init.d/httpd<br />
在第三行添加以下内容<br />
#chkconfig:345 85 15<br />
#description: Start and stops the Apache HTTP Server.<br />
chmod +x /etc/rc.d/init.d/httpd<br />
chkconfig &#8211;add httpd<br />
修改乱码<br />
步骤1：<br />
在httpd.conf中将Include conf/extra/httpd-autoindex这个模块的注释去掉<br />
@vi /usr/local/apache/conf/httpd.conf<br />
步骤2：<br />
在httpd-autoindex.conf中加入IndexOptions Charset=UTF-8<br />
@vi /usr/local/apache/conf/extra/httpd-autoindex.conf<br />
5.3 安装GD<br />
1：安装ZLIB2<br />
######zlib#############<br />
tar zxvf zlib-1.2.3.tar.gz<br />
cd zlib-1.2.3<br />
./configure<br />
make<br />
make install clean<br />
2：安装PNG<br />
##########libpng###########<br />
tar zxvf libpng-1.2.26.tar.gz<br />
cd libpng-1.2.26<br />
cp scripts/makefile.linux ./makefile<br />
./configure &#8211;prefix=/usr/local/libpng<br />
make<br />
make install clean<br />
3：安装freetype<br />
##########freetype#########<br />
cd freetype-2.3.5<br />
./configure<br />
make<br />
make install<br />
4：安装JPEG6</p>
<p>#########jpeg###############<br />
tar zxvf jpegsrc.v6b.tar.gz<br />
cd jpeg-6b<br />
mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}<br />
./configure &#8211;prefix=/usr/local/jpeg &#8211;enable-shared &#8211;enable- static<br />
make<br />
make install<br />
5：安装GD<br />
########GD###########<br />
tar zxvf gd-2.0.35.tar.gz<br />
cd gd-2.0.35<br />
./configure &#8211;with-png &#8211;with-freetype &#8211;with-jpeg=/usr/local/jpeg/<br />
make<br />
make install<br />
5.4 安装php<br />
1：安装LIBXML2<br />
#####libxml2 #####<br />
tar zxvf libxml2-2.6.31.tar.gz<br />
cd libxml2-2.6.31<br />
./configure &#8211;prefix=/usr/local/libxml2<br />
make<br />
make install<br />
cp xml2-config /usr/bin<br />
2：:安装PHP5.2.5<br />
#########php##########<br />
tar zxvf php-5.2.5.tar.gz<br />
cd php-5.2.5<br />
./configure &#8211;prefix=/usr/local/php5 &#8211;with-mysql=/usr/local/mysql5 &#8211;with-apxs2=/usr/local/apache2/bin/apxs &#8211;with-jpeg-dir=/usr/local/jpeg &#8211;with-freetype-dir=/usr/local/include/freetype2 &#8211;with-zlib &#8211;with-png-dir=usr/local/libpng12 &#8211;with-libxml-dir=/usr/local/libxml2 &#8211;with-gd &#8211;enable-ftp &#8211;enable-sockets<br />
make<br />
make test<br />
make install</p>
<p>3：配置<br />
cp php.ini-dict /usr/local/php5/lib/php.ini<br />
编辑httpd.conf<br />
/usr/local/apache2/conf/httpd.conf<br />
加载php模块，去掉注释,我的版本是缺省就启用的。<br />
LoadModule php5_module        modules/libphp5.so<br />
加上下面两行<br />
AddType application/x-httpd-php .php .phtml<br />
AddType application/x-httpd-php-source .phps</p>
<p>5.5 安装zend<br />
tar -zxvf ZendOptimizer-3.0.0-linux-glibc23- x86_64.tar.gz<br />
cd ZendOptimizer-3.0.0-linux-glibc23-x86_64<br />
./install<br />
5.6 安装phpmyadmin<br />
cp -rf phpMyAdmin-v2.11.5.2 /usr/local/apache2/htdocs/phpmyadmin<br />
cd /usr/local/apache2/htdocs/phpmyadmin/<br />
cp config.sample.inc.php config.inc.php<br />
vi config.inc.php<br />
$cfg['blowfish_secret'] = &#8221;改为<br />
$cfg['blowfish_secret'] = &#8216;dd&#8217;<br />
只要不为空就可以了，这样就可以登陆，如果还有问题，就修改一下语言就解决“配置文件现在需要绝密的短语密码(blowfish_secret)”这个错误了。</p>
<p>6：软件<br />
ncurses<br />
http://ftp.gnu.org/pub/gnu/ncurses/ncurses- 5.6.tar.gz<br />
安装GD库和GD库所需的环境<br />
zlib</p>
<p>http://www.zlib.net/zlib-1.2.3.tar.gz</p>
<p>jpeg<br />
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz<br />
freetype<br />
http://download.savannah.gnu.org/releases/freetype/freetype- 2.3.5.tar.gz<br />
png<br />
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng- 1.2.26.tar.gz<br />
GD</p>
<p>http://www.libgd.org/releases/gd-2.0.35.tar.gz</p>
<p>安装php必须安装libxml<br />
wget ftp://xmlsoft.org/libxml2/libxml2-2.6.31.tar.gz<br />
apache2.2.8<br />
http://apache.mirror.phpchina.com/httpd/httpd- 2.2.8.tar.gz<br />
phpmyadmin2.11.5.2<br />
http://4.gxdx1.crsky.com/200804/phpMyAdmin- v2.11.5.2.rar<br />
Zend3.3<br />
http://downloads.zend.com/optimi &#8230; glibc21-i386.tar.gz<br />
php5.2.5<br />
http://cn.php.net/distributions/php- 5.2.5.tar.gz<br />
mysql5.051<br />
http://mirror.trouble- free.net/mysql_mirror/Downloads/MySQL- 5.0/mysql-5.0.51a.tar.gz</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1272.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux 下的lighttpd不能加载zend Optimizer的解决方法</title>
		<link>http://www.evanjiang.net.cn/archives/1252.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1252.html#comments</comments>
		<pubDate>Sat, 01 Aug 2009 06:36:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1252</guid>
		<description><![CDATA[<p>    在 Fedora 10 安装 lighttpd php5 mysql5 zend Optimizer前 3个均可以用 yum 进行安装，很方便。</p>
<p>　　在 Fedora 10 安装 lighttpd php5 mysql5 zend Optimizer</p>
<p>　　前 3个均可以用 yum 进行安装，很方便。</p>
<p>　　而 zend Optimizer 需要下载解压后，到解压目录输入 # ./install.sh 就会出现界面提示安装。安装后重启 lighttpd却没有成功启动 zend Optimizer 。</p>
<p>　　解决经过：</p>
<p>　　1. 开始认为是 php.ini 没有设置好。 打目录中找 #find / -name php.ini ，后发现网页输出 就有 Loaded Configuration File : /usr/local/Zend/etc/php.ini 显示 php.ini 文件已被加载。</p>
<p>　　2. [...]]]></description>
			<content:encoded><![CDATA[<p>    在 Fedora 10 安装 lighttpd php5 mysql5 zend Optimizer前 3个均可以用 yum 进行安装，很方便。</p>
<p>　　在 Fedora 10 安装 lighttpd php5 mysql5 zend Optimizer</p>
<p>　　前 3个均可以用 yum 进行安装，很方便。</p>
<p>　　而 zend Optimizer 需要下载解压后，到解压目录输入 # ./install.sh 就会出现界面提示安装。安装后重启 lighttpd却没有成功启动 zend Optimizer 。</p>
<p>　　解决经过：</p>
<p>　　1. 开始认为是 php.ini 没有设置好。 打目录中找 #find / -name php.ini ，后发现网页输出 就有 Loaded Configuration File : /usr/local/Zend/etc/php.ini 显示 php.ini 文件已被加载。</p>
<p>　　2. 是否 zend Optimizer 版本问题,安装最新版还是不成功。</p>
<p>　　3. 在网络查找解决方法多是说 php.ini 设置问题。最终将几个方法总结才解决：</p>
<p>　　具体解决方法:</p>
<p>　　1. 对于 php.ini文件路径有问题( 我的在 phpinfo()显示php.ini路径正确，我就不用这个方法 )</p>
<p>　　解决方法</p>
<p>　　php -i | grep php.ini 就可以找到当前php使用的php.ini文件</p>
<p>　　比如, 编译安装时没有指定php.ini存放路径, 那么默认php.ini会放在/usr/local/lib下面</p>
<p>　　最好是在编译PHP时指定PHP配置文件的路径 如: &#8211;with-config-file-path=/usr/local/etc</p>
<p>　　而一般zend默认安装 php.ini在/etc/目录下面或/usr/local/Zend/etc 所以需要在安装的时候手工指定我们php.ini文件存放的位置</p>
<p>　　如果, 不知道现在的PHP 的配置文件具体位置的话 可以查看一下:</p>
<p>　　php -i | grep php.ini</p>
<p>　　如果php optimizer安装好 却发现不能加载的话可以 手工指定读取php.ini文件的位置</p>
<p>　　php -c /etc/ -v 如果可以看到zend opt正确加载</p>
<p>　　那么做个连接就好 连接到php默认读取的php.ini路径下面</p>
<p>　　<span id="more-1252"></span><br />
比如</p>
<p>　　ln -sf /etc/php.ini /usr/local/lib</p>
<p>　　[root@localhost /]# php -v</p>
<p>HP 5.2.5 (cli) (built: Jan 22 2006 12:59:19)</p>
<p>　　Copyright (c) 1997-2006 The PHP Group</p>
<p>　　Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies</p>
<p>　　with Zend Extension Manager v1.0.9, Copyright (c) 2003-2006, by Zend Technologies</p>
<p>　　with Zend Optimizer v3.3.2, Copyright (c) 1998-2006, by Zend Technologies</p>
<p>　　Ok 正常 phpinfo()看到的当然也是一样的</p>
<p>　　2. 调用库文件的问题</p>
<p>　　有的时候还有一些情况下 php -i 或php -v 在控制台下可以看到zend opt,</p>
<p>　　但是 apache 执行phpinfo的输出里面却看不到</p>
<p>　　一般是因为 调用php的时候zend模块不能加载, 比如AS4里面 就是这样的</p>
<p>　　如as4下面默认的php安装后读取库文件的路径 是在/usr/lib下面 ，</p>
<p>　　而php.ini文件中加载zend模块是在zend安装路径的lib目录中</p>
<p>　　比如/usr/local/Zend/lib 这时apache在执行php时 不能加载zend模块 所以 在控制台里php -v 可以正常</p>
<p>　　但是apache 却没有加载zend。</p>
<p>　　解决办法</p>
<p>　　先把zend模块copy到</p>
<p>　　/usr/lib里面 然后改一下php.ini里面zend加载模块部分</p>
<p>　　( 我在 php -i 中显示 Failed loading /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so: /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied</p>
<p>　　看这个原来是权限问题)</p>
<p>　　3. 最恶心的SElinux问题</p>
<p>　　SElinux导致PHP不能使用zend/lib下的库文件。所以，即便是做link也不行。只能够拷贝库文件到有权限的目录。或者直接关掉SElinux</p>
<p>　　但我已 在 /etc/selinux/config 的 SELINUX=disabled 关掉SElinux 还是不行, 再网络查询发现</p>
<p>　　在你保证SElinux 被disable后.还执行下</p>
<p>　　chcon -t texrel_shlib_t 命令</p>
<p>　　如: chcon -t texrel_shlib_t /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so (这个文件视具体执行文件.)</p>
<p>　　就可以。</p>
<p>　　我的解决的情况是:</p>
<p>　　1. 关闭SElinux</p>
<p>　　2. 运行 #chcon -t texrel_shlib_t /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so</p>
<p>　　就可以。</p>
<p>还有一个最终的解决办法，就是使用低版本的php源代码来编译安装php.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1252.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux 加载u盘、光盘、软盘&amp; mount使用指南</title>
		<link>http://www.evanjiang.net.cn/archives/1100.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1100.html#comments</comments>
		<pubDate>Mon, 25 May 2009 10:02:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[redhat linux]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1100</guid>
		<description><![CDATA[<p>一、Linux加载u盘
Linux如何加载(优)U盘
第一步，以root用户登陆
先加载USB模块 modprobe usb-storage
用fdisk -l 看看磁盘的设备
假如U盘是sda
第二步，确定在 目录 /mnt 下建立了 文件夹 /usb,如果未建立可键入一下命令：               mkdir /mnt/usb
第三步, 载入 u 盘，需键入以下命令：
Linux如何加载(优)U盘
第一步，以root用户登陆
先加载USB模块 modprobe usb-storage
用fdisk -l 看看U盘的设备
假如U盘是sda1
第二步，确定在 目录 /mnt 下建立了 文件夹 /usb,如果未建立可键入一下命令：               md /mnt/usb
成功后进行下一步。
第三步, 载入 [...]]]></description>
			<content:encoded><![CDATA[<p>一、Linux加载u盘<br />
Linux如何加载(优)U盘<br />
第一步，以root用户登陆<br />
先加载USB模块 modprobe usb-storage<br />
用fdisk -l 看看磁盘的设备<br />
假如U盘是sda<br />
第二步，确定在 目录 /mnt 下建立了 文件夹 /usb,如果未建立可键入一下命令：               mkdir /mnt/usb<br />
第三步, 载入 u 盘，需键入以下命令：<br />
Linux如何加载(优)U盘<br />
第一步，以root用户登陆<br />
先加载USB模块 modprobe usb-storage<br />
用fdisk -l 看看U盘的设备<br />
假如U盘是sda1<br />
第二步，确定在 目录 /mnt 下建立了 文件夹 /usb,如果未建立可键入一下命令：               md /mnt/usb<br />
成功后进行下一步。<br />
第三步, 载入 u 盘，需键入以下命令：<br />
mount -t vfat /dev/sda /mnt/usb_disk<br />
成功后，即可使用 u 盘了, 文件就在目录 /mnt/usb 下。<br />
第四步，卸载u盘<br />
在使用完u盘后，在拔出前需要先键入卸载U盘命令<br />
命令如下：               umount /mnt/usb<br />
二、Linux mount使用指南<br />
在Linux中，如果你要使用储存设备 (Mo、硬盘、光驱等) ，就得先将它挂上 (Mount)，而当储 存设备挂上了之后，就可以把它当成一个目录来进行访问。挂上一个设备使用mount命令。 </p>
<p>在使用mount这个指令时，至少要先知道下列三种信息： </p>
<p>1. 要Mount对象的文件系统类型？ (File system type) </p>
<p>2. 要Mount对象的设备名称？ (/dev/????) </p>
<p>3. 要将设备Mount到哪个目录去？<br />
<span id="more-1100"></span><br />
一、获得系统支持的文件系统类型 </p>
<p>就第一点来说，用户可以执行 </p>
<p>cat /proc/filesystems </p>
<p>来获得机器上支持的文件系统类型。如果系统并不支持你要挂接设备的文件系统类型，那 你可能需要重新编译内核以使其增加对该种文件类型支持。关于如何编译内核请参照LinuxAid在 线培训栏目中的相关文章。 </p>
<p>常用的文件系统有： </p>
<p>Win95/98常用的FAT 32文件系统 ：vfat </p>
<p>Win NT用的文件系统 ：ntfs </p>
<p>OS2用的文件系统 ：hpfs </p>
<p>Linux用的文件系统 ：ext2 </p>
<p>光盘片用的文件系统 ：iso9660 </p>
<p>其中虽然vfat是指FAT 32系统，但事实上它也兼容FAT 16的文件系统类型。<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
二、确定设备的名称 </p>
<p>在Linux中，设备名称通常都在/dev里。这些设备名称的命名都是有规则的，我们可以用&#8221;推 理&#8221;的方式把设备名称找出来。 </p>
<p>譬如说/dev/hda1这个IDE设备。hd是Hard Disk(硬盘)的意思，sd是SCSI Device，fd是Floppy Device(或是Floppy Disk?)。a则是代表第一个设备，通常IDE接口可以接上四个IDE设备(例如四块 硬盘)。所以要识别IDE硬盘的方法分别就 </p>
<p>是：hda、hdb、hdc、hdd。此外，hda1中的&#8221;1&#8243;代表hda的第一个硬盘分区 </p>
<p>(partition)，hda2代表hda的第二个分割区，依此类推。 </p>
<p>此外，你可以直接检查/var/log/messages这个文件，在该文件中可以找到计算机开机后，系 统已辨认出来的设备代号。 </p>
<p>三、查找挂接点 </p>
<p>最后我们要决定将设备挂接到哪里，先查看一下你的计算机是不是有个/mnt的空目录？该目 录就是专门用来当作挂载点(Mount Point)的目录。建议您在/mnt里多建这几个目录：/mnt/ cdrom、/mnt/floppy、/mnt/mo等来当作目录的专用挂载点。 </p>
<p>举例而言，如要挂载下列五个设备的话，其执行指令可能是 (假设都是Linux的ext2系统，如 果是Win XX的话，请将ext2改成vfat)： </p>
<p>1. 软盘 ===>mount -t ext2 /dev/fd0 /mnt/floppy </p>
<p>2. MO ===>mount -t ext2 /dev/sda /mnt/mo </p>
<p>3. cdrom ===>mount -t ext2 /dev/hdc /mnt/cdrom<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
4. SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom </p>
<p>5. SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr </p>
<p>这是假设，如果你的设备的名称跟这个不同的话请自行修改。 </p>
<p>最后需要注意的是： </p>
<p>1. 执行mount动作时先打一下pwd看看现在的目录是不是在挂载点，如果现在目录在挂载点 的话，mount (或umount)不会成功 (会显示device busy)。 </p>
<p>2. 想卸载某设备的语法是umount 目录名，例如umount /mnt/cdrom等。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1100.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于centos4.3的linux发行版制作过程</title>
		<link>http://www.evanjiang.net.cn/archives/1089.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1089.html#comments</comments>
		<pubDate>Fri, 22 May 2009 10:33:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1089</guid>
		<description><![CDATA[<p>以前研究的东西，最近看到网上有很多人为了制作自己的发行版，苦苦挣扎而不得其道，所以把自己的笔记拿出来与大家一起分享！</p>
<p>注：其中路径/data/disk是我的制作光盘路径，各位可以根据自己的环境进行修改。</p>
<p>=======================================================</p>
<p>基本过程:</p>
<p>定制RPM包
修改 comps.xml
重编comps.rpm
重新生成hdlist
建立pkglist
利用buildinstall处理安装程序
利用mkisofs制作安装映象</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
母系统是centos4.3，为了软件最新，先升级自己的系统相关软件
rpm &#8211;import http://mirror.be10.com/centos/4.3/os/i386/RPM-GPG-KEY-centos4
rpm &#8211;import /usr/share/doc/centos-release-4/RPM-GPG-KEY >> /dev/null
yum -y update</p>
<p>以下为制作安装光盘必须的包
yum install pump-devel gtk2-devel booty bogl-devel bogl-bterm elfutils-devel beecrypt-devel dietlibc
yum install anaconda anaconda-runtime busybox-anaconda</p>
<p>=============================================================================
Package                 Arch       Version         [...]]]></description>
			<content:encoded><![CDATA[<p>以前研究的东西，最近看到网上有很多人为了制作自己的发行版，苦苦挣扎而不得其道，所以把自己的笔记拿出来与大家一起分享！</p>
<p>注：其中路径/data/disk是我的制作光盘路径，各位可以根据自己的环境进行修改。</p>
<p>=======================================================</p>
<p>基本过程:</p>
<p>定制RPM包<br />
修改 comps.xml<br />
重编comps.rpm<br />
重新生成hdlist<br />
建立pkglist<br />
利用buildinstall处理安装程序<br />
利用mkisofs制作安装映象</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
母系统是centos4.3，为了软件最新，先升级自己的系统相关软件<br />
rpm &#8211;import http://mirror.be10.com/centos/4.3/os/i386/RPM-GPG-KEY-centos4<br />
rpm &#8211;import /usr/share/doc/centos-release-4/RPM-GPG-KEY >> /dev/null<br />
yum -y update</p>
<p>以下为制作安装光盘必须的包<br />
yum install pump-devel gtk2-devel booty bogl-devel bogl-bterm elfutils-devel beecrypt-devel dietlibc<br />
yum install anaconda anaconda-runtime busybox-anaconda</p>
<p>=============================================================================<br />
Package                 Arch       Version          Repository        Size<br />
=============================================================================<br />
Installing:<br />
anaconda                i386       10.1.1.37-1.centos4.2  base              4.3 M<br />
anaconda-runtime        i386       10.1.1.37-1.centos4.2  base              526 k<br />
busybox-anaconda        i386       1.00.rc1-5       base              177 k<br />
Installing for dependencies:<br />
anaconda-help           noarch     10.1.0-1.centos4  base              800 k<br />
bogl                    i386       0.1.18-4         base               93 k<br />
booty                   i386       0.44.3-1         base               85 k<br />
pyparted                i386       1.6.8-2          base               22 k</p>
<p><span id="more-1089"></span><br />
检查RPM包依赖关系<br />
cd /data/disk/EServer/RPMS<br />
mkdir /tmp/testdb<br />
rpm &#8211;initdb &#8211;dbpath /tmp/testdb<br />
rpm &#8211;test &#8211;dbpath /tmp/testdb -Uvh *.rpm </p>
<p>以下是具体步骤：<br />
1.设置python的系统环境变量<br />
export PYTHONPATH=/usr/lib/anaconda<br />
export PATH=&#8221;$PATH:/usr/lib/anaconda-runtime&#8221;<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
2.更新光盘的文件树<br />
genhdlist &#8211;productpath=EServer /data/disk</p>
<p>3.生成下一步需要的pkgfile文件<br />
pkgorder &#8211;product EServer /data/disk/ EServer > /data/pkgfile</p>
<p>4.编译生成光盘引导文件和图形安装界面镜像<br />
buildinstall &#8211;pkgorder /data/pkgfile \<br />
&#8211;version &#8220;1.2&#8243; \<br />
&#8211;product &#8220;EServer&#8221; \<br />
&#8211;release &#8220;Beta&#8221; \<br />
&#8211;prodpath EServer /data/disk</p>
<p>5.制作 ISO</p>
<p>mkisofs -r -T -J -V &#8220;EServer 1.2&#8243; -b isolinux/isolinux.bin \<br />
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \<br />
-boot-info-table -x &#8220;lost+found&#8221; \<br />
-o /data/EServer.iso /data/disk</p>
<p>文件isolinux/boot.cat 会由mkisofs 程序随后产生<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>为光盘生成md5验证值<br />
implantisomd5 /data/EServer.iso<br />
Inserting md5sum into iso image&#8230;<br />
md5 = b49c693f83c23d7e746dfe0f81a56016<br />
Setting supported flag to 0</p>
<p>如果想将图形界面修改成个性化的界面，需要修改stage2.img（光盘引导镜像，如果硬盘安装，需要修改其他img文件……）</p>
<p>附注:<br />
anaconda资源修改：</p>
<p>mkdir /data/anaconda<br />
mount -o loop /data/disk/EServer/base/stage2.img /data/anaconda<br />
cd /data/anaconda<br />
tar -cvf /data/stage2.tar .<br />
mkdir /data/stage2<br />
cd /data/stage2<br />
tar -xvf /data/stage2.tar<br />
chmod +w -R ../stage2<br />
#&#8212;&#8212;&#8212;&#8211;修改资源&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;#<br />
&#8230;..<br />
&#8230;.<br />
#重新打包img镜像<br />
cd /data<br />
mkcramfs stage2/ stage2.img.new<br />
cp /data/stage2.img.new /data/disk/EServer/base/stage2.img</p>
<p>光盘启动画面修改：</p>
<p>yum -y install syslinux</p>
<p>The graphic is in a somewhat odd format, called LSS16. As the name indicates, it is limited to 16 colors. To edit the graphic, first convert it to a PPM:</p>
<p>lss16toppm < splash.lss > splash.ppm</p>
<p>Next, edit the file using The Gimp. Save the resulting file as an indexed gif with no more than 14 colors (plus black and white, for a total of 16). Then, convert the file to a pnm/ppm:</p>
<p>giftopnm < splash.gif | ppmtolss16 > splash.lss<br />
cp splash.lss /data/disk/isolinux/splash.lss</p>
<p>yum install gcc xorg-x11-devel<br />
编译gif2lss-0.4.tar.gz</p>
<p>保证光盘里面rpm目录下有以下包，这些包是图形化界面制作所必须的，没有他们，buildinstall将会报错。</p>
<p>anaconda<br />
anaconda-runtime<br />
anaconda-help<br />
anaconda-product<br />
busybox<br />
busybox-anaconda<br />
memtest86+<br />
fonts-xorg-base<br />
xorg-x11<br />
joe<br />
kernel*<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
附注：<br />
rpm -qpi #显示rpm包的信息<br />
rpm -Uvh #安装rpm包<br />
rpm -qpl #列rpm包内的文件 </p>
<p>上面这些步骤，是经过实践之后的笔记，所以一般都能够成功，还有一些细节部分，如comps.xml的修改，语法，就不多介绍。</p>
<p>如果发现有什么问题，欢迎跟帖。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1089.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos4.4 升级内核打netfilter补丁</title>
		<link>http://www.evanjiang.net.cn/archives/905.html</link>
		<comments>http://www.evanjiang.net.cn/archives/905.html#comments</comments>
		<pubDate>Sun, 12 Apr 2009 00:35:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[centos4.4 升级内核打 netfilter补丁]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=905</guid>
		<description><![CDATA[<p>1、下载
linux-2.6.15.6.tar.bz2
patch-2.6.15.6.bz2
iptables-1.3.6.tar.bz2
patch-o-matic-ng-20061024.tar.bz2
2、解压缩
cd /usr/src
tar -jxf linux-2.6.15.6.tar.bz2
tar -jxf iptables-1.3.6.tar.bz2
tar -jxf patch-o-matic-ng-20061024.tar.bz2</p>
<p>3、内核先打补丁
cd /usr/src/linux-2.6.15.6
bunzip2 -dv /usr/src/patch-2.6.15.6.bz2 &#124; patch -p0
vi /usr/src/linux-2.6.15.6/include/linux/posix_types.h
#define __FD_SETSIZE 65536
vi /usr/src/linux-2.6.15.6/include/linux/fs.h
#define INR_OPEN 65536
#define NR_FILE 65536
vi /usr/src/linux-2.6.15.6/include/net/tcp.h
#define TCP_TIMEWAIT_LEN (1*HZ)
#define TCP_SYNACK_RETRIES 3</p>
<p>4、拷贝原来的config
cp /boot/config-2.6.9-42.ELsmp ./.config
注：我的是双cpu的机器，所以是ELsmp
make menuconfig</p>
<p>选择 Load an Alternate Configuration File
选择 .config
保存 退出</p>
<p>5、打netfilter补丁
cd /usr/src/path-o-matic-ng-20061024
./runme &#8211;download
注：上述命令选择下载ipp2p time等补丁
export KERNEL_DIR=/usr/src/linux-2.6.15.6
export IPTABLES_DIR=/usr/src/iptables-1.3.6
./runme ipp2p
./runme time
./runme connlimit

6、配置内核选项
networking
networking options
network packet filtering (replaces ipchains)
IP:Netfilter Configuration
把 ipp2p、time、 Connections/IP 选上</p>
<p>Security options
NSA [...]]]></description>
			<content:encoded><![CDATA[<p>1、下载<br />
linux-2.6.15.6.tar.bz2<br />
patch-2.6.15.6.bz2<br />
iptables-1.3.6.tar.bz2<br />
patch-o-matic-ng-20061024.tar.bz2<br />
2、解压缩<br />
cd /usr/src<br />
tar -jxf linux-2.6.15.6.tar.bz2<br />
tar -jxf iptables-1.3.6.tar.bz2<br />
tar -jxf patch-o-matic-ng-20061024.tar.bz2</p>
<p>3、内核先打补丁<br />
cd /usr/src/linux-2.6.15.6<br />
bunzip2 -dv /usr/src/patch-2.6.15.6.bz2 | patch -p0<br />
vi /usr/src/linux-2.6.15.6/include/linux/posix_types.h<br />
#define __FD_SETSIZE 65536<br />
vi /usr/src/linux-2.6.15.6/include/linux/fs.h<br />
#define INR_OPEN 65536<br />
#define NR_FILE 65536<br />
vi /usr/src/linux-2.6.15.6/include/net/tcp.h<br />
#define TCP_TIMEWAIT_LEN (1*HZ)<br />
#define TCP_SYNACK_RETRIES 3</p>
<p>4、拷贝原来的config<br />
cp /boot/config-2.6.9-42.ELsmp ./.config<br />
注：我的是双cpu的机器，所以是ELsmp<br />
make menuconfig</p>
<p>选择 Load an Alternate Configuration File<br />
选择 .config<br />
保存 退出</p>
<p>5、打netfilter补丁<br />
cd /usr/src/path-o-matic-ng-20061024<br />
./runme &#8211;download<br />
注：上述命令选择下载ipp2p time等补丁<br />
export KERNEL_DIR=/usr/src/linux-2.6.15.6<br />
export IPTABLES_DIR=/usr/src/iptables-1.3.6<br />
./runme ipp2p<br />
./runme time<br />
./runme connlimit<br />
<span id="more-905"></span><br />
6、配置内核选项<br />
networking<br />
networking options<br />
network packet filtering (replaces ipchains)<br />
IP:Netfilter Configuration<br />
把 ipp2p、time、 Connections/IP 选上</p>
<p>Security options<br />
NSA SELinux Support 选项 去除</p>
<p>同时保存 退出</p>
<p>vi /etc/sysconfig/selinux<br />
SELINUX=disabled<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
7、开始编译并安装<br />
make all<br />
make modules<br />
make modules_install<br />
make install</p>
<p>8、设置grub.conf<br />
设置default=0的相关项</p>
<p>重新启动计算机</p>
<p>9、安装新版本iptable<br />
cd /usr/src/iptables-1.3.6<br />
export KERNEL_DIR=/usr/src/linux-2.6.15.6<br />
export IPTABLES_DIR=/usr/src/iptables-1.3.6<br />
make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
10、测试<br />
uname -r 显示内核版本<br />
iptables -V 显示iptables版本<br />
ulimit -a 显示最大打开文件等参数<br />
top 选择1 看多cpu支持情况</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/905.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>unix常用指令及参数</title>
		<link>http://www.evanjiang.net.cn/archives/893.html</link>
		<comments>http://www.evanjiang.net.cn/archives/893.html#comments</comments>
		<pubDate>Wed, 08 Apr 2009 13:48:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[debian linux]]></category>
		<category><![CDATA[freebsd unix]]></category>
		<category><![CDATA[netbsd unix]]></category>
		<category><![CDATA[openbsd unix]]></category>
		<category><![CDATA[other linux]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[sco unix]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[sun unix]]></category>
		<category><![CDATA[suse linux]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[unix 常用命令 及参数]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=893</guid>
		<description><![CDATA[<p>常用组合键
ctrl+h,backspace :删除前面的字符.
ctrl+u:删除一整行.
ctrl+c,del,break: 强行终止正在运行的程序.
ctrl+d:
常用指令
1.date:查看当前时间.
2.cal:查看某一个月的月历.
3.Finger 命令:显示一个用户的详细信息.
4.who命令:显示所有登陆用户.who an i
5.clear 命令:执行清屏动作.
6.echo 命令:将命令名后跟随的参数显示在屏幕echo hello </p>
<p>world
7.banner 命令:将命令名后跟的ACSSII字符串以大字的方式显</p>
<p>示在屏幕上banner hello
8.wc 命令:用于计算一个指定的文件中的行数单词及字符数:
   格式wc[-c(计算字符的数目)] [-l(计算行的数目)] [-w(计算</p>
<p>单词的数目)] filename
9.passwd 命令,用于修改口令.
10.man 命令:联机手册
六.shell的基本功能:命令解释器,程序设计语言.
shell的退出命令.
1.exit 主要用于退出B_shell
2.logout 主要用于退出C_shell
3.ctrl+d 用于退出各类shell
第三章 通信
内部通信
外部通信





下.
mail命令模式常用命令
 如有下页则显示,否则退出mail.
p      显示本邮件信息
d      删除当前邮件
n      显示下一个邮件
q      退出 mail,把末删除的邮件保存到个人邮箱中.
R     [...]]]></description>
			<content:encoded><![CDATA[<p>常用组合键<br />
ctrl+h,backspace :删除前面的字符.<br />
ctrl+u:删除一整行.<br />
ctrl+c,del,break: 强行终止正在运行的程序.<br />
ctrl+d:<br />
常用指令<br />
1.date:查看当前时间.<br />
2.cal:查看某一个月的月历.<br />
3.Finger 命令:显示一个用户的详细信息.<br />
4.who命令:显示所有登陆用户.who an i<br />
5.clear 命令:执行清屏动作.<br />
6.echo 命令:将命令名后跟随的参数显示在屏幕echo hello </p>
<p>world<br />
7.banner 命令:将命令名后跟的ACSSII字符串以大字的方式显</p>
<p>示在屏幕上banner hello<br />
8.wc 命令:用于计算一个指定的文件中的行数单词及字符数:<br />
   格式wc[-c(计算字符的数目)] [-l(计算行的数目)] [-w(计算</p>
<p>单词的数目)] filename<br />
9.passwd 命令,用于修改口令.<br />
10.man 命令:联机手册<br />
六.shell的基本功能:命令解释器,程序设计语言.<br />
shell的退出命令.<br />
1.exit 主要用于退出B_shell<br />
2.logout 主要用于退出C_shell<br />
3.ctrl+d 用于退出各类shell<br />
第三章 通信<br />
内部通信<br />
外部通信<1,电子邮件,2.即时通信<br />
一.即时通讯<br />
1.write 交谈命令 (半双工通信)<br />
格式 write student1<br />
ctrl+d 退出write<br />
Write协议:消息发送结束用O(结束)<br />
结束谈话用OO(结束并退出)<br />
2.mesg 消息开关命令.用于查询和开关本终端的消息接收状态.<br />
格式:mesg [-y] [-n]<br />
$ mesg 查询本终端当前的消息接收状态<br />
is y 可以接收消息<br />
is n 拒绝接收消息<br />
$ mesg n 设置关闭状态<br />
$ mesg y 设置打开状态<br />
3.talk 双向通信命令 (全双工方式)<br />
4.wall 广播信息命令<br />
二,电子邮件<br />
$ mail username  发送邮件<br />
$ mail                 接收邮件<br />
系统邮箱:在/usr/mail或/var/mail下,每个用户都有一个以其名字</p>
<p>命名的邮箱.例如:student8的系统邮箱可能为:/var/mail/student8<br />
个人邮箱:个人邮箱通常为用户自己的主目录(home)下的mbox<br />
<span id="more-893"></span><br />
文件.用户读过的邮件如果末删除或转存,则存放在个人邮箱中</p>
<p>.例如:student8的个人邮箱可能是:/home/student8/mbox<br />
1.发送邮件:<br />
$ mail student8<br />
给多个用户发送邮件<br />
a.$ mail student1 student2 student3 把用户列出来.<br />
b.$ mail TEACHER TEACHER为用户组名,即向属于TEACHER</p>
<p>组所有用记发邮件.<br />
c.$ alias usr_list student1 student2 student3给student1 student2 </p>
<p>student3等多个名字建立一个部的别名usr_list,该别名只在本</p>
<p>shell中起作用,退出shell后无效.<br />
$ mail usr_list<br />
把已有的文件作为邮件发送给用户:<br />
$ mail student8 < my_letter<br />
发邮件给不存在的用户:<br />
$ mail meizhegeren<br />
mail命令本身能正常执行,由于无有效的接收方,所以系统把邮</p>
<p>件退回到用户主目录下dead.letter中.<br />
2.接收邮件<br />
不带参数输入mial表示读取邮件.此时已进入出境mail命令模式<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
下.<br />
mail命令模式常用命令<br />
<cr> 如有下页则显示,否则退出mail.<br />
p      显示本邮件信息<br />
d      删除当前邮件<br />
n      显示下一个邮件<br />
q      退出 mail,把末删除的邮件保存到个人邮箱中.<br />
R     回复邮件<br />
!      执行shell命令.<br />
?      显示mail的内部命令.<br />
第四章 文件系统<br />
与目录相关的命令(pwd,cd,mkdir,rmdir,ls)<br />
与文件相关的命令(cp,mv,ln,more,rm)<br />
1.pwd 显示当前工作目录<br />
2.cd  改变当前目录<br />
3.mkdir 创建目录<br />
格式 mkdir dir_name<br />
4.rmdir 删除目录<br />
格式 rmdir dir_name<br />
     a.只能是空目录.<br />
      b.有写的权限<br />
一次操作多个目录<br />
- p 选项.在当前目录下逐级创建目录,也可以逐级删除目录.<br />
5.ls 显示目录<br />
$ ls -a 显示所有文件(以点开头的文件名是隐藏文件)<br />
$ ls -R 显示所有子目录的内容<br />
$ ls &#8211; l  能得到目录中的文件的详细信息.<br />
-:普通 d: 目录 c: 字符设备 b: 块设备 p:管道<br />
$ ls &#8211; C 以多列的格式列表,按列排序.<br />
$ ls &#8211; F 如果是目录,文件名后加/,如果是可执行文件,加*表示.<br />
$ ls &#8211; m 按页宽列文件,以逗号分隔.<br />
$ ls &#8211; p 如果是目录,文件名后加/<br />
$ ls &#8211; r 以字母反序列表<br />
$ ls &#8211; s 以文件块为单位显示文件大小<br />
$ ls &#8211; x 以多列的格式列表,按行排序.<br />
$ ls -G 以不同的颜色显示.<br />
$ ls -lc 显示更新时间<br />
$ ls -i   inode序号将列在第一列<br />
$ ls -lu 显示访问时间<br />
$ ls -I   显示更改时间<br />
6.touch 命令:作用是用来修改文件访问时间更改时间的.并可以</p>
<p>用来创建0字节长度的文件.<br />
格式 touch 命令参数<br />
7.cp 命令:复制文件<br />
格式 cp source target<br />
         $ cp file1 file2 &#8230; Target-dir<br />
$ cp -i 如果目标文件存在,请求确认<br />
$ cp -r 复制目录到新的目录<br />
8.mv 命令:移动文件或命名文件<br />
格式:mv source target<br />
9.ln 命令:ln命令的主要功能是给一个已经存在的文件再取一个</p>
<p>名字.新的文件名与原文件名可以在同一个目录下,也可以以在</p>
<p>不同的目录下,新老文件名代表同一个文件.<br />
格式ln source-file target-file<br />
作用:在现有的文件与新文件之间建立新链接,使一个文件具有</p>
<p>一个以上的名字.<br />
显示文件内容命令<br />
10.cat 命令:用来显示.创建或者合并文件<br />
格式cat filename<br />
11.more 命令:逐屏显示文件内容.翻屏时用<space>键.<br />
格式:$ more filename<br />
12.rm 命令:删除文件(删除后无法恢复)<br />
格式:$ rm file<br />
         $ rm file1 file2<br />
$ rm -i 删除文件前,给出确认<br />
$ rm -r 删除指定的目录及目录中的所有文件和子目录.即删除</p>
<p>整个目录结构.<br />
13.lp 命令:打印命令<br />
14.cut 命令:切取文件内容,用于切取文件中的列或字段.它把文</p>
<p>本文件中每一行的一部分显示输出.运行时必须指定功能选项.<br />
- f 指定字段的位置<br />
-c 指定列的位置<br />
-d 指定字段分隔符,缺省的字段分隔符是制表符tab<br />
15.paste 命令:连接文件.<br />
作用:把文件一行接一行地连接在一起,或者把两个或多个文件</p>
<p>的域连到一个新文件里.<br />
格式: $paste 选项 参数<br />
选项:-d 指定分隔符.默认是制表符<br />
第五章 文件权限<br />
16.chmod 命令:修改文件权限,常用chmod命令修改文件(包括普</p>
<p>通,目录和设备)的访问权限,<br />
格式: chmod pattern filename &#8230;<br />
finename 为要修改的权限文件名.可以有多个.<br />
pattern 为将改变成的权限,可以用两种形式表示:字母式和数字</p>
<p>形式.<br />
a,字母形式(符号模式)<br />
字母形式由用户类别(u,g,o). 如何改变(+,-)和权限(r,w,x)三部分</p>
<p>组成.<br />
u:本用户g:同组用户o:其它用户. + :增加权限 -:删除权限<br />
r:读w:写x:执行<br />
例如:chmod u+x file1<br />
         chmod o-w file2 file3<br />
          chmod go+r file4<br />
b,    数值形式<br />
格式: chmod 777 file1<br />
*新建文件或目录最大权限=状态掩码+新建文件或目录缺省</p>
<p>权限.此时unask为000<br />
对一个新建的文件,umask值为022则指定该文件的权限为644:<br />
对一个新建的目录,umask值为022则指定该目录的权限为755<br />
17.sort 命令:作用在于将指定的文件中的文件进行排序,并把排</p>
<p>序的结果输出到指定的标准输出中.<br />
格式:$srot [-t delimiter] [+field] [.column]][option]<br />
选项: -d 以字典顺序进行排序<br />
          -<br />
18.head 命令:用于查看一个文件.或多个文件的前面几行的内</p>
<p>容.<br />
格式:$ head [-number_of_lines] file(s)<br />
19.tail 命令:用于显示从指定行开始直到文件末尾的文件内容<br />
格式;tail [-number_of_lines | +number_of_lines]file<br />
20.tee 命令:在获得输入后,将把该输入数据送到两个地点:标准<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
输出和文件.<br />
21.grep 命令: 用于选项定包含特定模式的文本行.<br />
21.find 命令:在目录中递归地搜索包括有特定字符的文件名.<br />
22.df 命令:磁盘空间监测命令.显示当前系统中各个逻辑磁盘</p>
<p>中空闲的磁盘块数和空闲的索引节点(即可建立的新文件数)<br />
23.du 命令:查看磁盘使用情况统计,统计指定的目录及所有子</p>
<p>目录的磁盘使用情况,统计单位是磁盘块数.<br />
选项:-a 显示所有文件及子目录<br />
24.fsck 命令:文件系统管理:用于检测和修复文件文件的错误,<br />
25.tar命令:文件存储与备份.该命令可以把文件系统中的一个</p>
<p>或一组文件打成一个文件包.存放到外存上或硬盘上文件系统</p>
<p>的其它地方.常用于多个文件(包括目录)的备份或转移.<br />
格式: tar -cvf target file1 file2 file3 &#8230;把file1 file2 file3等文件备份到</p>
<p>档案文件target中.<br />
         tar -tvf target 检查档案文件target中包含的文件信息.<br />
         tar -xvf targer [file1] 从档案文件target中提取全部或file指定</p>
<p>的文件.<br />
26.shutdown 命令:系统关机<br />
选项:-h 完全关机<br />
         -r 关机并重新启动系统<br />
         time 关机时间,如17:30<br />
         message 关机前向所有已登陆用户发送消息<br />
例如: shutdown -r now 现在关机重启.<br />
27.crypt 文件加密命令:用于对文本文件进行加密和解密.以防</p>
<p>止文件内容泄密.<br />
例如:$ crypt < file > file.cry 对file加密,结果保存在file.cry中.key:加</p>
<p>密口令<br />
        $ crypt <aaa.cry > aaa 对aaa.cry解密,结果保存到aaa中. key:</p>
<p>解密口令<br />
附:$ vi -x file.cry 编辑一个加密后的文件<br />
28.compress/uncompress 文件压缩和解压命令<br />
格式:compress data_file 加压后自动在文件名后加一个.Z<br />
         umcompress abc.Z<br />
29.at 定时执行任务:在指定的时间一次性执行规定的任务.<br />
at 15:30 在15:30分执行<br />
who >> userlist 把上机用户清单发到userlist<br />
30,cron 系统定量执行任务:<br />
31,crontab 任务描述文件的管理命令.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/893.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L i n u x 字符环境下安装ORACLE之关键步骤</title>
		<link>http://www.evanjiang.net.cn/archives/878.html</link>
		<comments>http://www.evanjiang.net.cn/archives/878.html#comments</comments>
		<pubDate>Mon, 06 Apr 2009 11:32:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[linux 字符界面 安装 oracle]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=878</guid>
		<description><![CDATA[<p> L i n u x 字符环境下安装之关健步骤 </p>
<p>编辑Response 文件
　　 这一步骤是字符界面装oracle的关键步骤
　　 到oracle 10g的安装目录下编辑response文件
　　 $cd /home/share/Oracle/Oracle10g_64bit/database/response/ 　　 可以看到oracle准备了6个response文件，实际上这些文件就是用来安装和配置oracle时的模板，分别是 custom.rsp dbca.rsp emca.rsp enterprise.rsp netca.rsp standard.rsp在这里挑了一个简单的response文件 enterprise.rsp，也可以根据实际情况去选用编辑其他几个response文件。
$cp custom.rsp myinst.rsp
　　 $vi myinst.rsp</p>
<p>修改几个地方，有几个不会改的，俺用## 两个#号注释，方便以后修改。</p>
<p>cd .. 转到安装文件所在目录
改好之后运行 ./runInstaller -silent -responseFile response/myinst.rsp
注意：最后面的 response/myinst.rsp 是相对路径。只要给出正确的应答文件就可以。</p>
<p>运行命令后 看到 屏幕上提示：
End of install （后面省略两百字，一共是四行），就表示文件已经复制完毕。按回车键，出现提示符。</p>
<p>然后，转到安装目录：
cd /opt/oracle/product/10.2.0/db_1
su
口令
./root.sh
根据提示按 Enter 就可以。
这样就在字符下成功安装。

后续工作
建数据库。</p>
<p>后 续 工 作</p>
<p>测试：
sqlplus： Oracle10g 数据库(手工)的开始和关闭</p>
<p>From diagnostic point of view it is [...]]]></description>
			<content:encoded><![CDATA[<p> L i n u x 字符环境下安装之关健步骤 </p>
<p>编辑Response 文件<br />
　　 这一步骤是字符界面装oracle的关键步骤<br />
　　 到oracle 10g的安装目录下编辑response文件<br />
　　 $cd /home/share/Oracle/Oracle10g_64bit/database/response/ 　　 可以看到oracle准备了6个response文件，实际上这些文件就是用来安装和配置oracle时的模板，分别是 custom.rsp dbca.rsp emca.rsp enterprise.rsp netca.rsp standard.rsp在这里挑了一个简单的response文件 enterprise.rsp，也可以根据实际情况去选用编辑其他几个response文件。<br />
$cp custom.rsp myinst.rsp<br />
　　 $vi myinst.rsp</p>
<p>修改几个地方，有几个不会改的，俺用## 两个#号注释，方便以后修改。</p>
<p>cd .. 转到安装文件所在目录<br />
改好之后运行 ./runInstaller -silent -responseFile response/myinst.rsp<br />
注意：最后面的 response/myinst.rsp 是相对路径。只要给出正确的应答文件就可以。</p>
<p>运行命令后 看到 屏幕上提示：<br />
End of install （后面省略两百字，一共是四行），就表示文件已经复制完毕。按回车键，出现提示符。</p>
<p>然后，转到安装目录：<br />
cd /opt/oracle/product/10.2.0/db_1<br />
su<br />
口令<br />
./root.sh<br />
根据提示按 Enter 就可以。<br />
这样就在字符下成功安装。<br />
<span id="more-878"></span><br />
后续工作<br />
建数据库。</p>
<p>后 续 工 作</p>
<p>测试：<br />
sqlplus： Oracle10g 数据库(手工)的开始和关闭</p>
<p>From diagnostic point of view it is very important to check sqlplus is<br />
functioning properly. If not then your installation is having problems.</p>
<p>从诊断的观点检查sqlplus是非常重要的，它在适当起作用。 如果不说明您的设置有问题。</p>
<p>oracle@sles10:~> sqlplus &#8220;connect /as sysdba&#8221;</p>
<p>Enter password:<br />
Connected to:<br />
&#8230;&#8230;&#8230;..<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
SQL> show rel<br />
SQL> show sga</p>
<p>SQL> exit<br />
oracle@sles10:~></p>
<p>1. To startup the database:<br />
sl10$ sqlplus /nolog<br />
SQL> connect / as sysdba<br />
SQL> startup<br />
2. To shutdown the database:<br />
sl10$ sqlplus /nolog<br />
SQL> connect / as sysdba<br />
SQL> shutdown</p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
有时候安装不成功，想重新干净的安装，可以这么做：<br />
1 . 去除 /usr/local/bin 目录 下的 coraenv dbhome oraenv<br />
2 . 去除 /etc/oratab , /etc/oracle<br />
3 . 去掉安装 目录 /opt/oracle 目录下的 product admin oradata oralnventor 目录 。<br />
#####################################################################################################################</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/878.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing WP Super Cache with lighttpd</title>
		<link>http://www.evanjiang.net.cn/archives/872.html</link>
		<comments>http://www.evanjiang.net.cn/archives/872.html#comments</comments>
		<pubDate>Sun, 05 Apr 2009 14:06:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[install wp super cache lighttpd]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=872</guid>
		<description><![CDATA[<p>Trying to get WP Super Cache &#038; WordPress working on my fast lighttpd server, I came into problems, mainly because of lighttpd’s lack of (Apache’s version of) the mod_rewrite module. The static files that were created from the cache were not statically served from wordpress. The problem is that in order to use them, the [...]]]></description>
			<content:encoded><![CDATA[<p>Trying to get WP Super Cache &#038; WordPress working on my fast lighttpd server, I came into problems, mainly because of lighttpd’s lack of (Apache’s version of) the mod_rewrite module. The static files that were created from the cache were not statically served from wordpress. The problem is that in order to use them, the PHP fcgi was called for each request. So, why would we have to call PHP every time that a file can be completely statically provided by the web server?</p>
<p>Following this guide I came up  with some problems trying to serve the static files. The problem with that version of the rewrite.lua script is that it does not really work the way it should. The whole point of using WP Super Cache is to avoid calling the PHP fcgi for posts that are already cached into an html file. Calling the PHP fcgi is much slower than using the “core” lighttpd static-page-serving facilities.</p>
<p>So, what did I do to avoid calling the PHP fcgi?</p>
<p>The following script takes the url that was asked from the client. It checks whether there is a fresh version of a static HTML page on the cache and if yes, it servers that. If the file does not exist al all or the it is expired(I check its modification date) then the request is forwarded to the PHP fcgi so that it can be freshly served.</p>
<p>In my lighttpd.conf I have put this:<br />
<span id="more-872"></span><br />
view sourceprint?<br />
01.<br />
$HTTP["host"] == &#8220;www.asteriosk.gr&#8221; {<br />
02.</p>
<p>03.<br />
alias.url = ( &#8220;/storage/&#8221; => &#8220;/opt/storage/&#8221; )<br />
04.<br />
server.document-root = &#8220;/opt/apps/wordpress/&#8221;<br />
05.<br />
url.rewrite = (<br />
06.<br />
&#8220;^/(wiki|wp-admin|wp-includes|wp-content|storage)/(.*)&#8221; => &#8220;$0&#8243;,<br />
07.<br />
&#8220;^/(sitemap\.xml|sitemap\.xml\.gz)&#8221; => &#8220;$0&#8243;,<br />
08.<br />
&#8220;^/(.*\.php)&#8221; => &#8220;$0&#8243;,<br />
09.<br />
&#8220;^/(.*)$&#8221; => &#8220;/index.php/$1&#8243;<br />
10.<br />
)<br />
11.<br />
magnet.attract-physical-path-to = ( server.document-root + &#8220;rewrite.lua&#8221; )<br />
12.</p>
<p>13.<br />
}<br />
And in the rewrite.lua file I have put this:</p>
<p>view sourceprint?<br />
01.<br />
expiration_time = 10*60<br />
02.</p>
<p>03.<br />
function serve_html(cached_page, expiration_time)<br />
04.<br />
attr = lighty.stat(cached_page)<br />
05.<br />
&#8211;Check if the cached file has expired<br />
06.<br />
if (attr and (attr['st_mtime'] + expiration_time) > os.time() ) then<br />
07.<br />
lighty.env["physical.path"] = cached_page<br />
08.<br />
return true<br />
09.<br />
else<br />
10.<br />
return false<br />
11.<br />
end<br />
12.<br />
end<br />
13.</p>
<p>14.<br />
function serve_gzip(cached_page, expiration_time)<br />
15.<br />
attr = lighty.stat(cached_page .. &#8220;.gz&#8221;)<br />
16.<br />
&#8211;Check if the gziped cached file has expired<br />
17.<br />
if (attr and  (attr['st_mtime'] + expiration_time) > os.time() ) then<br />
18.<br />
lighty.header["Content-Encoding"] = &#8220;gzip&#8221;<br />
19.<br />
lighty.header["Content-Type"] = &#8220;&#8221;<br />
20.<br />
lighty.env["physical.path"] = cached_page .. &#8220;.gz&#8221;<br />
21.<br />
return true<br />
22.<br />
else<br />
23.<br />
return false<br />
24.<br />
end<br />
25.<br />
end<br />
26.</p>
<p>27.<br />
attr = lighty.stat(lighty.env["physical.path"])<br />
28.<br />
if (not attr) then<br />
29.</p>
<p>30.<br />
lighty.env["physical.rel-path"] = lighty.env["uri.path"]<br />
31.<br />
&#8211;Change the &#8220;/opt/apps/wordpress/&#8221; to your own wordpress location<br />
32.<br />
lighty.env["physical.path"] = &#8220;/opt/apps/wordpress/&#8221;<br />
33.<br />
.. lighty.env["physical.rel-path"]<br />
34.<br />
&#8211; If we are querying, we don&#8217;t have to cache of course<br />
35.<br />
query_condition = not ( lighty.env["uri.query"] and<br />
36.<br />
string.find(lighty.env["uri.query"], &#8220;.*s=.*&#8221;))<br />
37.<br />
&#8211;If there exists a cookie in the client, probably he/she has been here before<br />
38.<br />
&#8211;and has left a comment. In that case we don&#8217;t use cached content<br />
39.<br />
&#8211;for example, the user might has just submitted a comment.<br />
40.<br />
user_cookie = lighty.request["Cookie"] or &#8220;no_cookie_here&#8221;<br />
41.<br />
cookie_condition = not (string.find(user_cookie, &#8220;.*comment_author.*&#8221;) or<br />
42.<br />
string.find(user_cookie, &#8220;.*wordpress.*&#8221;) or<br />
43.<br />
string.find(user_cookie, &#8220;.*wp-postpass_.*&#8221;))<br />
44.</p>
<p>45.<br />
if (query_condition and cookie_condition) then<br />
46.<br />
&#8211;construct the full path of the expeted  cached filename for this url<br />
47.<br />
accept_encoding = lighty.request["Accept-Encoding"] or &#8220;no_acceptance&#8221;<br />
48.<br />
cached_page     = lighty.env["physical.doc-root"] ..<br />
49.<br />
&#8220;/wp-content/cache/supercache/&#8221; ..<br />
50.<br />
lighty.request["Host"] ..<br />
51.<br />
lighty.env["request.uri"] ..<br />
52.<br />
&#8220;/index.html&#8221;<br />
53.</p>
<p>54.<br />
cached_page = string.gsub(cached_page, &#8220;index.php/&#8221;, &#8220;/&#8221;)<br />
55.<br />
cached_page = string.gsub(cached_page, &#8220;//&#8221;, &#8220;/&#8221;)<br />
56.</p>
<p>57.<br />
&#8211;If the client accepts gzipped content, send gzipped content<br />
58.<br />
if (string.find(accept_encoding, &#8220;gzip&#8221;)) then<br />
59.<br />
&#8211;If for some reason the gzipped file does not exist, fallback to the<br />
60.<br />
&#8211;uncompressed cached file<br />
61.<br />
if not serve_gzip(cached_page, expiration_time) then<br />
62.<br />
serve_html(cached_page,expiration_time) end<br />
63.<br />
else<br />
64.<br />
serve_html(cached_page,expiration_time)<br />
65.<br />
end<br />
66.<br />
end<br />
67.<br />
end</p>
<p>If you want to use the script in your own server, the only things that you have to change is the hardcoded /opt/apps/wordpress/ path and the expiration_time variable.</p>
<p>Kudos to Giovanni Intini for porting the Apache mod_rewrite’s rules on mod_magnet and the original idea of the script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/872.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>url.rewrite for WordPress on Lighttpd</title>
		<link>http://www.evanjiang.net.cn/archives/870.html</link>
		<comments>http://www.evanjiang.net.cn/archives/870.html#comments</comments>
		<pubDate>Sun, 05 Apr 2009 13:35:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[url rewrite wordpress Lighttpd]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=870</guid>
		<description><![CDATA[<p>This blog now runs on a Lighttpd (Lighty) webserver instead of Apache, and this means the configuration for ‘pretty URLs’ or permalinks of WordPress doesn’t work like it used to.
(As you might have noticed, I use permalinks like /2007/02/this-is-permalink/)</p>
<p>Whereas WordPress can automatically adapt the Apache .htacccess file to something like

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} [...]]]></description>
			<content:encoded><![CDATA[<p>This blog now runs on a Lighttpd (Lighty) webserver instead of Apache, and this means the configuration for ‘pretty URLs’ or permalinks of WordPress doesn’t work like it used to.<br />
(As you might have noticed, I use permalinks like /2007/02/this-is-permalink/)</p>
<p>Whereas WordPress can automatically adapt the Apache .htacccess file to something like<br />
<IfModule mod_rewrite.c><br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
</IfModule><br />
it does not do anything automatically for your Lighty .conf configuration file (which is logical, since an application should not be allowed to mess with a central config file).</p>
<p>So what you have to use is:</p>
<p>a WordPress blog installed in the root of your (sub-) domain:<br />
$HTTP["host"] =~ “{yourdomain}” {<br />
var.app = “{yourdomain}”<br />
accesslog.filename = base + “/logs/” + app + “.access.log”<br />
server.errorlog = base + “/logs/” + app + “.error.log”<br />
load php app<br />
url.rewrite = (<br />
“^/(wp-.+).*/?” => “$0″,<br />
“^/(sitemap.xml)” => “$0″,<br />
“^/(xmlrpc.php)” => “$0″,<br />
“^/(.+)/?$” => “/index.php/$1″<br />
)<br />
}<br />
<span id="more-870"></span><br />
a WordPress blog installed in a subfolder (e.g. /blog/)<br />
$HTTP["host"] =~ “{yourdomain}” {<br />
var.app = “{yourdomain}”<br />
accesslog.filename = base + “/logs/” + app + “.access.log”<br />
server.errorlog = base + “/logs/” + app + “.error.log”<br />
load php app<br />
url.rewrite = (<br />
“^/?$” => “/blog/index.php”,<br />
“^/blog/(wp-.+)$” => “$0″,<br />
“^/blog/xmlrpc.php” => “$0″,<br />
“^/blog/sitemap.xml” => “$0″,<br />
“^/blog/(.+)/?$” => “/blog/index.php/$1″<br />
)<br />
}<br />
The xmlrpc.php rule is necessary for external access (like, publishing from del.icio.us or Flickr), and the sitemap.xml file is something for Google Sitemaps.</p>
<p>For those stubborn visitors who always precede their URLs with www, you can also add a redirect:</p>
<p>$HTTP["host"] =~ “www.blog.forret.com” {<br />
url.redirect = ( “.*” => “http://blog.forret.com”)<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/870.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to install LAMP (Apache, PHP and MySQL in Linux) using Yum</title>
		<link>http://www.evanjiang.net.cn/archives/868.html</link>
		<comments>http://www.evanjiang.net.cn/archives/868.html#comments</comments>
		<pubDate>Sun, 05 Apr 2009 13:19:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[lamp yum install]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=868</guid>
		<description><![CDATA[<p>Many friends ask me how to install LAMP (Linux, apache, php, mysql). There are many ways to install LAMP. Here i teach you the most easiest way to install LAMP using yum program in CentOS.
Below are the steps to install LAMP (Apache, PHP and MySQL in Linux) using Yum:-</p>
<p>•	Go to CentOS and download a copy [...]]]></description>
			<content:encoded><![CDATA[<p>Many friends ask me how to install LAMP (Linux, apache, php, mysql). There are many ways to install LAMP. Here i teach you the most easiest way to install LAMP using yum program in CentOS.<br />
Below are the steps to install LAMP (Apache, PHP and MySQL in Linux) using Yum:-</p>
<p>•	Go to CentOS and download a copy of CentOS Linux and install it (i’ll not go thru the how to install CentOS with you here)<br />
•	Once your CentOS is installed. Open a terminal (if you are using X-Window), and type yum install httpd and follow on screen instruction to install apache web server<br />
•	Once apache web server has been installed, type yum install php<br />
•	Once PHP installed successfully, type yum install mysql-servermysql<br />
•	Once everything finish, type service httpd start to start your apache web server, screen will show you if web server service successfully started<br />
•	type service mysqld start to start your mysql server<br />
•	Once both services is running, you can point your browser to http://localhost and you should see a welcome page from CentOS<br />
•	If you see that welcome page, you just installed everything successfull.<br />
•	To test if php is running, go to /var/www/html and create anindex.php file with the content below<br />
<?php phpinfo(); ?><br />
and refresh your browser again. If you see a purple PHP information page showing all the php configuration variables, then php is running now.<br />
•	Congratulation, you just successfully installed LAMP in your machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/868.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bugzilla + Oracle + Linux 安装笔记</title>
		<link>http://www.evanjiang.net.cn/archives/809.html</link>
		<comments>http://www.evanjiang.net.cn/archives/809.html#comments</comments>
		<pubDate>Sat, 14 Mar 2009 12:11:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[Bugzilla + Oracle + Linux]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=809</guid>
		<description><![CDATA[<p>Bugzilla 3.2今天发布，该版本增加很多新的功能，其中重要的新功能包括Oracle数据库支持. 下面介绍Bugzilla + Oracle + Linux的安装过程笔记 </p>
<p>，详细请参照Bugzilla的安装文档. </p>
<p>== 准备工作 == </p>
<p>检查所需软件:
Perl 5.81 及以上
Oracle v10.02.0 及以上
Apache(httpd),sendmail等 </p>
<p>== Oracle的安装配置 == </p>
<p>Oracle需要v10.02.0以上版本支持，可以是企业版，也可以是XE版，具体用哪个版本，可以根据需要来确定. </p>
<p>Oracle安装文档到处都有，这里就不说，开始说Oracle的配置吧. </p>
<p>=== 1. 创建Tablespace(可选):=== </p>
<p>用sys 或者 system用户登陆sqlplus, 执行:
CREATE TABLESPACE bugs
    DATAFILE &#8216;/u01/oradata/bugzilla.dbf&#8217; SIZE 500M
    AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED; </p>
<p>=== 2. 创建bugzilla用户: ===
用sys 或者 system用户登陆sqlplus, 执行(创建数据库用户bugs, 密码bugs):
CREATE USER [...]]]></description>
			<content:encoded><![CDATA[<p>Bugzilla 3.2今天发布，该版本增加很多新的功能，其中重要的新功能包括Oracle数据库支持. 下面介绍Bugzilla + Oracle + Linux的安装过程笔记 </p>
<p>，详细请参照Bugzilla的安装文档. </p>
<p>== 准备工作 == </p>
<p>检查所需软件:<br />
Perl 5.81 及以上<br />
Oracle v10.02.0 及以上<br />
Apache(httpd),sendmail等 </p>
<p>== Oracle的安装配置 == </p>
<p>Oracle需要v10.02.0以上版本支持，可以是企业版，也可以是XE版，具体用哪个版本，可以根据需要来确定. </p>
<p>Oracle安装文档到处都有，这里就不说，开始说Oracle的配置吧. </p>
<p>=== 1. 创建Tablespace(可选):=== </p>
<p>用sys 或者 system用户登陆sqlplus, 执行:<br />
CREATE TABLESPACE bugs<br />
    DATAFILE &#8216;/u01/oradata/bugzilla.dbf&#8217; SIZE 500M<br />
    AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED; </p>
<p>=== 2. 创建bugzilla用户: ===<br />
用sys 或者 system用户登陆sqlplus, 执行(创建数据库用户bugs, 密码bugs):<br />
CREATE USER bugs<br />
    IDENTIFIED BY &#8220;bugs&#8221;<br />
    DEFAULT TABLESPACE bugs<br />
    TEMPORARY TABLESPACE TEMP<br />
    PROFILE DEFAULT;<br />
    &#8212; GRANT/REVOKE ROLE PRIVILEGES<br />
    GRANT CONNECT TO bugs;<br />
    GRANT RESOURCE TO bugs;<br />
    &#8212; GRANT/REVOKE SYSTEM PRIVILEGES<br />
    GRANT UNLIMITED TABLESPACE TO bugs;<br />
    GRANT EXECUTE ON CTXSYS.CTX_DDL TO bugs;<br />
<span id="more-809"></span><br />
===  Apache配置 ===<br />
配置ORACLE_HOME和LD_LIBRARY_PATH, 例如: </p>
<p>vi /etc/http/conf.d/bugzilla.conf </p>
<p>输入保存:<br />
# Set ORACLE_HOME and LD_LIBRARY_PATH<br />
SetEnv ORACLE_HOME /usr/lib/oracle/xe/app/oracle/product/10.2.0/server<br />
SetEnv LD_LIBRARY_PATH /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib </p>
<p>== 安装Bugzilla 3.2 ==<br />
=== 下载并解压 ===<br />
下载Bugzilla3.2, http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.2.tar.gz<br />
cd /var/www/html/<br />
wget [url=http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.2.tar.gz]http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.2.tar.gz<br />
tar zxvf bugzilla-3.2.tar.gz<br />
mv bugzilla-3.2 bugzilla </p>
<p>=== checksetup.pl ===<br />
接下来执行checksetup.pl<br />
cd bugzilla<br />
./checksetup.pl </p>
<p>根据提示安装必须的perl模块, 在此之前你需要安装perl-CPAN<br />
yum install perl-CPAN<br />
Linux下面安装Bugzilla所需的perl模块，最简单的方式是利用Bugzilla提供的install-module.pl工具, 执行:<br />
/usr/bin/perl install-module.pl &#8211;all<br />
遇到所有提示，默认即可 </p>
<p>安装DBD::Oracle </p>
<p>export ORACLE_HOME=&#8221;/usr/lib/oracle/xe/app/oracle/product/10.2.0/server&#8221;<br />
export LD_LIBRARY_PATH=&#8221;/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib&#8221;<br />
/usr/bin/perl install-module.pl DBD::Oracle </p>
<p>&#8221;说明: 如果Oracle数据库是在远程，则安装Bugzilla的机器上面必须安装[url=http://www.oracle.com/technology/software/tech/oci/instantclient/index.html]Oracle Instant Client或者Oracle Client，然后设置相应的ORACLE_HOME和LD_LIBRARY_PATH&#8221; </p>
<p>再次执行checksetup.pl, 产生localconfig文件:<br />
./checksetup.pl </p>
<p>编辑localconfig文件: </p>
<p>$db_driver = &#8216;oracle&#8217;;<br />
$db_host = &#8217;10.182.120.189&#8242;;              <-- 数据库IP<br />
$db_name = 'XE';                            <-- 数据库实例名SID<br />
$db_user = 'bugs';                        <-- 数据库用户名<br />
$db_pass = 'bugs'                         <-- 数据库密码 </p>
<p>配置完localconfig之后，再次运行checksetup.pl: </p>
<p>./checksetup.pl<br />
填入管理员信息: </p>
<p>Enter the e-mail address of the administrator: [email=admin@kk.com]admin@kk.com[/email]<br />
Enter the real name of the administrator: Admin<br />
Enter a password for the administrator account:<br />
Please retype the password to verify: </p>
<p>=== 配置Apache ===<br />
配置/etc/httpd/conf.d/bugzilla.conf, 加入 </p>
<p><Directory /var/www/html/bugzilla><br />
    AddHandler cgi-script .cgi<br />
    Options +Indexes +ExecCGI<br />
    DirectoryIndex index.cgi<br />
    AllowOverride Limit<br />
</Directory> </p>
<p>重新启动Apache<br />
service httpd restart </p>
<p>用管理员登陆 http://yourip/bugzilla/, 然后配置 urlbase </p>
<p>安装完成! </p>
<p>&#8221;说明：如果遇到类似下面的问题, 请关闭系统的selinux，然后重启系统：&#8221;<br />
&#8216;oracle&#8217; is not a valid choice for $db_driver in  localconfig: Can&#8217;t load &#8216;lib/i386-linux-thread-<br />
  multi/auto/DBD/Oracle/Oracle.so&#8217; for module DBD::Oracle:<br />
libclntsh.so.10.1: cannot enable executable stack as shared object requires: Permission denied at<br />
  /usr/lib/perl5/5.10.0/i386-linux-thread-<br />
multi/DynaLoader.pm line 203.<br />
at Bugzilla/DB/Oracle.pm line 41<br />
Compilation failed in require at Bugzilla/DB/Oracle.pm line 41.<br />
BEGIN failed&#8211;compilation aborted at Bugzilla/DB/Oracle.pm line 41.<br />
Compilation failed in require at (eval 30) line 3.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/809.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centOS yum的详细使用方法</title>
		<link>http://www.evanjiang.net.cn/archives/764.html</link>
		<comments>http://www.evanjiang.net.cn/archives/764.html#comments</comments>
		<pubDate>Fri, 06 Mar 2009 11:28:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[centso yum 详细 使用 方法]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=764</guid>
		<description><![CDATA[<p>yum是什么</p>
<p>* yum = Yellow dog Updater, Modified
* 主要功能是更方便的添加/删除/更新RPM包.
* 它能自动解决包的倚赖性问题.
* 它能便于管理大量系统的更新问题</p>
<p>yum特点</p>
<p>* 可以同时配置多个资源库(Repository)
* 简洁的配置文件(/etc/yum.conf
* 自动解决增加或删除rpm包时遇到的倚赖性问题
* 使用方便
* 保持与RPM数据库的一致性</p>
<p>yum安装</p>
<p>* CentOS自带(yum-*.noarch.rpm)</p>
<p>#rpm -ivh yum-*.noarch.rpm</p>
<p>* 在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY：</p>
<p>#rpm &#8211;import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)</p>
<p>yum指令</p>
<p>* 注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.

rpm包的更新</p>
<p>* 检查可更新的rpm包</p>
<p>#yum check-update</p>
<p>* 更新所有的rpm包</p>
<p>#yum update</p>
<p>* 更新指定的rpm包,如更新kernel和kernel source</p>
<p>#yum update kernel kernel-source</p>
<p>* 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级</p>
<p>#yum upgrade</p>
<p>rpm包的安装和删除</p>
<p>* 安装rpm包,如xmms-mp3</p>
<p>#yum install xmms-mp3</p>
<p>* 删除rpm包,包括与该包有倚赖性的包</p>
<p>#yum remove licq</p>
<p>* 注:同时会提示删除licq-gnome,licq-qt,licq-text</p>
<p>yum暂存(/var/cache/yum/)的相关参数</p>
<p>* 清除暂存中rpm包文件</p>
<p>#yum clean packages








* 清除暂存中rpm头文件</p>
<p>#yum clearn headers</p>
<p>* 清除暂存中旧的rpm头文件</p>
<p>#yum clean oldheaders</p>
<p>* 清除暂存中旧的rpm头文件和包文件</p>
<p>#yum clearn 或#yum clearn all</p>
<p>* [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;">yum是什么</span></p>
<p><span style="color: #000000;">* yum = Yellow dog Updater, Modified<br />
* 主要功能是更方便的添加/删除/更新RPM包.<br />
* 它能自动解决包的倚赖性问题.<br />
* 它能便于管理大量系统的更新问题</span></p>
<p><span style="color: #000000;">yum特点</span></p>
<p><span style="color: #000000;">* 可以同时配置多个资源库(Repository)<br />
* 简洁的配置文件(/etc/yum.conf<br />
* 自动解决增加或删除rpm包时遇到的倚赖性问题<br />
* 使用方便<br />
* 保持与RPM数据库的一致性</span></p>
<p><span style="color: #000000;">yum安装</span></p>
<p><span style="color: #000000;">* CentOS自带(yum-*.noarch.rpm)</span></p>
<p><span style="color: #000000;">#rpm -ivh yum-*.noarch.rpm</span></p>
<p><span style="color: #000000;">* 在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY：</span></p>
<p><span style="color: #000000;">#rpm &#8211;import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)</span></p>
<p><span style="color: #000000;">yum指令</span></p>
<p><span style="color: #000000;">* 注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.<br />
<span id="more-764"></span><br />
rpm包的更新</span></p>
<p><span style="color: #000000;">* 检查可更新的rpm包</span></p>
<p><span style="color: #000000;">#yum check-update</span></p>
<p><span style="color: #000000;">* 更新所有的rpm包</span></p>
<p><span style="color: #000000;">#yum update</span></p>
<p><span style="color: #000000;">* 更新指定的rpm包,如更新kernel和kernel source</span></p>
<p><span style="color: #000000;">#yum update kernel kernel-source</span></p>
<p><span style="color: #000000;">* 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级</span></p>
<p><span style="color: #000000;">#yum upgrade</span></p>
<p><span style="color: #000000;">rpm包的安装和删除</span></p>
<p><span style="color: #000000;">* 安装rpm包,如xmms-mp3</span></p>
<p><span style="color: #000000;">#yum install xmms-mp3</span></p>
<p><span style="color: #000000;">* 删除rpm包,包括与该包有倚赖性的包</span></p>
<p><span style="color: #000000;">#yum remove licq</span></p>
<p><span style="color: #000000;">* 注:同时会提示删除licq-gnome,licq-qt,licq-text</span></p>
<p><span style="color: #000000;">yum暂存(/var/cache/yum/)的相关参数</span></p>
<p><span style="color: #000000;">* 清除暂存中rpm包文件</span></p>
<p><span style="color: #000000;">#yum clean packages<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
* 清除暂存中rpm头文件</span></p>
<p><span style="color: #000000;">#yum clearn headers</span></p>
<p><span style="color: #000000;">* 清除暂存中旧的rpm头文件</span></p>
<p><span style="color: #000000;">#yum clean oldheaders</span></p>
<p><span style="color: #000000;">* 清除暂存中旧的rpm头文件和包文件</span></p>
<p><span style="color: #000000;">#yum clearn 或#yum clearn all</span></p>
<p><span style="color: #000000;">* 注:相当于yum clean packages + yum clean oldheaders</span></p>
<p><span style="color: #000000;">包列表</span></p>
<p><span style="color: #000000;">* 列出资源库中所有可以安装或更新的rpm包</span></p>
<p><span style="color: #000000;">#yum list</span></p>
<p><span style="color: #000000;">* 列出资源库中特定的可以安装或更新以及已经安装的rpm包</span></p>
<p><span style="color: #000000;">#yum list mozilla<br />
#yum list mozilla*</span></p>
<p><span style="color: #000000;">* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包</span></p>
<p><span style="color: #000000;">* 列出资源库中所有可以更新的rpm包</span></p>
<p><span style="color: #000000;">#yum list updates</span></p>
<p><span style="color: #000000;">* 列出已经安装的所有的rpm包</span></p>
<p><span style="color: #000000;">#yum list installed</span></p>
<p><span style="color: #000000;">* 列出已经安装的但是不包含在资源库中的rpm包</span></p>
<p><span style="color: #000000;">#yum list extras</span></p>
<p><span style="color: #000000;">* 注:通过其它网站下载安装的rpm包</span></p>
<p><span style="color: #000000;">rpm包信息显示(info参数同list)</span></p>
<p><span style="color: #000000;">* 列出资源库中所有可以安装或更新的rpm包的信息</span></p>
<p><span style="color: #000000;">#yum info</span></p>
<p><span style="color: #000000;">* 列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息</span></p>
<p><span style="color: #000000;">#yum info mozilla<br />
#yum info mozilla*</span></p>
<p><span style="color: #000000;">* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息</span></p>
<p><span style="color: #000000;">* 列出资源库中所有可以更新的rpm包的信息</span></p>
<p><span style="color: #000000;">#yum info updates</span></p>
<p><span style="color: #000000;">* 列出已经安装的所有的rpm包的信息</span></p>
<p><span style="color: #000000;">#yum info installed</span></p>
<p><span style="color: #000000;">* 列出已经安装的但是不包含在资源库中的rpm包的信息</span></p>
<p><span style="color: #000000;">#yum info extras</span></p>
<p><span style="color: #000000;">* 注:通过其它网站下载安装的rpm包的信息</span></p>
<p><span style="color: #000000;">搜索rpm包</span></p>
<p><span style="color: #000000;">* 搜索匹配特定字符的rpm包</span></p>
<p><span style="color: #000000;">#yum search mozilla</span></p>
<p><span style="color: #000000;">* 注:在rpm包名,包描述等中搜索</span></p>
<p><span style="color: #000000;">* 搜索有包含特定文件名的rpm包</span></p>
<p><span style="color: #000000;">#yum provides realplay</span></p>
<p><span style="color: #000000;">增加资源库</span></p>
<p><span style="color: #000000;">* 例如:增加rpm.livna.org作为资源库</span></p>
<p><span style="color: #000000;">* 安装Livna.org rpms GPG key</span></p>
<p><span style="color: #000000;">#rpm &#8211;import http://rpm.livna.org/RPM-LIVNA-GPG-KEY</span></p>
<p><span style="color: #000000;">* 检查GPG Key</span></p>
<p><span style="color: #000000;"># rpm -qa gpg-pubkey*</span></p>
<p><span style="color: #000000;">* 显示Key信息</span></p>
<p><span style="color: #000000;">#rpm -qi gpg-pubkey-a109b1ec-3f6e28d5</span></p>
<p><span style="color: #000000;">* (注:如果要删除Key,使用#rpm -e gpg-pubkey-a109b1ec-3f6e28d5)</span></p>
<p><span style="color: #000000;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
yum默认的下载站点在国外，速度往往比较慢，为了加快yum的下载速度，可以将yum的“源”修改成国内镜像</span></p>
<p><span style="color: #000000;">mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak （先做个备份）<br />
kate /etc/yum.repos.d/CentOS-Base.repo</span></p>
<p><span style="color: #000000;">将下列代码加粘贴进去，然后保存即可。<br />
[base]<br />
name=CentOS-4 &#8211; Base<br />
baseurl=http://mirror.be10.com/centos/4/os/i386/<br />
gpgcheck=1</span></p>
<p><span style="color: #000000;">#released updates<br />
[update]<br />
name=CentOS-4 &#8211; Updates<br />
baseurl=http://mirror.be10.com/centos/4/updates/i386/<br />
gpgcheck=1</span></p>
<p><span style="color: #000000;">#packages used/produced in the build but not released<br />
[addons]<br />
name=CentOS-4 &#8211; Addons<br />
baseurl=http://mirror.be10.com/centos/4/addons/i386/<br />
gpgcheck=1</span></p>
<p><span style="color: #000000;">#additional packages that may be useful<br />
[extras]<br />
name=CentOS-4 &#8211; Extras<br />
baseurl=http://mirror.be10.com/centos/4/extras/i386/<br />
gpgcheck=1</span></p>
<p><span style="color: #000000;">#additional packages that extend functionality of existing packages<br />
[centosplus]<br />
name=CentOS-4 &#8211; Plus<br />
baseurl=http://mirror.be10.com/centos/4/centosplus/i386/<br />
gpgcheck=1<br />
enabled=0<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
#contrib &#8211; packages by Centos Users<br />
[contrib]<br />
name=CentOS-4 &#8211; Contrib<br />
baseurl=http://mirror.be10.com/centos/4/contrib/i386/<br />
gpgcheck=1<br />
enabled=0</span></p>
<p><span style="color: #000000;">#packages in testing<br />
[testing]<br />
name=CentOS-4 &#8211; Testing<br />
baseurl=http://mirror.be10.com/centos/4/testing/i386/<br />
gpgcheck=1<br />
enabled=0</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/764.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos下安装jdk15+ MySQL5+Apache22(worker+ssl)+PHP5+Resin3</title>
		<link>http://www.evanjiang.net.cn/archives/759.html</link>
		<comments>http://www.evanjiang.net.cn/archives/759.html#comments</comments>
		<pubDate>Fri, 06 Mar 2009 11:02:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[centos下安装jdk15+ MySQL5+Apache22(worker+ssl)+PHP5+Resin3]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=759</guid>
		<description><![CDATA[<p>系统：CentOS4.3</p>
<p>1、安装jdk1.5
修改jdk-1_5_0_07-linux-i586.bin为可执行：
#./jdk-1_5_0_07-linux-i586.bin进行安装，然后会在当前目录下解压，生成一个名为 jdk-1_5_0_07的目录
#mv jdk-1_5_0_07 /usr/local/jdk
安装ok后设置环境变量：
修改/etc/profile
增加如下内容：
JAVA_HOME=/usr/local/jdk
RESIN_HOME=/usr/local/resin
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$RESIN_HOME/lib:/usr/local/jdbc
export RESIN_HOME JAVA_HOME CLASSPATH
存盘退出。。。
source /etc/profile</p>
<p>2、安装openssl
解压openssl-0.9.8b.tar.gz
#tar zxvf openssl-0.9.8b.tar.gz
#cd openssl-0.9.8b
#./Configure
#make install

接下来安装相关应用软件：
1.MySQL5 </p>
<p>2.安装mysql5.0.18（源码包）
源码包可以在这个网址获得：</p>
<p>http://download.mysql.cn/src/2006/0208/62.html</p>
<p>所有这些操作需要root权限
安装开始：
1&#62;cd /home/ftpsite
2&#62;groupadd mysql&#8212;&#8212;&#8212;-添加mysql用户组,如果提示该组存在,则不用再加
3&#62;useradd -g mysql mysql&#8212;&#8211;加mysql用户,并把它归到mysql组,如果提示用户存在,则不用再加
4&#62;tar zxvf mysql-5.0.18.tar.tar
5&#62;cd mysql-5.0.18
6&#62;./configure &#8211;prefix=/usr/local/mysql
7&#62;make
8&#62;make install
9&#62;cp support-files/my-medium.cnf /etc/my.cnf
10&#62;cd /usr/local/mysql
11&#62;./bin/mysql_install_db
12&#62;chown -R root /usr/local/mysql
13&#62;chown -R mysql /usr/local/mysql/var
14&#62;chgrp -R root /usr/local/mysql
15&#62;./bin/mysqld_saft &#8211;user=mysql &#38;
16&#62;./bin/mysql
17&#62;mysql&#62;&#8212;&#8212;&#8212;&#8212;&#8212;经过第16步,你应该能看到mysql&#62;提示符,那么恭喜你安装初步成功</p>
<p>2.Apache22








下载httpd-2.0.55.tar.gz, php-5.0.5.tar.gz等二进制源码包
执行下列命令解压源码包
# tar -zxvf httpd-2.0.55.tar.gz
进入安装目录
# cd httpd-2.0.55
配置apache安装信息：
#./configure &#8211;enable-layout=Apache &#8211;enable-so &#8211;enable-ssl=shared &#8211;with-mpm=worker &#8211;with-ssl=/usr/share/ssl
执行make安装：
# make; make install
使用/usr/local/apache/bin/apachectl start 启动apache</p>
<p>#/usr/local/sbin/httpd -l
看看是否存在以下几个模块
core.c
worker.c
http_core.c
mod_so.c
现在是使用worker方式运行的apache。</p>
<p>OK，完成。</p>
<p>3.PHP5
安装php
tar -zxvf [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;">系统：CentOS4.3</span></p>
<p><span style="color: #000000;">1、安装jdk1.5<br />
修改jdk-1_5_0_07-linux-i586.bin为可执行：<br />
#./jdk-1_5_0_07-linux-i586.bin进行安装，然后会在当前目录下解压，生成一个名为 jdk-1_5_0_07的目录<br />
#mv jdk-1_5_0_07 /usr/local/jdk<br />
安装ok后设置环境变量：<br />
修改/etc/profile<br />
增加如下内容：<br />
JAVA_HOME=/usr/local/jdk<br />
RESIN_HOME=/usr/local/resin<br />
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$RESIN_HOME/lib:/usr/local/jdbc<br />
export RESIN_HOME JAVA_HOME CLASSPATH<br />
存盘退出。。。<br />
source /etc/profile</span></p>
<p><span style="color: #000000;">2、安装openssl<br />
解压openssl-0.9.8b.tar.gz<br />
#tar zxvf openssl-0.9.8b.tar.gz<br />
#cd openssl-0.9.8b<br />
#./Configure<br />
#make install<br />
<span id="more-759"></span><br />
接下来安装相关应用软件：<br />
1.MySQL5 </span></p>
<p><span style="color: #000000;">2.安装mysql5.0.18（源码包）<br />
源码包可以在这个网址获得：</p>
<p>http://download.mysql.cn/src/2006/0208/62.html</p>
<p>所有这些操作需要root权限<br />
安装开始：<br />
1&gt;cd /home/ftpsite<br />
2&gt;groupadd mysql&#8212;&#8212;&#8212;-添加mysql用户组,如果提示该组存在,则不用再加<br />
3&gt;useradd -g mysql mysql&#8212;&#8211;加mysql用户,并把它归到mysql组,如果提示用户存在,则不用再加<br />
4&gt;tar zxvf mysql-5.0.18.tar.tar<br />
5&gt;cd mysql-5.0.18<br />
6&gt;./configure &#8211;prefix=/usr/local/mysql<br />
7&gt;make<br />
8&gt;make install<br />
9&gt;cp support-files/my-medium.cnf /etc/my.cnf<br />
10&gt;cd /usr/local/mysql<br />
11&gt;./bin/mysql_install_db<br />
12&gt;chown -R root /usr/local/mysql<br />
13&gt;chown -R mysql /usr/local/mysql/var<br />
14&gt;chgrp -R root /usr/local/mysql<br />
15&gt;./bin/mysqld_saft &#8211;user=mysql &amp;<br />
16&gt;./bin/mysql<br />
17&gt;mysql&gt;&#8212;&#8212;&#8212;&#8212;&#8212;经过第16步,你应该能看到mysql&gt;提示符,那么恭喜你安装初步成功</span></p>
<p><span style="color: #000000;">2.Apache22<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
下载httpd-2.0.55.tar.gz, php-5.0.5.tar.gz等二进制源码包<br />
执行下列命令解压源码包<br />
# tar -zxvf httpd-2.0.55.tar.gz<br />
进入安装目录<br />
# cd httpd-2.0.55<br />
配置apache安装信息：<br />
#./configure &#8211;enable-layout=Apache &#8211;enable-so &#8211;enable-ssl=shared &#8211;with-mpm=worker &#8211;with-ssl=/usr/share/ssl<br />
执行make安装：<br />
# make; make install<br />
使用/usr/local/apache/bin/apachectl start 启动apache</span></p>
<p><span style="color: #000000;">#/usr/local/sbin/httpd -l<br />
看看是否存在以下几个模块<br />
core.c<br />
worker.c<br />
http_core.c<br />
mod_so.c<br />
现在是使用worker方式运行的apache。</span></p>
<p><span style="color: #000000;">OK，完成。</span></p>
<p><span style="color: #000000;">3.PHP5<br />
安装php<br />
tar -zxvf php-5.1.4.tar.gz<br />
cd php-5.1.4<br />
./configure &#8211;prefix=/usr/local/php5 (配置php的参数)<br />
&#8211;with-apxs2=/usr/local/apache2/bin/apxs<br />
&#8211;with-libxml-dir=/usr/local/lib<br />
&#8211;enable-sockets<br />
&#8211;with-mysql=/usr/local/mysql (mysql 的安装目录 就是那个解压后的目录)<br />
# make<br />
# make install<br />
将安装目录下的php.ini-dist文件改为php.ini存放的/usr/local/lib下。 </span></p>
<p><span style="color: #000000;">安装后修改httpd.conf文件：<br />
将httpd.conf中的loadmodule 最后一个刚加进去的php的#去掉<br />
在AddType application/x-gzip .gz .tgz后面加：<br />
AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php-source .phps<br />
随后设置网站默认启动页允许为index.php，找到 DirectoryIndex这行，改为：<br />
DirectoryIndex index.html index.htm index.php</span></p>
<p><span style="color: #000000;">写一个phpinfo()测试一下就可以。 </span></p>
<p><span style="color: #000000;">4.安装phpMyAdmin</span></p>
<p><span style="color: #000000;">下面我们开始安装phpMyAdmin2.8.0.1! 这个文件应该从网上找的到！<br />
把下载好的源码放在/usr/local/www/data下面，解压！<br />
#tar xvzf phpMyAdmin.tar.gz<br />
进入phpmyadmin下的libraries 目录！<br />
修改 config.default.php:<br />
找到$cfg['PmaAbsoluteUri'] = &#8221;;<br />
修改成 $cfg['PmaAbsoluteUri'] = &#8216;http://你的IP/phpmyadmin&#8217;;<br />
找到$cfg['Servers'][$i]['auth_type'] = &#8216;config&#8217;; // Authentication method (config, http or cookie based)?<br />
$cfg['Servers'][$i]['user'] = &#8216;root&#8217;; // MySQL user<br />
$cfg['Servers'][$i]['password'] = &#8221;;<br />
写上你的Mysql用户名and密码！<br />
保存退出！<br />
然后用http://your/ IP/phpmyadmin访问！如果出现mysql管理页面，则安装成功，如果没有出现，请检查配制文件！</span></p>
<p><span style="color: #000000;">5．安装resin<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
安装resin：<br />
1）到http://www.caucho.com/下载resin-3.0.18.tar.gz，这个是目前的最新版本<br />
2）解压 生成目录 resin-3.0.18<br />
3）执行 mv resin-3.0.18 /usr/local/resin<br />
4）重新编译resin：<br />
./configure &#8211;with-apxs=/usr/local/apache2/bin/apxs &#8211;with-java-home=/usr/local/jdk/ &#8211;prefix=/usr/local/resin<br />
make &amp;&amp; make install &amp;&amp; make clean<br />
如果/etc/profile设置没有问题的话，该步骤能够正常运行</span></p>
<p><span style="color: #000000;">6．整合Apache和Resin<br />
1）修改/usr/local/apache/conf/httpd.conf<br />
增加：<br />
LoadModule caucho_module /usr/local/apache/libexec/mod_caucho.so<br />
ResinConfigServer localhost 6802<br />
CauchoStatus yes</p>
<p>SetHandler caucho-status</p>
<p>2）修改/usr/local/resin/conf/resin.conf<br />
修改以下片断：</p>
<p>3）<br />
重新启动 apache,<br />
/usr/local/apache/bin/apachectl start<br />
启动 resin<br />
/usr/local/resin/bin/httpd.sh start<br />
写一个简单的脚本可以测试，jsp执行是否成功。</span></p>
<p><span style="color: #000000;">7．Resin连接MySQL数据库</span></p>
<p><span style="color: #000000;">下载相相应的jbdc 驱动，俺下载的是:mysql-connector-java-3.1.12-bin.jar，将此文件放<br />
到/usr/local/resin/lib下!<br />
然后再写一个jsp连接mysql的jsp文件测试一下!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/759.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centos 5.0安装Oracle9208笔记</title>
		<link>http://www.evanjiang.net.cn/archives/755.html</link>
		<comments>http://www.evanjiang.net.cn/archives/755.html#comments</comments>
		<pubDate>Fri, 06 Mar 2009 10:59:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[Centos 5.0  安装  Oracle9208  笔记]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=755</guid>
		<description><![CDATA[<p>Linux as 2.6.18-8.EL5 #1 smp
一，解压缩Oracle9204的安装文件
1． Oracle 9iR2 (9.2.0)
(1) 简化过程（以oracle登录，释放安装文件,使用更少的磁盘空间，速度更快）
在安装LINUX时最好分一个区/orasetup,这样一来即使系统坏了,也只是重装系统,而无须重新拷贝数据库安装文件.
在Linux下使用ISO文件:
Mkdir /mnt/iso1 iso2 iso3
mount -t iso9660 -o loop linux_ora9_d1.iso /mnt/iso1/
mount -t iso9660 -o loop linux_ora9_d2.iso /mnt/iso2/
mount -t iso9660 -o loop linux_ora9_d3.iso /mnt/iso3/
umount /mnt/isoX
或
zcat ship_9204_linux_disk1.cpio.gz &#124; cpio –idmv &#38;&#38;
zcat ship_9204_linux_disk2.cpio.gz &#124; cpio –idmv &#38;&#38;
zcat ship_9204_linux_disk3.cpio.gz &#124; cpio –idmv
(2) 解包和解压过程中，自动创建了3个包含安装文件的目录：
Disk1
Disk2
Disk3
之后就可以安装Oracle9iR2了。
二，安装前的检查和准备工作；
1， 查看这些开发包是否已安装；
Centos 5.0完全安装.</p>
<p>安装需要的软件包和补丁包:
p4198954_21_linux.zip 在运行 runInstaller 之前打.
p3238244_9204_LINUX.zip 修复agent错误的补丁.
p2617419_210_GENERIC.zip 打3238244补丁所需要的补丁.
其中compat-oracle-rhel4和compat-libcwait可以在如下网站:</p>
<p>http://oss.oracle.com/projects/compat-oracle/files/RedHat/</p>
<p># rpm -qa [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;">Linux as 2.6.18-8.EL5 #1 smp<br />
一，解压缩Oracle9204的安装文件<br />
1． Oracle 9iR2 (9.2.0)<br />
(1) 简化过程（以oracle登录，释放安装文件,使用更少的磁盘空间，速度更快）<br />
在安装LINUX时最好分一个区/orasetup,这样一来即使系统坏了,也只是重装系统,而无须重新拷贝数据库安装文件.<br />
在Linux下使用ISO文件:<br />
Mkdir /mnt/iso1 iso2 iso3<br />
mount -t iso9660 -o loop linux_ora9_d1.iso /mnt/iso1/<br />
mount -t iso9660 -o loop linux_ora9_d2.iso /mnt/iso2/<br />
mount -t iso9660 -o loop linux_ora9_d3.iso /mnt/iso3/<br />
umount /mnt/isoX<br />
或<br />
zcat ship_9204_linux_disk1.cpio.gz | cpio –idmv &amp;&amp;<br />
zcat ship_9204_linux_disk2.cpio.gz | cpio –idmv &amp;&amp;<br />
zcat ship_9204_linux_disk3.cpio.gz | cpio –idmv<br />
(2) 解包和解压过程中，自动创建了3个包含安装文件的目录：<br />
Disk1<br />
Disk2<br />
Disk3<br />
之后就可以安装Oracle9iR2了。<br />
二，安装前的检查和准备工作；<br />
1， 查看这些开发包是否已安装；<br />
Centos 5.0完全安装.</span></p>
<p><span style="color: #000000;">安装需要的软件包和补丁包:<br />
p4198954_21_linux.zip 在运行 runInstaller 之前打.<br />
p3238244_9204_LINUX.zip 修复agent错误的补丁.<br />
p2617419_210_GENERIC.zip 打3238244补丁所需要的补丁.<br />
其中compat-oracle-rhel4和compat-libcwait可以在如下网站:</p>
<p>http://oss.oracle.com/projects/compat-oracle/files/RedHat/</p>
<p># rpm -qa | grep ‘compat’<br />
三，创建数据库安装的准备工作；<br />
1，创建user/group；<br />
#groupadd dba<br />
#groupadd oinstall<br />
#useradd oracle -g oinstall -G dba<br />
#passwd oracle<br />
2，建立oracle安装文件夹；<br />
# mkdir -pv /u01/app/oracle/product/9.2.0<br />
# chown -R oracle.dba /u01/app<br />
# chmod -R 755 /u01/app/</span><br />
<span id="more-755"></span><br />
<span style="color: #000000;"># mkdir –pv /u01/cwdata<br />
# chmod 755 /u01/cwdata<br />
# chown oracle.dba /u01/cwdata<br />
# chown –R oracle.dba /orasetup<br />
# chmod 755 /orasetup</span></p>
<p><span style="color: #000000;">#mkdir /var/opt/oracle<br />
#chown oracle.dba /var/opt/oracle<br />
#chmod 755 /var/opt/oracle<br />
#修改/etc/hosts 把x.x.x.x servername加入<br />
把权限分配好</span></p>
<p><span style="color: #000000;">2， 配置环境变量；<br />
以root用户登录，设置root用户的环境打开.bash_profile文件，将如下内容加入：<br />
export ORACLE_BASE=/u01/app/oracle<br />
export ORACLE_HOME=/u01/app/oracle/product/9.2.0<br />
export PATH=$PATH ORACLE_HOME/bin ORACLE_HOME/Apache/Apache/bin<br />
export ORACLE_OWNER=oracle<br />
export ORACLE_SID=oradb<br />
export ORACLE_TERM=xterm<br />
#export LD_ASSUME_KERNEL=2.4.19<br />
export THREADS_FLAG=native<br />
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH ORACLE_HOME/lib<br />
export ORACLE_OEM_JAVARUNTIME=/u01/app/oracle/jre1.3.1<br />
export NLS_LANG=”American_america.zhs16gbk”<br />
# export NLS_LANG=&#8221;SIMPLIFIED CHINESE_CHINA.ZHS16GBK&#8221;<br />
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data<br />
export DISPLAY=:0.0<br />
#export LANG=en_US<br />
#export GDM_LANG= en_US<br />
#export LC= en_US<br />
使用Oracle用户登陆:<br />
#su – oracle<br />
#cp /etc/sysconfig/i18n /home/oracle/.i18n 然后修改LANG=&#8221;en_US&#8221;<br />
$vi .bash_profile<br />
以下是配置文件的内容（其中红色字体为添加的内容）<br />
# .bash_profile</span></p>
<p><span style="color: #000000;"># Get the aliases and functions<br />
if [ -f ~/.bashrc ]; then<br />
. ~/.bashrc<br />
fi</span></p>
<p><span style="color: #000000;"># User specific environment and startup programs</span></p>
<p><span style="color: #000000;">PATH=$PATH HOME/bin<br />
#ORACLE_BASE 可以定位到盘阵上/data<br />
export ORACLE_BASE=/u01/app/oracle<br />
export ORACLE_HOME=/u01/app/oracle/product/9.2.0<br />
export PATH=$PATH ORACLE_HOME/bin ORACLE_HOME/Apache/Apache/bin<br />
export ORACLE_OWNER=oracle<br />
export ORACLE_SID=oradb<br />
export ORACLE_TERM=xterm<br />
#export LD_ASSUME_KERNEL=2.4.19<br />
export THREADS_FLAG=native<br />
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH ORACLE_HOME/lib<br />
export ORACLE_OEM_JAVARUNTIME=/u01/app/oracle/jre1.3.1<br />
export NLS_LANG=”American_america.zhs16gbk”<br />
# export NLS_LANG=&#8221;SIMPLIFIED CHINESE_CHINA.ZHS16GBK&#8221;<br />
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data<br />
export DISPLAY=:0.0<br />
export LANG=en_US<br />
export GDM_LANG= en_US<br />
export LC= en_US<br />
export PATH<br />
unset USERNAME<br />
4， 设置系统参数；<br />
要检查内存空间，在命令行方式（bash环境）下执行如下命令：<br />
#grep MemTotal /proc/meminfo<br />
要检查交换空间，在命令行下执行如下命令：<br />
# grep SwapTotal /proc/meminfo</p>
<p>#su – root切换到root用户<br />
a) 修改#vi /etc/sysctl.conf, 以下是配置文件的内容（其中红色字体为添加的内容）：<br />
# Kernel sysctl configuration file for Red Hat Linux<br />
#<br />
# For binary values, 0 is disabled, 1 is enabled. See sysctl( and<br />
# sysctl.conf(5) for more details.</span></p>
<p><span style="color: #000000;"># Controls IP packet forwarding<br />
net.ipv4.ip_forward = 0</span></p>
<p><span style="color: #000000;"># Controls source route verification<br />
net.ipv4.conf.default.rp_filter = 1</span></p>
<p><span style="color: #000000;"># Controls the System Request debugging functionality of the kernel<br />
kernel.sysrq = 0</span></p>
<p><span style="color: #000000;"># Controls whether core dumps will append the PID to the core filename.<br />
# Useful for debugging multi-threaded applications.<br />
kernel.core_uses_pid = 1<br />
#512M<br />
kernel.shmmax = 536870912<br />
# 268435456 (256M)<br />
kernel.shmmni = 4096<br />
kernel.shmall = 2097152<br />
kernel.sem = 250 32000 100 128<br />
fs.file-max = 65536<br />
net.ipv4.ip_local_port_range = 1024 65000<br />
修改后运行#sysctl –p命令使得内核改变立即生效；<br />
译者注：一般情况下可以设置最大共享内存为物理内存的一半，如果物理内存是 2G，则可以设置最大共享内存为 1073741824，如上；如物理内存是 1G，则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912；以此类推。）<br />
建议永久地增加 shmmax 设置。<br />
sem 4个参数依次为SEMMSL(每个用户拥有信号量最大数)；SEMMNS(系统信号量最大数)；SEMOPM(每次semopm系统调用操作数)；SEMMNI(系统辛苦量集数最大数).Shmmax 最大共享内存，官方文档建议是内存的1/2,Shmmni 最小共享内存 4096KB.Shmall 所有内存大小</span></p>
<p><span style="color: #000000;">B) 设置oracle对文件的要求：<br />
编辑文件：#vi /etc/security/limits.conf 加入以下语句：<br />
oracle 　　　soft 　　　nofile 　　 65536<br />
oracle 　　　hard 　　 nofile　　　65536<br />
oracle 　　　soft 　　　nproc 　　 16384<br />
oracle 　　　hard 　　 nproc 　　 16384</span></p>
<p><span style="color: #000000;">5，安装oracle补丁<br />
当你从 Oracle 9iR2 光盘执行 runInstaller 时，会出现错误信息：<br />
Error occurred during initialization of VM<br />
Unable to load native library:<br />
/tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386<br />
/libjava.so symbol _libc_wait, version GLIBC_2.0 not<br />
defined in file libc.so.6 with link time reference<br />
为了解决 _libc_wait 符号问题，<br />
从http://oss.oracle.com/projects/compat-oracle/files/RedHat/ 下载补丁<br />
compat-libcwait-2.1-1.i386.rpm 为了应用这个补丁，可以运行：<br />
$su – root<br />
# cd /orasetup<br />
#ls compat*.rpm<br />
compat-libcwait-2.0-2.i386.rpm<br />
# rpm -Uvh compat*.rpm<br />
Preparing&#8230; ########################################### [100%]<br />
1: compat-libcwait-2.0-2.i386.rpm ##################################### [ 100%]</span></p>
<p><span style="color: #000000;">打p3006854_9204_LINUX.zip<br />
# unzip p3006854_9204_LINUX.zip<br />
# chmod +x 3006854/rhel3_pre_install.sh<br />
# 3006854/rhel3_pre_install.sh</span></p>
<p><span style="color: #000000;">创建链接<br />
# ln -s /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++-libc6.1-1.so.2</span></p>
<p><span style="color: #000000;">6,安装j2re<br />
Download the Java Runtime Enviroment (j2re-1_3_1_20-linux-i586.bin) from the Sun website. Keep in mind you need to download j2re1.3.1_11 or higher<br />
注意：下载jre jre1.3.1_2x 其中x为任意，但前面的版本不可改。</span></p>
<p><span style="color: #000000;">Login as root and make the the file executable and then execute it. When the JRE is exracted move the &#8220;jre1.3.1_20&#8243; di rectory to &#8220;/opt&#8221; directory.<br />
以root用户的登录执行下面的<br />
# chmod +x j2re-1_3_1_20-linux-i586.bin<br />
# ./j2re-1_3_1_20-linux-i586.bin<br />
# mv jre1.3.1_20 /u01/app/oracle/ jre1.3.1<br />
四，开始安装oracle9iR2<br />
（一）开始安装：<br />
1.以oracle用户登录系统，进行Oracle的安装：<br />
$ cd Disk1<br />
$ ./runInstaller过一会儿就会出现Oracle的安装界面，如下图所示：<br />
中间部分省略<br />
&#8230;&#8230;&#8230;<br />
16,安装完后打补丁：<br />
切换到root：#su – root 首先安装 opatch.<br />
#cd /orasetup<br />
#unzip p2617419_210_GENERIC.zip<br />
Archive: p2617419_210_GENERIC.zip<br />
creating: OPatch/<br />
creating: OPatch/docs/<br />
inflating: Opatch/docs/FAQ<br />
&#8230;&#8230;<br />
inflating: README.txt<br />
#export PATH=$PATH:/orasetup/ebf/OPatch:/sbin<br />
(修改PATH时要要包括解压缩出来的Opatch 和 sbin目录)<br />
# unzip p3238244_9204_LINUX.zip<br />
# cd 3238244<br />
# opatch apply<br />
PERL5LIB=/u01/app/oracle/product/9.2.0/Apache/perl/lib/5.00503:/soft/oracle9i/OPatch/perl_modules; export PERL5LIB<br />
/u01/app/oracle/product/9.2.0/Apache/perl/bin/perl /soft/oracle9i/OPatch/opatch.pl apply<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
OPatch Version 1.0.0.0.46<br />
Perl Version 5.00503</span></p>
<p><span style="color: #000000;">Oracle Home = /u01/app/oracle/product/9.2.0<br />
Location of Oracle Inventory = /u01/app/oracle/oraInventory<br />
Oracle Universal Installer shared library = /u01/app/oracle/oui/bin/linux/liboraInstaller.so<br />
Path to Java = /u01/app/oracle/jre/1.3.1/bin/java<br />
Location of Oracle Inventory Pointer = /etc/oraInst.loc<br />
Location of Oracle Universal Installer components = /u01/app/oracle/oui<br />
Required Jar File under Oracle Universal Installer = lib/OraInstaller.jar</span></p>
<p><span style="color: #000000;">Please shut down Oracle instances running out of this ORACLE_HOME<br />
(Oracle Home = /u01/app/oracle/product/9.2.0)<br />
Is this system ready for updating?<br />
Please respond Y|N &gt;<br />
y<br />
Patching&#8230;<br />
Updating inventory&#8230;<br />
/soft/oracle9i/OPatch/opatch.pl version: 1.0.0.0.46<br />
Copyright (c) 2001,2002,2003 Oracle Corporation. All Rights Reserved.</span></p>
<p><span style="color: #000000;">OPatch succeeded.<br />
如果提示HOME变量错误可执行语句：<br />
#export ORACLE_BASE=/u01/app/oracle<br />
#export ORACLE_HOME=/u01/app/oracle/product/9.2.0<br />
出现success的提示就全部安装成功.</span></p>
<p><span style="color: #000000;">补丁打完后，还要relinked一个.mk文件，切换到oracle用户窗口<br />
cd $ORACLE_HOME/network/lib<br />
make –f ins_oemagent.mk install<br />
之后就可以启动Agent服务了.</span></p>
<p><span style="color: #000000;">17, 最后执行 #dbca 建oracle数据库</span></p>
<p><span style="color: #000000;">当你执行 dbca 时，会出现错误信息：(参考 我的的Fedora 7最新安装Oracle9204手记)<br />
/u01/app/oracle/jre/1.1.8/bin/../lib/i686/green_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)<br />
Unable to initialize threads: cannot find class java/lang/Thread<br />
Could not create Java VM<br />
可以运行：<br />
#su &#8211; oracle<br />
$cd /u01/app/oracle/product/9.2.0<br />
$rm JRE<br />
$ln -s /u01/app/oracle/jre1.3.1 JRE<br />
$su -<br />
# cd /u01/app/oracle/product/9.2.0/JRE/bin<br />
# ln -s java jre<br />
# cd i386/native_threads<br />
# ln -s java jre</span></p>
<p><span style="color: #000000;">&#8230;&#8230;..</span></p>
<p><span style="color: #000000;">21，点击OK，然后退出即可,正常登陆并启动数据库的操作。<br />
[oracle@oracle oracle]$ lsnrctl start<br />
[oracle@oracle oracle]$ sqlplus /nolog<br />
SQL*Plus: Release 9.2.0.0 &#8211; Production on Sat Mar 12 22:58:53 2005<br />
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.<br />
SQL&gt; connect / as sysdba<br />
Connected.<br />
SQL&gt; shutdown immediate 关闭数据库<br />
Database closed.<br />
Database dismounted.<br />
ORACLE instance shut down.<br />
SQL&gt; startup; 启动数据库<br />
ORACLE instance started.<br />
Total System Global Area 236000356 bytes<br />
Fixed Size 451684 bytes<br />
Variable Size 201326592 bytes<br />
Database Buffers 33554432 bytes<br />
Redo Buffers 667648 bytes<br />
Database mounted.<br />
Database opened.</span></p>
<p><span style="color: #000000;">22, 数据库创建完成后，修改/etc/oratab，把oradb那一行最后的N改成Y，然后执行dbstart启动数据库数据库可能无法启动，报告Can’t find init file …的错误，需要复制一个初始化文件:<br />
cp /u01/app/oracle/admin/oradb/pfile/ initoradb.ora* /u01/app/oracle/product/9.2.0/dbs/initoradb.ora<br />
重新执行dbstart就可以了。<br />
为了方便管理，可以写一个启动脚本ora9i：<br />
以root身份进入，编写以下脚本：</span></p>
<p><span style="color: #000000;">#!/bin/bash<br />
#start and stop the oracle instance<br />
# chkconfig –level 5 &#8211;add ora9i<br />
#chkconfig: 345 91 19<br />
# description: starts the oracle listener and instance</span></p>
<p><span style="color: #000000;">export ORACLE_HOME=&#8221;/u01/app/oracle/product/9.2.0&#8243;<br />
export PATH=$ORACLE_HOME/bin ORACLE_HOME/Apache/Apache/bin PATH<br />
export ORACLE_OWNER=&#8221;oracle&#8221;<br />
export ORACLE_SID=oradb</span></p>
<p><span style="color: #000000;">if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]<br />
then<br />
echo &#8220;oracle startup:cannot start&#8221;<br />
exit 1<br />
fi</span></p>
<p><span style="color: #000000;">case &#8220;$1&#8243; in<br />
start)<br />
#startup the listener and instance<br />
echo -n &#8220;oracle startup: &#8221;<br />
su &#8211; $ORACLE_OWNER -c &#8220;$ORACLE_HOME/bin/lsnrctl start&#8221;<br />
su &#8211; $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart<br />
touch /var/lock/subsys/oracle<br />
echo &#8220;finished&#8221;<br />
;;<br />
stop)<br />
# stop listener, apache and database<br />
echo -n &#8220;oracle shutdown:&#8221;<br />
su &#8211; $ORACLE_OWNER -c &#8220;$ORACLE_HOME/bin/lsnrctl stop&#8221;<br />
su &#8211; $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut<br />
rm -f /var/lock/subsys/oracle<br />
echo &#8220;finished&#8221;<br />
;;<br />
reload|restart)<br />
$0 stop<br />
$0 start<br />
;;<br />
*)<br />
echo &#8220;Usage: ora9i [start|stop|reload|restart]&#8221;<br />
exit 1</span></p>
<p><span style="color: #000000;">esac<br />
exit 0<br />
注意:如果 cat –v ora9i 可以看到文件每行结尾有^M<br />
去除^M的脚本为:<br />
#sed &#8216;s/.$//&#8217; ora9i &gt;ora9x<br />
#mv ora9x ora9i<br />
或</span></p>
<p><span style="color: #000000;">#mv ora9i ora9x<br />
# dos2unix ora9x ora9i<br />
存为ora9i后，然后用chmod a+x ora9,即可在以后以root身份运行/etc/rc.d/init.d/ora9i start |stop 来管理oracle的启动和停止了。如果要将这个脚本加入到系统中使其可开机运行，那么要运行以下命令：<br />
#chkconfig –add ora9i<br />
#chkconfig ora9i on<br />
#chkconfig –list ora9i</span></p>
<p><span style="color: #000000;">也可自启动oracle9i!<br />
或者可在/etc/rc.d/rc.local中加入如下：<br />
su &#8211; oracle -c &#8220;/u01/app/oracle/product/9.2.0/bin/lsnrctl start&#8221;<br />
su &#8211; oracle -c &#8220;/u01/app/oracle/product/9.2.0/bin/dbstart start&#8221;</span></p>
<p><span style="color: #000000;">添加listener.ora, tnsnames.ora<br />
#cd $ORACLE_HOME/network/admin<br />
#vi listener.ora &#8211;网络监听<br />
LISTENER =<br />
(DESCRIPTION =<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))<br />
)</span></p>
<p><span style="color: #000000;">#vi tnsnames.ora &#8211;本地管理器所用<br />
ORADB_hostname =<br />
(DESCRIPTION =<br />
(ADDRESS_LIST =<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))<br />
)<br />
(CONNECT_DATA =<br />
(SID = oradb)<br />
(SERVER = DEDICATED)<br />
)<br />
)</span></p>
<p><span style="color: #000000;">23,<br />
关于数据库删除重新安装的问题:<br />
把ORACLE安装目录删除及/etc/ora*.*删除就行了<br />
#rm –f /etc/ora*.*<br />
或#dbca 删除数据后,再建数据,如果重新启动后,不能自动启动oracle就<br />
#vi /etc/oratab<br />
修改<br />
*:/u01/app/oracle/product/9.2.0:Y<br />
oradb:/u01/app/oracle/product/9.2.0:Y<br />
24,关于在LINUX中运行管理软件<br />
25,升级oracle9i为9.2.0.8<br />
$ lsnrctl stop<br />
$dbshut<br />
# unzip p4547809_92080_LINUXfor_AS4.zip<br />
#cd Disk1<br />
$./runinstall<br />
Starting Oracle Universal Installer&#8230;<br />
Checking installer requirements&#8230;<br />
Checking operating system version: must be SuSE-7, redhat-2.1AS, redhat-2.1, UnitedLinux-1.0, redhat-3, redhat-4, SuSE-8 or SuSE-9<br />
Failed &lt;&lt;&lt;&lt;<br />
Exiting Oracle Universal Installer, log for this session can be found at /u01/app/oracle/oraInventory/logs/installActions2008-03-23_03-15-18PM.log $su – </span></p>
<p><span style="color: #000000;">#cd /Disk1/install<br />
#vi oraparam.ini (添加红色的)<br />
[Certified Versions]<br />
#You can customise error message shown for failure through CERTIFIED_VERSION_FAILURE_MESSAGE<br />
Solaris=5.6,5.7,5.8,5.9<br />
Linux=SuSE-7,redhat-2.1AS,redhat-2.1,UnitedLinux-1.0,redhat-3,redhat-4,redhat-5,SuSE-8,SuSE-9<br />
HPUX=B.11.11<br />
Decunix=V5.1A,V5.1<br />
AIX=5.1.0.0<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
[Linux-redhat-4.0-optional]<br />
TEMP_SPACE=80<br />
SWAP_SPACE=150<br />
MIN_DISPLAY_COLORS=256</span></p>
<p><span style="color: #000000;">[Linux-redhat-5.0-optional]<br />
TEMP_SPACE=80<br />
SWAP_SPACE=150<br />
MIN_DISPLAY_COLORS=256</span></p>
<p><span style="color: #000000;">&#8230;&#8230;.</span></p>
<p><span style="color: #000000;">升级后把 listener.ora .,tnsnames.ora拷贝到/u01/app/oracle/product/9.2.0/network/admin<br />
下,并修改对应的(HOST = hostname).</span></p>
<p><span style="color: #000000;">[root@mail 9.2.0]# service ora9i start<br />
oracle startup:<br />
LSNRCTL for Linux: Version 9.2.0.8.0 &#8211; Production on 18-JAN-2008 19:56:44<br />
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.<br />
Starting /u01/app/oracle/product/9.2.0/bin/tnslsnr: please wait&#8230;<br />
TNSLSNR for Linux: Version 9.2.0.8.0 &#8211; Production<br />
System parameter file is /u01/app/oracle/product/9.2.0/network/admin/listener.ora<br />
Log messages written to /u01/app/oracle/product/9.2.0/network/log/listener.log<br />
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mail.domain.com)(PORT=1521)))<br />
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=mail)(PORT=1521)))<br />
STATUS of the LISTENER<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Alias LISTENER<br />
Version TNSLSNR for Linux: Version 9.2.0.8.0 &#8211; Production<br />
Start Date 18-JAN-2008 19:56:44<br />
Uptime 0 days 0 hr. 0 min. 0 sec<br />
Trace Level off<br />
Security OFF<br />
SNMP OFF<br />
Listener Parameter File /u01/app/oracle/product/9.2.0/network/admin/listener.ora<br />
Listener Log File /u01/app/oracle/product/9.2.0/network/log/listener.log<br />
Listening Endpoints Summary&#8230;<br />
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mail.domain.com)(PORT=1521)))<br />
The listener supports no services<br />
The command completed successfully</span></p>
<p><span style="color: #000000;">SQL*Plus: Release 9.2.0.8.0 &#8211; Production on Fri Jan 18 19:56:45 2008</span></p>
<p><span style="color: #000000;">Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.</span></p>
<p><span style="color: #000000;">SQL&gt; Connected to an idle instance.<br />
SQL&gt; ORACLE instance started.</span></p>
<p><span style="color: #000000;">Total System Global Area 235999648 bytes<br />
Fixed Size 450976 bytes<br />
Variable Size 201326592 bytes<br />
Database Buffers 33554432 bytes<br />
Redo Buffers 667648 bytes<br />
Database mounted.<br />
Database opened.<br />
SQL&gt; Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 &#8211; Production<br />
With the Partitioning, OLAP and Oracle Data Mining options<br />
JServer Release 9.2.0.8.0 &#8211; Production</span></p>
<p><span style="color: #000000;">Database &#8220;oradb&#8221; warm started.<br />
Finished</span></p>
<p><span style="color: #000000;">#oemapp<br />
Usage: oemapp<br />
The installed applications are: cpta, cp, ocm, worksheet, topsess, oemutil, dbastudio, console, lmviewer, esm, esmsrv, jdbctest, opm, txtmgr, sdoadvisor, ocmcli, pm, dataguard</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/755.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 4.4下安装Oracle 10g</title>
		<link>http://www.evanjiang.net.cn/archives/752.html</link>
		<comments>http://www.evanjiang.net.cn/archives/752.html#comments</comments>
		<pubDate>Fri, 06 Mar 2009 10:56:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[CentOS 4.4下 安装 Oracle 10g]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=752</guid>
		<description><![CDATA[<p>一、下载软件
OracleDatabase10gRelease2 (10.2.0.1) </p>
<p>下载后可采用
解压命令：unzip 10201_database_linux32.zip </p>
<p>二、 设置核心参数
1、在/etc/sysctl.conf文件中加入下列行：
vi /etc/sysctl.conf </p>
<p>kernel.shmall =2097152
kernel.shmmax =2147483648
kernel.shmmni =4096
kernel.sem =25032000100128
fs.file-max =65536
net.ipv4.ip_local_port_range =102465000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144 </p>
<p>2、运行下列命令使修改后的内核参数生效
/sbin/sysctl –p

3、在/etc/security/limits.conf文件中加入下列行：
*softnproc2047
*hardnproc16384
*softnofile1024
*hardnofile65536 </p>
<p>4、在/etc/pam.d/login文件中加入下列行：
sessionrequired /lib/security/pam_limits.so </p>
<p>5、检查下列包： 若没有安装就要装上否则会安装错误无法继续
本人是采用DVD的都在一张盘上，如果你是使用CD 的话，这些包是分布在234三张盘上的</p>
<p>Rpm –qa &#124; grep compat</p>
<p>setarch-1.6-1.i386.rpm
compat-libstdc++-33-3.2.3-47.3.i386.rpm
make-3.80-5.i386.rpm
glibc-2.3.4-2.i386.rpm
openmotif-2.2.3-6.RHEL4.2.i386.rpm
compat-db-4.1.25-9.i386.rpm
libaio-0.3.102-1.i386.rpm
gcc-3.4.3-9.EL4.i386.rpm
compat-gcc-32-3.2.3-47.3.i386.rpm
compat-gcc-32-c++-3.2.3-47.3.i386.rpm </p>
<p>三、创建下列组和用户








groupaddoinstall
groupadddba
groupaddoper
useradd -goinstall -Gdbaoracle
passwdoracle </p>
<p>2.创建安装oracle的目录
mkdir -p /u01/app/oracle/product/10.2.0/db_1
mkdir -p /u02/oradata
chown -Roracle.oinstall /u01 /u02/oradata </p>
<p>说明：/u01/app/oracle/product/10.2.0/db_1 是用于放置程序文件的位置。
　　　/u02/oradata 用于放置数据库文件的位置，在安装的时候一定要确认安装的位置正确。 </p>
<p>四、设置oracle用户的环境变量 </p>
<p>上面的工作都是在root下进行，下面的就要在oracle 下操作。
注销root 使用oracle 登陆操作。</p>
<p>.bash_profile文件末尾,注意把其中ORACLE_SID换成自己的实例名：
vi /home/oracle/.bash_profile
加上一下内容
#OracleSettings
TMP=/tmp;
exportTMP
TMPDIR=$TMP;
exportTMPDIR </p>
<p>ORACLE_BASE=/u01/app/oracle;
exportORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;
exportORACLE_HOME
ORACLE_SID=TEST;
exportORACLE_SID
ORACLE_TERM=xterm;
exportORACLE_TERM
PATH=/usr/sbin:$PATH;
exportPATH
PATH=$ORACLE_HOME/bin:$PATH;
exportPATH </p>
<p>LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
exportLD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
exportCLASSPATH
#LD_ASSUME_KERNEL=2.4.1;
exportLD_ASSUME_KERNEL </p>
<p>if [ $USER = \"oracle\" ];then
if [ $SHELL [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;">一、下载软件<br />
OracleDatabase10gRelease2 (10.2.0.1) </span></p>
<p><span style="color: #000000;">下载后可采用<br />
解压命令：unzip 10201_database_linux32.zip </span></p>
<p><span style="color: #000000;">二、 设置核心参数<br />
1、在/etc/sysctl.conf文件中加入下列行：<br />
vi /etc/sysctl.conf </span></p>
<p><span style="color: #000000;">kernel.shmall =2097152<br />
kernel.shmmax =2147483648<br />
kernel.shmmni =4096<br />
kernel.sem =25032000100128<br />
fs.file-max =65536<br />
net.ipv4.ip_local_port_range =102465000<br />
net.core.rmem_default=262144<br />
net.core.rmem_max=262144<br />
net.core.wmem_default=262144<br />
net.core.wmem_max=262144 </span></p>
<p><span style="color: #000000;">2、运行下列命令使修改后的内核参数生效<br />
/sbin/sysctl –p<br />
<span id="more-752"></span><br />
3、在/etc/security/limits.conf文件中加入下列行：<br />
*softnproc2047<br />
*hardnproc16384<br />
*softnofile1024<br />
*hardnofile65536 </span></p>
<p><span style="color: #000000;">4、在/etc/pam.d/login文件中加入下列行：<br />
sessionrequired /lib/security/pam_limits.so </span></p>
<p><span style="color: #000000;">5、检查下列包： 若没有安装就要装上否则会安装错误无法继续<br />
本人是采用DVD的都在一张盘上，如果你是使用CD 的话，这些包是分布在234三张盘上的</span></p>
<p><span style="color: #000000;">Rpm –qa | grep compat</span></p>
<p><span style="color: #000000;">setarch-1.6-1.i386.rpm<br />
compat-libstdc++-33-3.2.3-47.3.i386.rpm<br />
make-3.80-5.i386.rpm<br />
glibc-2.3.4-2.i386.rpm<br />
openmotif-2.2.3-6.RHEL4.2.i386.rpm<br />
compat-db-4.1.25-9.i386.rpm<br />
libaio-0.3.102-1.i386.rpm<br />
gcc-3.4.3-9.EL4.i386.rpm<br />
compat-gcc-32-3.2.3-47.3.i386.rpm<br />
compat-gcc-32-c++-3.2.3-47.3.i386.rpm </span></p>
<p><span style="color: #000000;">三、创建下列组和用户<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
groupaddoinstall<br />
groupadddba<br />
groupaddoper<br />
useradd -goinstall -Gdbaoracle<br />
passwdoracle </span></p>
<p><span style="color: #000000;">2.创建安装oracle的目录<br />
mkdir -p /u01/app/oracle/product/10.2.0/db_1<br />
mkdir -p /u02/oradata<br />
chown -Roracle.oinstall /u01 /u02/oradata </span></p>
<p><span style="color: #000000;">说明：/u01/app/oracle/product/10.2.0/db_1 是用于放置程序文件的位置。<br />
　　　/u02/oradata 用于放置数据库文件的位置，在安装的时候一定要确认安装的位置正确。 </span></p>
<p><span style="color: #000000;">四、设置oracle用户的环境变量 </span></p>
<p><span style="color: #000000;">上面的工作都是在root下进行，下面的就要在oracle 下操作。<br />
注销root 使用oracle 登陆操作。</span></p>
<p><span style="color: #000000;">.bash_profile文件末尾,注意把其中ORACLE_SID换成自己的实例名：<br />
vi /home/oracle/.bash_profile<br />
加上一下内容<br />
#OracleSettings<br />
TMP=/tmp;<br />
exportTMP<br />
TMPDIR=$TMP;<br />
exportTMPDIR </span></p>
<p><span style="color: #000000;">ORACLE_BASE=/u01/app/oracle;<br />
exportORACLE_BASE<br />
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;<br />
exportORACLE_HOME<br />
ORACLE_SID=TEST;<br />
exportORACLE_SID<br />
ORACLE_TERM=xterm;<br />
exportORACLE_TERM<br />
PATH=/usr/sbin:$PATH;<br />
exportPATH<br />
PATH=$ORACLE_HOME/bin:$PATH;<br />
exportPATH </span></p>
<p><span style="color: #000000;">LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;<br />
exportLD_LIBRARY_PATH<br />
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;<br />
exportCLASSPATH<br />
#LD_ASSUME_KERNEL=2.4.1;<br />
exportLD_ASSUME_KERNEL </span></p>
<p><span style="color: #000000;">if [ $USER = \"oracle\" ];then<br />
if [ $SHELL = \"/bin/ksh\" ];then<br />
ulimit -p16384<br />
ulimit -n65536<br />
else<br />
ulimit -u16384 -n65536<br />
fi<br />
fi<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
五、安装<br />
cd 到oracle10.2的目录下</span></p>
<p><span style="color: #000000;">运行：./runInstaller<br />
就可以开启Oracle10.2的安装界面，剩下的就是依据自己需要看提示装下去啦！ </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/752.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C/C++程序编译步骤详解</title>
		<link>http://www.evanjiang.net.cn/archives/748.html</link>
		<comments>http://www.evanjiang.net.cn/archives/748.html#comments</comments>
		<pubDate>Fri, 06 Mar 2009 10:14:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[c/c++]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[C/C++ 程序 编译步骤 详解]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=748</guid>
		<description><![CDATA[<p>C/C++语言很多人都比较熟悉，这基本上是每位大学生必学的一门编程语言，通常还都是作为程序设计入门语言学的，并且课程大多安排在大一。刚上大学，学习也比较认真，用心。所以，C/C++语言掌握地也都不错，不用说编译程序，就是写个上几百行的程序都不在话下，但是他们真的知道C/C++程序编译的步骤么？</p>
<p>我想很多人都不甚清楚，如果他接下来学过“编译原理”，也许能说个大概。VC的“舒适”开发环境屏蔽了很多编译的细节，这无疑降低了初学者的入门门槛，但是也“剥夺”了他们“知其所以然”的权利，致使很多东西只能死记硬背，遇到相关问题就“丈二”。实际上，我也是在学习Linux环境下编程的过程中才逐渐弄清楚C/C++源代码是如何一步步变成可执行文件的。</p>
<p>总体来说，C/C++源代码要经过：预处理、编译、汇编和连接四步才能变成相应平台下的可执行文件。大多数时候，程序员通过一个命令就能完成上述四个步骤。比如下面这段C的“Hello world！”代码:</p>
<p>File: hw.c</p>
<p>#include </p>
<p>int main(int argc, char *argv[])
{
printf(&#8220;Hello World!\n&#8221;);</p>
<p>return 0;
}</p>
<p>如果用gcc编译，只需要一个命令就可以生成可执行文件hw:</p>
<p>xiaosuo@gentux hw $ gcc -o hw hw.c</p>
<p>xiaosuo@gentux hw $ ./hw Hello World!
</p>
<p>我们可以用-v参数来看看gcc到底在背后都做了些什么动作:</p>
<p>Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/specs
Configured with: /var/tmp/portage/sys-devel/gcc-3.4.6-r2/work/gcc-3.4.6/configure &#8211;prefix=/usr &#8211;bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.6 &#8211;includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include &#8211;datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6 &#8211;mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/man &#8211;infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/info &#8211;with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include/g++-v3 &#8211;host=i686-pc-linux-gnu &#8211;build=i686-pc-linux-gnu &#8211;disable-altivec &#8211;enable-nls &#8211;without-included-gettext &#8211;with-system-zlib &#8211;disable-checking &#8211;disable-werror &#8211;enable-secureplt &#8211;disable-libunwind-exceptions &#8211;disable-multilib &#8211;disable-libgcj &#8211;enable-languages=c,c++,f77 &#8211;enable-shared &#8211;enable-threads=posix &#8211;enable-__cxa_atexit &#8211;enable-clocale=gnu
Thread model: posix
gcc version 3.4.6 (Gentoo [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;">C/C++语言很多人都比较熟悉，这基本上是每位大学生必学的一门编程语言，通常还都是作为程序设计入门语言学的，并且课程大多安排在大一。刚上大学，学习也比较认真，用心。所以，C/C++语言掌握地也都不错，不用说编译程序，就是写个上几百行的程序都不在话下，但是他们真的知道C/C++程序编译的步骤么？</span></p>
<p><span style="color: #000000;">我想很多人都不甚清楚，如果他接下来学过“编译原理”，也许能说个大概。VC的“舒适”开发环境屏蔽了很多编译的细节，这无疑降低了初学者的入门门槛，但是也“剥夺”了他们“知其所以然”的权利，致使很多东西只能死记硬背，遇到相关问题就“丈二”。实际上，我也是在学习Linux环境下编程的过程中才逐渐弄清楚C/C++源代码是如何一步步变成可执行文件的。</span></p>
<p><span style="color: #000000;">总体来说，C/C++源代码要经过：预处理、编译、汇编和连接四步才能变成相应平台下的可执行文件。大多数时候，程序员通过一个命令就能完成上述四个步骤。比如下面这段C的“Hello world！”代码:</span></p>
<p><span style="color: #000000;">File: hw.c</span></p>
<p><span style="color: #000000;">#include </span></p>
<p><span style="color: #000000;">int main(int argc, char *argv[])<br />
{<br />
printf(&#8220;Hello World!\n&#8221;);</span></p>
<p><span style="color: #000000;">return 0;<br />
}</span></p>
<p><span style="color: #000000;">如果用gcc编译，只需要一个命令就可以生成可执行文件hw:</span></p>
<p><span style="color: #000000;">xiaosuo@gentux hw $ gcc -o hw hw.c</span></p>
<p><span style="color: #000000;">xiaosuo@gentux hw $ ./hw Hello World!<br />
<span id="more-748"></span></span></p>
<p><span style="color: #000000;">我们可以用-v参数来看看gcc到底在背后都做了些什么动作:</span></p>
<p><span style="color: #000000;">Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/specs<br />
Configured with: /var/tmp/portage/sys-devel/gcc-3.4.6-r2/work/gcc-3.4.6/configure &#8211;prefix=/usr &#8211;bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.6 &#8211;includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include &#8211;datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6 &#8211;mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/man &#8211;infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/info &#8211;with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include/g++-v3 &#8211;host=i686-pc-linux-gnu &#8211;build=i686-pc-linux-gnu &#8211;disable-altivec &#8211;enable-nls &#8211;without-included-gettext &#8211;with-system-zlib &#8211;disable-checking &#8211;disable-werror &#8211;enable-secureplt &#8211;disable-libunwind-exceptions &#8211;disable-multilib &#8211;disable-libgcj &#8211;enable-languages=c,c++,f77 &#8211;enable-shared &#8211;enable-threads=posix &#8211;enable-__cxa_atexit &#8211;enable-clocale=gnu<br />
Thread model: posix<br />
gcc version 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)<br />
/usr/libexec/gcc/i686-pc-linux-gnu/3.4.6/cc1 -quiet -v hw.c -quiet -dumpbase hw.c -mtune=pentiumpro -auxbase hw -version -o /tmp/ccYB6UwR.s<br />
ignoring nonexistent directory &#8220;/usr/local/include&#8221;<br />
ignoring nonexistent directory &#8220;/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../i686-pc-linux-gnu/include&#8221;<br />
#include &#8220;&#8230;&#8221; search starts here:<br />
#include &lt;&#8230;&gt; search starts here:<br />
/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include<br />
/usr/include<br />
End of search list.<br />
GNU C version 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10) (i686-pc-linux-gnu)<br />
compiled by GNU C version 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.9).<br />
GGC heuristics: &#8211;param ggc-min-expand=81 &#8211;param ggc-min-heapsize=97004<br />
/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../i686-pc-linux-gnu/bin/as -V -Qy -o /tmp/ccq8uGED.o /tmp/ccYB6UwR.s<br />
GNU assembler version 2.17 (i686-pc-linux-gnu) using BFD version 2.17<br />
/usr/libexec/gcc/i686-pc-linux-gnu/3.4.6/collect2 &#8211;eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o hw /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../crt1.o /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../crti.o /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/crtbegin.o -L/usr/lib/gcc/i686-pc-linux-gnu/3.4.6 -L/usr/lib/gcc/i686-pc-linux-gnu/3.4.6 -L/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../i686-pc-linux-gnu/lib -L/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../.. /tmp/ccq8uGED.o -lgcc &#8211;as-needed -lgcc_s &#8211;no-as-needed -lc -lgcc &#8211;as-needed -lgcc_s &#8211;no-as-needed /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/crtend.o /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../crtn.o</span></p>
<p><span style="color: #000000;">稍微整理一下，去掉一些冗余信息后，如下:</span></p>
<p><span style="color: #000000;">cc1 hw.c -o /tmp/ccYB6UwR.s<br />
as -o /tmp/ccq8uGED.o /tmp/ccYB6UwR.s<br />
ld -o hw /tmp/ccq8uGED.o</span></p>
<p><span style="color: #000000;">以上三个命令分别对应于编译步骤中的预处理+编译、汇编和连接。预处理和编译还是放在了一个命令（cc1）中进行的，可以把它再次拆分为以下两步:</span></p>
<p><span style="color: #000000;">cpp -o hw.i hw.c<br />
cc1 hw.i -o /tmp/ccYB6UwR.s</span></p>
<p><span style="color: #000000;">一个精简过的能编译以上hw.c文件的Makefile如下:<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
.PHONY: clean</span></p>
<p><span style="color: #000000;">all: hw</span></p>
<p><span style="color: #000000;">hw: hw.o<br />
ld -dynamic-linker /lib/ld-linux.so.2 -o hw /usr/lib/crt1.o \<br />
/usr/lib/crti.o \<br />
/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/crtbegin.o \<br />
hw.o -lc \<br />
/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/crtend.o \<br />
/usr/lib/crtn.o</span></p>
<p><span style="color: #000000;">hw.o: hw.s<br />
as -o hw.o hw.s</span></p>
<p><span style="color: #000000;">hw.s: hw.i<br />
/usr/libexec/gcc/i686-pc-linux-gnu/3.4.6/cc1 -o hw.s hw.c</span></p>
<p><span style="color: #000000;">hw.i: hw.c<br />
cpp -o hw.i hw.c</span></p>
<p><span style="color: #000000;">clean:<br />
rm -rf hw.i hw.s hw.o</span></p>
<p><span style="color: #000000;">当然，上面Makefile中的一些路径是我系统上的具体情况，你的可能与我的不同。</span></p>
<p><span style="color: #000000;">接下来我们按照编译顺序看看编译器每一步都做了什么。</span></p>
<p><span style="color: #000000;">首先是预处理，预处理后的文件hw.i:</span></p>
<p><span style="color: #000000;"># 1 &#8220;hw.c&#8221;<br />
# 1 &#8220;&#8221;<br />
# 1 &#8220;&#8221;</span></p>
<p><span style="color: #000000;">&#8230;<br />
__extension__ typedef __quad_t __off64_t;<br />
__extension__ typedef int __pid_t;<br />
__extension__ typedef struct { int __val[2]; } __fsid_t;</span></p>
<p><span style="color: #000000;">&#8230;<br />
extern int remove (__const char *__filename) __attribute__ ((__nothrow__));</span></p>
<p><span style="color: #000000;">extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));</span></p>
<p><span style="color: #000000;">&#8230;</span></p>
<p><span style="color: #000000;">int main(int argc, char *argv[])<br />
{<br />
printf(&#8220;Hello World!\n&#8221;);</span></p>
<p><span style="color: #000000;">return 0;<br />
}</span></p>
<p><span style="color: #000000;">注：由于文件比较大，所以只留下了少部分具有代表性的内容。</span></p>
<p><span style="color: #000000;">可以看见预处理器把所有要包含（include）的文件（包括递归包含的文件）的内容都添加到了原始的C源文件中，然后把其输出到输出文件，除此之外，它还展开了所有的宏定义，所以在预处理器的输出文件中你将找不到任何宏。这也提供了一个查看宏展开结果的简便方法。</span></p>
<p><span style="color: #000000;">第二步“编译”，就是把C/C++代码“翻译”成汇编代码：</span></p>
<p><span style="color: #000000;">.file &#8220;hw.c&#8221;<br />
.section .rodata<br />
.LC0:<br />
.string &#8220;Hello World!\n&#8221;<br />
.text<br />
.globl main<br />
.type main, @function<br />
main:<br />
pushl %ebp<br />
movl %esp, %ebp<br />
subl $8, %esp<br />
andl $-16, %esp<br />
movl $0, %eax<br />
addl $15, %eax<br />
addl $15, %eax<br />
shrl $4, %eax<br />
sall $4, %eax<br />
subl %eax, %esp<br />
subl $12, %esp<br />
pushl $.LC0<br />
call printf<br />
addl $16, %esp<br />
movl $0, %eax<br />
leave<br />
ret<br />
.size main, .-main<br />
.section .note.GNU-stack,&#8221;",@progbits<br />
.ident &#8220;GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)&#8221;</span></p>
<p><span style="color: #000000;">这个汇编文件比预处理后的C/C++文件小了很多，去除了很多不必要的东西，比如说没用到的类型声明和函数声明等。</span></p>
<p><span style="color: #000000;">第三步“汇编”，将第二步输出的汇编代码翻译成符合一定格式的机器代码，在Linux上一般表现为ELF目标文件。</span></p>
<p><span style="color: #000000;">xiaosuo@gentux hw $ file hw.o<br />
hw.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped</span></p>
<p><span style="color: #000000;">最后一步“连接”，将上步生成的目标文件和系统库的目标文件和库文件连接起来，最终生成了可以在特定平台运行的可执行文件。为什么还要连接系统库中的某些目标文件（crt1.o, crti.o等）呢？这些目标文件都是用来初始化或者回收C运行时环境的，比如说堆内存分配上下文环境的初始化等，实际上crt也正是C RunTime的缩写。这也暗示了另外一点：程序并不是从main函数开始执行的，而是从crt中的某个入口开始的，在Linux上此入口是_start。以上Makefile生成的是动态连接的可执行文件，如果要生成静态连接的可执行文件需要将Makefile中的相应段修改：<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
hw: hw.o<br />
ld -m elf_i386 -static -o hw /usr/lib/crt1.o \<br />
/usr/lib/crti.o \<br />
/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/crtbeginT.o \<br />
-L/usr/lib/gcc/i686-pc-linux-gnu/3.4.6 \<br />
-L/usr/i686-pc-linux-gnu/lib \<br />
-L/usr/lib/ \<br />
hw.o &#8211;start-group -lgcc -lgcc_eh -lc &#8211;end-group \<br />
/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/crtend.o \<br />
/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../crtn.o</span></p>
<p><span style="color: #000000;">至此，一个可执行文件才最终创建完成。通常的项目中并不需要把编译过程分得如此之细，前三步一般是合为一体的，在Makefile中表现如下:</span></p>
<p><span style="color: #000000;">hw.o: hw.c<br />
gcc -o hw.o -c hw.c</span></p>
<p><span style="color: #000000;">实际上，如果对hw.c进行了什么更改，那么前三步大多数情况下都是不可避免的。所以把他们写在一起也并没有什么坏处，相反倒可以用&#8211;pipe参数告诉编译器用管道替代临时文件，从而提升编译的效率</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/748.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASE SyBase 12.5.4_x86_64在rhel5上的安装配置</title>
		<link>http://www.evanjiang.net.cn/archives/725.html</link>
		<comments>http://www.evanjiang.net.cn/archives/725.html#comments</comments>
		<pubDate>Thu, 05 Mar 2009 07:34:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[sybase]]></category>
		<category><![CDATA[ASE SyBase 12.5.4_x86_64在rhel5上的安装配置]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=725</guid>
		<description><![CDATA[<p>1、
tar -xvf ase12.5.4_linux_x86_64.zip
2、安装openmotif包，否则后面srvbuildres的时候会出现提示libXm.so.3无法找到错误。
rpm -ivh openmotif-2.3.0-0.3.el5.i386.rpm
rpm -ivh openmotif-2.3.0-0.3.el5.x86_64.rpm
ln -s /usr/lib64/libXm.so.4 /usr/lib64/libXm.so.3</p>
<p>3、 修改/etc/sysctl.conf文件调整操作系统共享内存参数。加入：
kernel.shmmax = 1024*1024*1024*0.75(75%计算)*8(8G内存)
(num为需要分配的共享内存大小，以字节为单位，一般设置为总内存的50％－70％，本例为8G)(在rhel5上已经自动按这样配置了,本步骤不需要)
4、 运行sysctl -p，使共享内存配置生效(在rhel5上已经自动按这样配置了,本步骤不需要)
5、 修改hosts文件，加入服务器内网IP：192.168.1.51
db
6、 创建sybase用户。
useradd -d /opt/sybase-12.5.4 sybase
passwd sybase
7、创建数据库存放目录：mkdir /sda/data
8、更改/sda/data目录的所有者为sybase用户
chown -R sybase:sybase /sda/data
9、切换到sybase用户 su -sybase
9、进入12.5.4安装目录，执行：./setup -console
10、安装到配置服务器时，退出安装

11、为了以后操作方便，可建立OCS-12_5和ASE-12_5的映射：
ln -s ASE-12_5 ASE，ln -s OCS-12_5 OCS
12、修改sybase用户的.bash_profile文件。
vi ~/.bash_profile
输入vi命令行命令，:r ~/SYBASE.sh，会自动将内容添加到文件末尾。
13、在.bash_profile最后再加入LANG=
14、在.bash_profile最后再加入export LD_POINTER_GUARD=0,否则在后面srvbuildres的时候会出现“segmentation fault”错误。
16、重启服务器
17、在sybase用户目录下新建目录rs，用来存放配置文件。
mkdir ~/rs
18、从ASE-12_5/init/sample_resource_files目录下拷贝例子到rs目录下。
cp ~/ASE-12_5/init/sample_resource_files/srvbuild.adaptive_server.rs ~/rs/db.rs
cp ~/ASE-12_5/init/sample_resource_files/srvbuild.backup_server.rs ~/rs/backup.rs
19、本例配置如下：
db.rs：
sybinit.release_directory: /opt/sybase-12.5.4
sybinit.product: sqlsrv
sqlsrv.server_name: db
sqlsrv.new_config: yes
sqlsrv.do_add_server: yes
sqlsrv.network_protocol_list: tcp
sqlsrv.network_hostname_list: 192.168.1.51
sqlsrv.network_port_list: 5000
sqlsrv.server_page_size: 8k
sqlsrv.force_buildmaster: yes
sqlsrv.master_device_physical_name: /sda/data/master.dat
sqlsrv.master_device_size: 180
sqlsrv.master_database_size: [...]]]></description>
			<content:encoded><![CDATA[<p>1、<br />
tar -xvf ase12.5.4_linux_x86_64.zip<br />
2、安装openmotif包，否则后面srvbuildres的时候会出现提示libXm.so.3无法找到错误。<br />
rpm -ivh openmotif-2.3.0-0.3.el5.i386.rpm<br />
rpm -ivh openmotif-2.3.0-0.3.el5.x86_64.rpm<br />
ln -s /usr/lib64/libXm.so.4 /usr/lib64/libXm.so.3</p>
<p>3、 修改/etc/sysctl.conf文件调整操作系统共享内存参数。加入：<br />
kernel.shmmax = 1024*1024*1024*0.75(75%计算)*8(8G内存)<br />
(num为需要分配的共享内存大小，以字节为单位，一般设置为总内存的50％－70％，本例为8G)(在rhel5上已经自动按这样配置了,本步骤不需要)<br />
4、 运行sysctl -p，使共享内存配置生效(在rhel5上已经自动按这样配置了,本步骤不需要)<br />
5、 修改hosts文件，加入服务器内网IP：192.168.1.51<br />
db<br />
6、 创建sybase用户。<br />
useradd -d /opt/sybase-12.5.4 sybase<br />
passwd sybase<br />
7、创建数据库存放目录：mkdir /sda/data<br />
8、更改/sda/data目录的所有者为sybase用户<br />
chown -R sybase:sybase /sda/data<br />
9、切换到sybase用户 su -sybase<br />
9、进入12.5.4安装目录，执行：./setup -console<br />
10、安装到配置服务器时，退出安装<br />
<span id="more-725"></span><br />
11、为了以后操作方便，可建立OCS-12_5和ASE-12_5的映射：<br />
ln -s ASE-12_5 ASE，ln -s OCS-12_5 OCS<br />
12、修改sybase用户的.bash_profile文件。<br />
vi ~/.bash_profile<br />
输入vi命令行命令，:r ~/SYBASE.sh，会自动将内容添加到文件末尾。<br />
13、在.bash_profile最后再加入LANG=<br />
14、在.bash_profile最后再加入export LD_POINTER_GUARD=0,否则在后面srvbuildres的时候会出现“segmentation fault”错误。<br />
16、重启服务器<br />
17、在sybase用户目录下新建目录rs，用来存放配置文件。<br />
mkdir ~/rs<br />
18、从ASE-12_5/init/sample_resource_files目录下拷贝例子到rs目录下。<br />
cp ~/ASE-12_5/init/sample_resource_files/srvbuild.adaptive_server.rs ~/rs/db.rs<br />
cp ~/ASE-12_5/init/sample_resource_files/srvbuild.backup_server.rs ~/rs/backup.rs<br />
19、本例配置如下：<br />
db.rs：<br />
sybinit.release_directory: /opt/sybase-12.5.4<br />
sybinit.product: sqlsrv<br />
sqlsrv.server_name: db<br />
sqlsrv.new_config: yes<br />
sqlsrv.do_add_server: yes<br />
sqlsrv.network_protocol_list: tcp<br />
sqlsrv.network_hostname_list: 192.168.1.51<br />
sqlsrv.network_port_list: 5000<br />
sqlsrv.server_page_size: 8k<br />
sqlsrv.force_buildmaster: yes<br />
sqlsrv.master_device_physical_name: /sda/data/master.dat<br />
sqlsrv.master_device_size: 180<br />
sqlsrv.master_database_size: 160<br />
sqlsrv.errorlog: /opt/sybase-12.5.4/ASE-12_5/install/db.log<br />
sqlsrv.do_upgrade: no<br />
sqlsrv.sybsystemprocs_device_physical_name: /sda/data/sysprocs.dat<br />
sqlsrv.sybsystemprocs_device_size: 250<br />
sqlsrv.sybsystemprocs_database_size: 200<br />
sqlsrv.sybsystemdb_device_physical_name: /sda/data/sybsystemdb.dat<br />
sqlsrv.sybsystemdb_device_size: 50<br />
sqlsrv.sybsystemdb_database_size: 50<br />
sqlsrv.default_backup_server: SYB_BACKUP</p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p>backup.rs：<br />
sybinit.release_directory: /opt/sybase-12.5.4<br />
sybinit.product: bsrv<br />
bsrv.server_name: SYB_BACKUP<br />
bsrv.new_config: yes<br />
bsrv.do_add_backup_server: yes<br />
bsrv.do_upgrade: no<br />
bsrv.network_protocol_list: tcp<br />
bsrv.network_hostname_list: 192.168.1.51<br />
bsrv.network_port_list: 5001<br />
bsrv.language: USE_DEFAULT<br />
bsrv.character_set: USE_DEFAULT<br />
bsrv.tape_config_file: USE_DEFAULT<br />
bsrv.errorlog: USE_DEFAULT<br />
sqlsrv.related_sqlsrvr: db<br />
sqlsrv.sa_login: sa<br />
sqlsrv.sa_password: USE_DEFAULT<br />
20、编译资源配置文件。<br />
srvbuildres -r ~/rs/db.rs<br />
srvbuildres -r ~/rs/backup.rs<br />
21、修改数据库字符集：<br />
cd ~/charsets/cp936/<br />
charset<br />
-Sda -Usa -P binary.srt cp936<br />
isql -Sda -Usa -P<br />
select id from syscharsets where name=&#8217;cp936&#8242;<br />
go<br />
@REM 找到 cp936对应的id，如171<br />
sp_configure &#8220;default character set id&#8221;,171<br />
go<br />
@REM 执行完成后退出isql，重启server两次<br />
@REM （注:第一次启动后，server会自动当掉，需要第二次重启后才能使用）</p>
<p>22、修改本地字符集：<br />
编辑sybase用户home目录下的locales目录下的locales.dat文件。<br />
vi ~/locales/locales.dat<br />
将[linux]段内的locale = default,us_english,cp936中的设置修改为指定设置即可。<br />
23、      使ASE与Linux操作系统一起启动：<br />
在/etc/rc.local中增加<br />
su -c &#8220;/opt/sybase-12.5.4/ASE-12_5/install/startserver -f /opt/sybase-12.5.4/ASE-12_5/install/RUN_db&#8221; &#8211; sybase &#038;<br />
sleep 10<br />
su -c&#8221;/opt/sybase-12.5.4/ASE-12_5/install/startserver -f /opt/sybase-12.5.4/ASE-12_5/install/RUN_SYB_BACKUP &#8221; &#8211; sybase &#038;<br />
sleep 1<br />
24、<br />
disk init name<br />
= &#8216;tempdb&#8217;,physname = &#8216;/sda/data/tempdb.dat&#8217;,size<br />
= &#8217;1024M&#8217;,cntrltype= 0,dsync = false<br />
go<br />
alter database tempdb on tempdb=1024 with override<br />
go</p>
<p>附sybase ase在linux上的支持情况及在rhel上安装时候的注意事项。</p>
<p>http://certification.sybase.com/ucr/platformResult.do;jsessionid=f29d5bc3AAB2xrPY=+dnbrkHaFM3wQ?platformId=117&#038;productId=2</p>
<p>ID 	Product 	Prod<br />
Version 	Prod<br />
Word Size 	OS Version 	Status<br />
1692 	Adaptive Server Enterprise 	12.5 	64-bit 	Red Hat EL 5.0 (AMD64/EM64T) 	Certified<br />
  
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
General Notes:  	  	Due to recent changes in glibc, the environment variable LD_POINTER_GUARD should be set to 0 for ASE to function properly. This variable should be set before starting any ASE binary. Note that there is known bug with the configuration step of the ASE installer. Please use &#8220;srvbuild&#8221; or &#8220;srvbuildres&#8221; to configure devices. This bug will be fixed in a future release of ASE.<br />
Minimum Product Level :  	  	12.5.4<br />
Minimum Required OS Level :  	  	Redhat 5.0 (kernel-2.6.18-8.el5, glibc-2.5-12, compat-libstdc++-33-3.2.3-61)<br />
Following patches are required for GUI components to work correctly:<br />
xorg-x11-libs-6.7.0-2 (both x86_64 and i386)<br />
(http://rpm.pbone.net/index.php3/ &#8230; 7.0-2.i386.rpm.html and http://rpm.pbone.net/index.php3/ &#8230; 0-2.x86_64.rpm.html)<br />
openmotif-2.2.3-6.x86_64 (both x86_64 and i386) </p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/725.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RHEL5 安装Oracle 10g Release 2</title>
		<link>http://www.evanjiang.net.cn/archives/686.html</link>
		<comments>http://www.evanjiang.net.cn/archives/686.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 10:16:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[RHEL5 安装Oracle 10g]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=686</guid>
		<description><![CDATA[<p>系统环境
Linux kernel 2.6.18-8.el5(系统最小化安装)
hostname：mail.atyu30.com
ip:10.0.0.150
内存：512M</p>
<p>1.开启IPtables
/sbin/service iptables restart</p>
<p>/sbin/chkconfig &#8211;level 345 iptables on
2.关闭SElinux
# vi /etc/selinux/config </p>
<p>SELINUX=disabled</p>
<p>3.系统环境
所需组件通过 YUM 安装

# rpm -q
binutils
compat-gcc-34
compat-gcc-34-c++
compat-libstdc++-33
control-center
gcc
gcc-c++
gdbm
glibc
glibc-common
glibc-devel
libgcc
libgnome
libstdc++-devel
libXp
make
sysstat
util-linux
# yum install compat-gcc-34\
compat-gcc-34-c++\
compat-libstdc++-33\
gcc\
gcc-c++ \
glibc-devel\
libstdc++-devel sysstat\
libXp</p>
<p>4.添加中文语系
更改系统字体
# vi /etc/sysconfig/i18n
LANG=”en_US.UTF-8″
5.修改版本号/etc/redhat-release
10gr2出的时候RHEL5还没有诞生</p>
<p># vi /etc/redhat_release </p>
<p>#Red Hat Enterprise Linux Server release 5 (Tikanga)
Red Hat Enterprise Linux Server release 4 (Tikanga)</p>
<p>7.Oracle的预安装准备工作
7.1/etc/pam.d/login
# vi /etc/pam.d/login  </p>
<p># Add content for oracle install
session required pam_limits.so








7.2/etc/sysctl.conf
# vi /etc/sysctl.conf   [...]]]></description>
			<content:encoded><![CDATA[<p>系统环境<br />
Linux kernel 2.6.18-8.el5(系统最小化安装)<br />
hostname：mail.atyu30.com<br />
ip:10.0.0.150<br />
内存：512M</p>
<p>1.开启IPtables<br />
/sbin/service iptables restart</p>
<p>/sbin/chkconfig &#8211;level 345 iptables on<br />
2.关闭SElinux<br />
# vi /etc/selinux/config </p>
<p>SELINUX=disabled</p>
<p>3.系统环境<br />
所需组件通过 YUM 安装<br />
<span id="more-686"></span><br />
# rpm -q<br />
binutils<br />
compat-gcc-34<br />
compat-gcc-34-c++<br />
compat-libstdc++-33<br />
control-center<br />
gcc<br />
gcc-c++<br />
gdbm<br />
glibc<br />
glibc-common<br />
glibc-devel<br />
libgcc<br />
libgnome<br />
libstdc++-devel<br />
libXp<br />
make<br />
sysstat<br />
util-linux<br />
# yum install compat-gcc-34\<br />
compat-gcc-34-c++\<br />
compat-libstdc++-33\<br />
gcc\<br />
gcc-c++ \<br />
glibc-devel\<br />
libstdc++-devel sysstat\<br />
libXp</p>
<p>4.添加中文语系<br />
更改系统字体<br />
# vi /etc/sysconfig/i18n<br />
LANG=”en_US.UTF-8″<br />
5.修改版本号/etc/redhat-release<br />
10gr2出的时候RHEL5还没有诞生</p>
<p># vi /etc/redhat_release </p>
<p>#Red Hat Enterprise Linux Server release 5 (Tikanga)<br />
Red Hat Enterprise Linux Server release 4 (Tikanga)</p>
<p>7.Oracle的预安装准备工作<br />
7.1/etc/pam.d/login<br />
# vi /etc/pam.d/login  </p>
<p># Add content for oracle install<br />
session required pam_limits.so<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
7.2/etc/sysctl.conf<br />
# vi /etc/sysctl.conf    </p>
<p>#Add this line<br />
kernel.shmmax = 2147483648<br />
kernel.shmmni = 4096<br />
kernel.shmall = 2097152<br />
kernel.sem = 250 32000 100 128<br />
fs.file-max = 65536<br />
net.ipv4.ip_local_port_range = 1024 65000<br />
net.core.rmem_default=262144<br />
net.core.rmem_max=262144<br />
net.core.wmem_default=262144<br />
net.core.wmem_max=262144</p>
<p>执行下述命令。导入刚才写入的参数。不执行，oracle在后面安装前的检测会报警。<br />
# /sbin/sysctl -p</p>
<p>7.3/etc/security/limits.conf</p>
<p># vi /etc/security/limits.conf 行末添加以下内容<br />
#Add this line<br />
* soft nproc 2047<br />
* hard nproc 16384<br />
* soft nofile 4096<br />
* hard nofile 65535</p>
<p>8.Install oracle<br />
8.1创建oracle用户，和一些安装目录</p>
<p># groupadd dba<br />
# groupadd oinstall<br />
# useradd -g oinstall -G dba -m oracle<br />
# passwd oracle<br />
# mkdir -p /opt/oracle<br />
# chown -R oracle.oinstall /opt/oracle<br />
# cd /home/oracle/<br />
# unzip oracle_10201_database_linux32.zip</p>
<p>8.2添加环境变量，定义SID等</p>
<p># su &#8211; oracle<br />
$ vi .bash_profile<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
# Set for Oracle10g Install;<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
trap &#8221; &#8221; 0 1 2 3 5 9 15<br />
trap clear 0<br />
export TMP=/tmp<br />
export TMPDIR=$TMP<br />
export ORACLE_BASE=/opt/oracle<br />
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1<br />
export ORACLE_SID=atyu30<br />
export ORACLE_TERM=xterm<br />
export PATH=$ORACLE_HOME/bin PATH<br />
export NLS_LANG=&#8221;Simplified Chinese_china&#8221;.UTF8<br />
LC_CTYPE=zh_CN.UTF8<br />
LC_ALL=zh_CN.UTF8<br />
LANG=zh_CN.UTF8</p>
<p>引用环境变量</p>
<p>$ source ~/.bash_profile<br />
8.3以Oracle 用户安装 Oracle</p>
<p>登录系统，xwindows<br />
# login system in oracle<br />
$ vncserver<br />
$ cd /home/oracle/database<br />
$ ./runInstaller</p>
<p>接下来的安装按照步骤就可以了，设定ASM，SID及sys口令，等。<br />
需要以root执行2个脚本。</p>
<p>9安装后的调整dbstart,添加自启动脚本<br />
# vi $ORACLE_HOME/bin/dbstart<br />
#Add<br />
ORACLE_HOME_LISTNER=$ORACLE_HOME</p>
<p>9.1/etc/oratab<br />
# vi /etc/oratab<br />
# Add<br />
atyu30:/opt/oracle/product/10.2.0/db_1:Y<br />
9.2创建自启动脚本<br />
oracle 10g在自身的dbstart已经启动了lsnrctl,所以下面的脚本上注释掉了lsnrctl的启动<br />
$ touch  dbora<br />
$ chmod 700 dbora<br />
$ vi dbora</p>
<p>#!/bin/bash<br />
#<br />
# chkconfig: 2345 80 05<br />
# description: Oracle 10g Server<br />
# /etc/init.d/dbora<br />
#<br />
# Run-level Startup script for the Oracle Instance, Listener, and<br />
# Web Interface</p>
<p>export ORACLE_BASE=/opt/oracle<br />
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1<br />
export ORACLE_SID=atyu30<br />
export PATH=$PATH ORACLE_HOME/bin</p>
<p>ORA_OWNR=&#8221;oracle&#8221;</p>
<p># if the executables do not exist &#8212; display error</p>
<p>if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]<br />
then<br />
     echo &#8220;Oracle startup: cannot start&#8221;<br />
     exit 1<br />
fi</p>
<p># depending on parameter &#8212; startup, shutdown, restart<br />
# of the instance and listener or usage display</p>
<p>case &#8220;$1&#8243; in<br />
start)<br />
     # Oracle listener and instance startup<br />
     echo -n &#8220;Starting Oracle: &#8221;<br />
#        su $ORA_OWNR -c &#8220;$ORACLE_HOME/bin/lsnrctl start&#8221;<br />
     su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart<br />
     touch /var/lock/oracle</p>
<p>     su $ORA_OWNR -c &#8220;$ORACLE_HOME/bin/emctl start dbconsole&#8221;<br />
     su $ORA_OWNR -c &#8220;$ORACLE_HOME/bin/isqlplusctl start&#8221;<br />
     echo &#8220;OK&#8221;<br />
     ;;<br />
stop)<br />
     # Oracle listener and instance shutdown<br />
     echo -n &#8220;Shutdown Oracle: &#8221;<br />
#        su $ORA_OWNR -c &#8220;$ORACLE_HOME/bin/lsnrctl stop&#8221;<br />
     su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut<br />
     rm -f /var/lock/oracle</p>
<p>     su $ORA_OWNR -c &#8220;$ORACLE_HOME/bin/emctl stop dbconsole&#8221;<br />
     su $ORA_OWNR -c &#8220;$ORACLE_HOME/bin/isqlplusctl stop&#8221;<br />
     echo &#8220;OK&#8221;<br />
     ;;<br />
reload|restart)<br />
     $0 stop<br />
     $0 start<br />
     ;;<br />
*)<br />
     echo &#8220;Usage: `basename $0` start|stop|restart|reload&#8221;<br />
     exit 1<br />
esac<br />
exit 0</p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
9.3相关启动项<br />
# cp dbora /etc/rc.d/init.d<br />
# chkconfig &#8211;add dbora<br />
10.管理界面</p>
<p>http://10.0.0.200:1158/em</p>
<p>http://10.0.0.200:5560/isqlplus/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/686.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redhat  tar 自动备份和恢复脚本 （RHEL4）</title>
		<link>http://www.evanjiang.net.cn/archives/684.html</link>
		<comments>http://www.evanjiang.net.cn/archives/684.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 10:14:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[redhat  备份脚本]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=684</guid>
		<description><![CDATA[<p>自动备份脚本
#!/bin/bash
# df -k
#Filesystem           1K-blocks      Used Available Use% Mounted on
#/dev/sda2            113852040  10113912  97954732  10% /
#/dev/sda1             [...]]]></description>
			<content:encoded><![CDATA[<p>自动备份脚本<br />
#!/bin/bash<br />
# df -k<br />
#Filesystem           1K-blocks      Used Available Use% Mounted on<br />
#/dev/sda2            113852040  10113912  97954732  10% /<br />
#/dev/sda1               790588     24680    725748   4% /boot<br />
#none                   1028008         0   1028008   0% /dev/shm<br />
#/dev/sda5             19362784  10617104   7762104  58% /export/home<br />
#<br />
# to show how to set crontab<br />
# [root@ad12 log]# crontab -l<br />
# SHELL=/bin/bash<br />
# 30 18 * * *       /usr/local/william.w/backup-1.sh >> /usr/local/william.w/backup.log 2>&#038;1<br />
#<br />
# to avoid the error: TERM environment variable not set.<br />
TERM=linux<br />
export TERM<br />
cd /<br />
clear<br />
echo<br />
echo<br />
echo =====================================<br />
echo this tool is used to backup the MMSC<br />
echo =====================================<br />
# to get the IP<br />
IP1=`ifconfig | grep &#8220;inet addr:&#8221; | grep -v &#8220;inet addr:127.0.0.1&#8243; | awk -F: &#8216;{printf $2}&#8217;`<br />
IP2=${IP1%% *}<br />
echo the server IP is $IP2<br />
# to get the date<br />
DATE=`date +%Y-%m-%d-%H`-tar<br />
echo today is ${DATE%-*}<br />
# to make a file folder to store the backp files, but if it was already exsit, just to overwirite it.<br />
mkdir /export/home/$DATE 2> /dev/null<br />
echo /export/home/$DATE has already exsited or been made.<br />
echo and backup file will be backuped in this folder.<br />
echo<br />
# all backup files using tar file have been located in /export/home, and below command just sum the backup files and show them in the list.<br />
NUM=`ls /export/home/ | grep tar | wc -l`<br />
echo now we have $NUM tar folder, they are all under /export/home/<br />
echo =================<br />
ls -tr /export/home/ | grep tar<br />
echo =================<br />
# to caculate the used disk space for /export/home<br />
USEDISK=`df -k |sed -n &#8216;/export/&#8217;p  | awk &#8216;{print $5}&#8217; |sed &#8216;s/\%//&#8217;`<br />
        if [ $USEDISK -gt 85 ]<br />
        then<br />
        echo USEDISK is $USEDISK%<br />
        echo WARNNIG: have no enough space to backup!<br />
        exit;<br />
        fi<br />
<span id="more-684"></span><br />
echo USEDISK is $USEDISK%<br />
        if [ $USEDISK -gt 65 ]<br />
                then<br />
                echo &#8220;***************************&#8221;<br />
                echo &#8216;USEDISK is lager than 65!!!&#8217;<br />
                if [ $NUM -gt 2 ]<br />
                        then<br />
                        echo &#8220;***************************&#8221;<br />
                        echo there are $NUM tar folders:<br />
                        ls -tr /export/home/ | grep tar<br />
                        echo &#8220;*****************************************&#8221;<br />
                        # if the used disk space is beyond 65% and the number of tar-format-backup-file-folder is bigger than 2, we would delete these folders to keep the number to be less or equate 2<br />
                        DIFF=`expr $NUM &#8211; 2`<br />
                        # the number of file folders that would be deleted is $DIFF, and they would be deleted in below circle.<br />
                        for dir in `ls -tr /export/home/ | grep tar | head -n $DIFF`<br />
                                do<br />
                                        DISKSPACE=`df -k |sed -n &#8216;/export/&#8217;p  | awk &#8216;{print $5}&#8217; |sed &#8216;s/\%//&#8217;`<br />
                                        if [ $DISKSPACE -le 65 ]<br />
                                        then<br />
                                                echo now USEDISK is $DISKSPACE%, and it is OK<br />
                                                break;<br />
                                        fi<br />
#                                        line = $dir;<br />
                                        echo &#8220;`ls -tr /export/home/ | grep tar | head -n 1` will be deleted soon&#8230;&#8221;<br />
                                        echo &#8230;<br />
                                        rm -fr /export/home/$dir;<br />
                                        echo &#8220;$dir has been deleted successfully&#8221;<br />
                                echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221;<br />
                                done<br />
                        echo &#8220;********************************&#8221;<br />
                fi<br />
        fi<br />
echo<br />
echo &#8220;==========Begin to tar==============&#8221;<br />
echo now below file folder would be tared:<br />
# just show the list of file folder that would be backuped, and folder name has been add with &#8220;/&#8221; becuase this RHEL4.0 X86-64 does not show the root path.<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
ls / | grep -v -e proc -e mnt -e media -e lost+found -e export| sed &#8216;s/\([ ]\{1,\}\)/\1\//g;s/^./\/&#038;/g&#8217;<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
echo tar is working now&#8230;<br />
echo please waiting&#8230;&#8230;.<br />
# prepare to show the file name, and the backup file name is $DATE/$RNAME-$IP3-$DAY.tar.gz locating at /export/home/$DATE/<br />
# to backup all root file folders,  but donot include /proc, /mnt, /media/, and /export<br />
# all the display infomation would not show by  >&#038; /dev/null<br />
# all error information would not show by 2> /dev/null<br />
IP3=`echo $IP2 | awk -F. &#8216;{printf $3&#8243;.&#8221;$4}&#8217;`<br />
DAY=`echo $DATE| awk -F- &#8216;{printf $2$3$4}&#8217;`<br />
RNAME=`hostname | awk -F. &#8216;{printf $1}&#8217;`<br />
tar -zcvPf /export/home/$DATE/$RNAME-$IP3-$DAY.tar.gz 2> /dev/null $(ls / | grep -v -e proc -e mnt -e media -e lost+found -e export)  >&#038; /dev/null<br />
echo now backup is successful.<br />
echo the file is /export/home/$DATE/$RNAME-$IP3-$DAY.tar.gz<br />
echo &#8220;==================================End to tar=========================&#8221;<br />
echo<br />
# to list the backup folders<br />
echo Summary of backup files:<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
echo the img backup:<br />
ls -t /export/home/ | grep img<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
echo the tar backup:<br />
ls -t /export/home/ | grep tar<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
echo other files:<br />
ls -t /export/home/ | grep -v tar |grep -v img<br />
echo =================================<br />
USEDISK1=`df -k |sed -n &#8216;/export/&#8217;p  | awk &#8216;{print $5}&#8217; |sed &#8216;s/\%//&#8217;`<br />
echo before backup the USEDISK is $USEDISK%<br />
echo at last the USEDISK is $USEDISK1%<br />
echo =================================</p>
<p>自动恢复脚本<br />
#!/bin/bash<br />
cd /<br />
clear<br />
echo<br />
echo<br />
echo<br />
echo =====================================<br />
echo this tool is used to restore the MMSC<br />
echo =====================================<br />
echo<br />
echo this restore command must be like   &#8220;#/export/home/restore.sh   backup-file-folder&#8221;<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
echo for example:<br />
echo &#8220;#/export/home/restore.sh 2008-04-01-00-tar&#8221;<br />
echo<br />
# to get the date<br />
DATE=`date +%Y-%m-%d-%H`-tar<br />
echo today is ${DATE%-*}<br />
# to get the IP<br />
IP1=`ifconfig | grep &#8220;inet addr:&#8221; | grep -v &#8220;inet addr:127.0.0.1&#8243; | awk -F: &#8216;{printf $2}&#8217;`<br />
IP2=${IP1%% *}<br />
IP3=`echo $IP2 | awk -F. &#8216;{printf $3&#8243;.&#8221;$4}&#8217;`<br />
echo the server IP is $IP2<br />
RNAME=`hostname | awk -F. &#8216;{printf $1}&#8217;`<br />
echo the server name is $RNAME<br />
# to get the path of the backup file, and it is /export/home/$1/<br />
# to get the name of the backup file, and it is $RNAME-$IP3-$DAY.tar.gz<br />
echo the restored folder and file are:<br />
DAY=`echo $1| awk -F- &#8216;{printf $2$3$4}&#8217;`<br />
echo /export/home/$1/$RNAME-$IP3-$DAY.tar.gz<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
echo please wait&#8230;&#8230;<br />
# to restore the backup files under root path<br />
cd /<br />
tar -zxvPf /export/home/$1/$RNAME-$IP3-*.tar.gz  2> /dev/null -C / >&#038; /dev/null<br />
echo backup is successful<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
echo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/684.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下的bash与sh 详解以及实例</title>
		<link>http://www.evanjiang.net.cn/archives/668.html</link>
		<comments>http://www.evanjiang.net.cn/archives/668.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 09:45:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[debian linux]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[suse linux]]></category>
		<category><![CDATA[linux下的bash与sh]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=668</guid>
		<description><![CDATA[<p>关于bash与sh的话题（限于一般linux），以下个人的一些总结及理解，有理解错误的地方还望指点</p>
<p>1、bash的POSIX标准</p>
<p>在一般的linux系统当中（如redhat），
使用sh调用执行脚本相当于打开了bash的POSIX标准模式
（等效于bash的 &#8211;posix 参数）</p>
<p>一般的，sh是bash的“子集”
（不是子集的部分，具体区别见下的“Things sh has that bash does not”）</p>
<p>例子：</p>
<p>[wwy@sf-watch test]$ cat t2.sh
#!/bin/bash
diff 




</p>
<p>2、调用相关：</p>
<p>在脚本的调用方面（interactive、login相关），bash与sh也是存在差异
以下是详细说明（假如被调用执行的脚本名字叫xxx.sh）</p>
<p>BASH：</p>
<p>1、交互式的登录shell （bash –il xxx.sh）
载入的信息：
/etc/profile
~/.bash_profile（ ->  ~/.bashrc  ->  /etc/bashrc）
~/.bash_login
~/.profile</p>
<p>2、非交互式的登录shell （bash –l xxx.sh）
载入的信息：
/etc/profile
~/.bash_profile （ ->  ~/.bashrc  ->  /etc/bashrc）
~/.bash_login
~/.profile
$BASH_ENV</p>
<p>3、交互式的非登录shell （bash –i xxx.sh）
载入的信息：
~/.bashrc （ ->  /etc/bashrc）</p>
<p>4、非交互式的非登录shell （bash xxx.sh）
载入的信息：
$BASH_ENV</p>
<p>SH：</p>
<p>1、交互式的登录shell
载入的信息：
/etc/profile
~/.profile</p>
<p>2、非交互式的登录shell
载入的信息：
/etc/profile
~/.profile</p>
<p>3、交互式的非登录shell
载入的信息：
$ENV</p>
<p>4、非交互式的非登录shell
载入的信息：
nothing</p>
<p>由此可以看出，最主要的区别在于相关配置文件的是否载入，
而这些配置的是否载入，也就导致了很多默认选项的差异
（具体请仔细查看~/.bash_profile 等文件）</p>
<p>如：</p>
<p>[wangweiyu@ComSeOp ~]$ grep ulimit /etc/profile
ulimit -S -c unlimited > /dev/null 2>&#038;1</p>
<p>即，如果/etc/profile没有被载入，则不会产生core dump</p>
<p>3、关于ssh</p>
<p>非常值得一提的是，使用ssh远程执行命令，
远端sshd进程通过“bash [...]]]></description>
			<content:encoded><![CDATA[<p>关于bash与sh的话题（限于一般linux），以下个人的一些总结及理解，有理解错误的地方还望指点</p>
<p>1、bash的POSIX标准</p>
<p>在一般的linux系统当中（如redhat），<br />
使用sh调用执行脚本相当于打开了bash的POSIX标准模式<br />
（等效于bash的 &#8211;posix 参数）</p>
<p>一般的，sh是bash的“子集”<br />
（不是子集的部分，具体区别见下的“Things sh has that bash does not”）</p>
<p>例子：</p>
<p>[wwy@sf-watch test]$ cat t2.sh<br />
#!/bin/bash<br />
diff <(echo xxx) <(echo yyy) </p>
<p>[wwy@sf-watch test]$ bash -x ./t2.sh # 使用bash 调用，不会出问题<br />
+ diff /dev/fd/63 /dev/fd/62<br />
++ echo xxx<br />
++ echo yyy<br />
1c1<br />
< xxx<br />
---<br />
> yyy<br />
[wwy@sf-watch test]$ sh ./t2.sh    # 而用sh调用，报错如下<br />
./t2.sh: line 3: syntax error near unexpected token `(&#8216;<br />
./t2.sh: line 3: `diff <(echo xxx) <(echo yyy)'<br />
[wwy@sf-watch test]$ echo $?<br />
2<br />
<span id="more-668"></span></p>
<p>但是，在我们的linux系统中，sh是bash的一个软链接：</p>
<p>[wangweiyu@ComSeOp mon]$ which sh<br />
/bin/sh<br />
[wangweiyu@ComSeOp mon]$ ls -l /bin/sh<br />
lrwxrwxrwx  1 root root 4 Mar 21  2007 /bin/sh -> bash</p>
<p>那为什么上面的例子中还会出现问题呢？原因在于：<br />
bash程序执行，当“$0”是“sh”的时候，<br />
则要求下面的代码遵循一定的规范，当不符合规范的语法存在时，则会报错，<br />
所以可以这样理解，<br />
“sh”并不是一个程序，而是一种标准（POSIX），<br />
这种标准，在一定程度上（具体区别见下面的“Things bash has that sh does not”）保证了脚本的跨系统性（跨UNIX系统）</p>
<p>下面的内容详细的说明了bash与sh在语法等方面的具体差异（引自Bash FAQ）：</p>
<p>Things bash has that sh does not:</p>
<p>        long invocation options<br />
        [+-]O invocation option<br />
        -l invocation option<br />
        `!&#8217; reserved word to invert pipeline return value<br />
        `time&#8217; reserved word to time pipelines and shell builtins<br />
        the `function&#8217; reserved word<br />
        the `select&#8217; compound command and reserved word<br />
        arithmetic for command: for ((expr1 ; expr2; expr3 )); do list; done<br />
        new $&#8217;&#8230;&#8217; and $&#8221;&#8230;&#8221; quoting<br />
        the $(&#8230;) form of command substitution<br />
        the $(<filename) form of command substitution, equivalent to<br />
                $(cat filename)<br />
        the ${#param} parameter value length operator<br />
        the ${!param} indirect parameter expansion operator<br />
        the ${!param*} prefix expansion operator<br />
        the ${param:offset[:length]} parameter substring operator<br />
        the ${param/pat[/string]} parameter pattern substitution operator<br />
        expansions to perform substring removal (${p%[%]w}, ${p#[#]w})<br />
        expansion of positional parameters beyond $9 with ${num}<br />
        variables: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, REPLY,<br />
                   TIMEFORMAT, PPID, PWD, OLDPWD, SHLVL, RANDOM, SECONDS,<br />
                   LINENO, HISTCMD, HOSTTYPE, OSTYPE, MACHTYPE, HOSTNAME,<br />
                   ENV, PS3, PS4, DIRSTACK, PIPESTATUS, HISTSIZE, HISTFILE,<br />
                   HISTFILESIZE, HISTCONTROL, HISTIGNORE, GLOBIGNORE, GROUPS,<br />
                   PROMPT_COMMAND, FCEDIT, FIGNORE, IGNOREEOF, INPUTRC,<br />
                   SHELLOPTS, OPTERR, HOSTFILE, TMOUT, FUNCNAME, histchars,<br />
                   auto_resume<br />
        DEBUG trap<br />
        ERR trap<br />
        variable arrays with new compound assignment syntax<br />
        redirections: <>, &#038;>, >|, <<<, [n]<&#038;word-, [n]>&#038;word-<br />
        prompt string special char translation and variable expansion<br />
        auto-export of variables in initial environment<br />
        command search finds functions before builtins<br />
        bash return builtin will exit a file sourced with `.&#8217;<br />
        builtins: cd -/-L/-P, exec -l/-c/-a, echo -e/-E, hash -d/-l/-p/-t.<br />
                  export -n/-f/-p/name=value, pwd -L/-P,<br />
                  read -e/-p/-a/-t/-n/-d/-s/-u,<br />
                  readonly -a/-f/name=value, trap -l, set +o,<br />
                  set -b/-m/-o option/-h/-p/-B/-C/-H/-P,<br />
                  unset -f/-v, ulimit -i/-m/-p/-q/-u/-x,<br />
                  type -a/-p/-t/-f/-P, suspend -f, kill -n,<br />
                  test -o optname/s1 == s2/s1 < s2/s1 > s2/-nt/-ot/-ef/-O/-G/-S<br />
        bash reads ~/.bashrc for interactive shells, $ENV for non-interactive<br />
        bash restricted shell mode is more extensive<br />
        bash allows functions and variables with the same name<br />
        brace expansion<br />
        tilde expansion<br />
        arithmetic expansion with $((&#8230;)) and `let&#8217; builtin<br />
        the `[[...]]&#8217; extended conditional command<br />
        process substitution<br />
        aliases and alias/unalias builtins<br />
        local variables in functions and `local&#8217; builtin<br />
        readline and command-line editing with programmable completion<br />
        command history and history/fc builtins<br />
        csh-like history expansion<br />
        other new bash builtins: bind, command, compgen, complete, builtin,<br />
                                 declare/typeset, dirs, enable, fc, help,<br />
                                 history, logout, popd, pushd, disown, shopt,<br />
                                 printf<br />
        exported functions<br />
        filename generation when using output redirection (command >a*)<br />
        POSIX.2-style globbing character classes<br />
        POSIX.2-style globbing equivalence classes<br />
        POSIX.2-style globbing collating symbols<br />
        egrep-like extended pattern matching operators<br />
        case-insensitive pattern matching and globbing<br />
        variable assignments preceding commands affect only that command,<br />
                even for builtins and functions<br />
        posix mode and strict posix conformance<br />
        redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr,<br />
                /dev/tcp/host/port, /dev/udp/host/port<br />
        debugger support, including `caller&#8217; builtin and new variables<br />
        RETURN trap<br />
        the `+=&#8217; assignment operator</p>
<p>Things sh has that bash does not:<br />
        uses variable SHACCT to do shell accounting<br />
        includes `stop&#8217; builtin (bash can use alias stop=&#8217;kill -s STOP&#8217;)<br />
        `newgrp&#8217; builtin<br />
        turns on job control if called as `jsh&#8217;<br />
        $TIMEOUT (like bash $TMOUT)<br />
        `^&#8217; is a synonym for `|&#8217;<br />
        new SVR4.2 sh builtins: mldmode, priv</p>
<p>Implementation differences:<br />
        redirection to/from compound commands causes sh to create a subshell<br />
        bash does not allow unbalanced quotes; sh silently inserts them at EOF<br />
        bash does not mess with signal 11<br />
        sh sets (euid, egid) to (uid, gid) if -p not supplied and uid < 100<br />
        bash splits only the results of expansions on IFS, using POSIX.2<br />
                field splitting rules; sh splits all words on IFS<br />
        sh does not allow MAILCHECK to be unset (?)<br />
        sh does not allow traps on SIGALRM or SIGCHLD<br />
        bash allows multiple option arguments when invoked (e.g. -x -v);<br />
                sh allows only a single option argument (`sh -x -v' attempts<br />
                to open a file named `-v', and, on SunOS 4.1.4, dumps core.<br />
                On Solaris 2.4 and earlier versions, sh goes into an infinite<br />
                loop.)<br />
        sh exits a script if any builtin fails; bash exits only if one of<br />
                the POSIX.2 `special' builtins fails</p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p>2、调用相关：</p>
<p>在脚本的调用方面（interactive、login相关），bash与sh也是存在差异<br />
以下是详细说明（假如被调用执行的脚本名字叫xxx.sh）</p>
<p>BASH：</p>
<p>1、交互式的登录shell （bash –il xxx.sh）<br />
载入的信息：<br />
/etc/profile<br />
~/.bash_profile（ ->  ~/.bashrc  ->  /etc/bashrc）<br />
~/.bash_login<br />
~/.profile</p>
<p>2、非交互式的登录shell （bash –l xxx.sh）<br />
载入的信息：<br />
/etc/profile<br />
~/.bash_profile （ ->  ~/.bashrc  ->  /etc/bashrc）<br />
~/.bash_login<br />
~/.profile<br />
$BASH_ENV</p>
<p>3、交互式的非登录shell （bash –i xxx.sh）<br />
载入的信息：<br />
~/.bashrc （ ->  /etc/bashrc）</p>
<p>4、非交互式的非登录shell （bash xxx.sh）<br />
载入的信息：<br />
$BASH_ENV</p>
<p>SH：</p>
<p>1、交互式的登录shell<br />
载入的信息：<br />
/etc/profile<br />
~/.profile</p>
<p>2、非交互式的登录shell<br />
载入的信息：<br />
/etc/profile<br />
~/.profile</p>
<p>3、交互式的非登录shell<br />
载入的信息：<br />
$ENV</p>
<p>4、非交互式的非登录shell<br />
载入的信息：<br />
nothing</p>
<p>由此可以看出，最主要的区别在于相关配置文件的是否载入，<br />
而这些配置的是否载入，也就导致了很多默认选项的差异<br />
（具体请仔细查看~/.bash_profile 等文件）</p>
<p>如：</p>
<p>[wangweiyu@ComSeOp ~]$ grep ulimit /etc/profile<br />
ulimit -S -c unlimited > /dev/null 2>&#038;1</p>
<p>即，如果/etc/profile没有被载入，则不会产生core dump</p>
<p>3、关于ssh</p>
<p>非常值得一提的是，使用ssh远程执行命令，<br />
远端sshd进程通过“bash –c”的方式来执行命令（即“非交互式的非登录shell”）<br />
所以这一点，和登录之后再在本地执行执行命令，就存在了一定的差异</p>
<p>如：</p>
<p>[wangweiyu@ComSeOp ~]$ ssh wangweiyu@127.0.0.1 &#8216;echo $-&#8217;<br />
wangweiyu@127.0.0.1&#8242;s password:<br />
hBc<br />
[wangweiyu@ComSeOp ~]$ echo $-<br />
himBH<br />
[wangweiyu@ComSeOp ~]$ ssh wangweiyu@127.0.0.1 &#8216;echo $0&#8242;<br />
wangweiyu@127.0.0.1&#8242;s password:<br />
bash<br />
[wangweiyu@ComSeOp ~]$ echo $0<br />
-bash</p>
<p>注：<br />
“$-” 中含有“i”代表“交互式shell”<br />
“$0”的显示结果为“-bash”，bash前面多个“-”，代表“登录shell”<br />
没有“i“和“-”的，是“非交互式的非登录shell”</p>
<p>另外还有一点，虽然ssh远程执行的命令是“非交互式的非登录shell”，<br />
但在执行命令之前，ssh的那一次登录本身是“交互式的登录shell”，所以其会先载入“~/.bash_profile”</p>
<p>如：<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
[wangweiyu@ComSeOp ~]$ cat .bashrc<br />
# .bashrc<br />
# User specific aliases and functions<br />
# Source global definitions<br />
if [ -f /etc/bashrc ]; then<br />
        . /etc/bashrc<br />
fi<br />
echo &#8216;xxx&#8217; # 随便输出一些字符</p>
<p>[wangweiyu@ComSeOp ~]$ ssh wangweiyu@127.0.0.1 &#8216;echo $-&#8217;<br />
wangweiyu@127.0.0.1&#8242;s password:<br />
xxx # .bashrc 被执行<br />
hBc </p>
<p>这一点，衍生出一个关于scp的问题，scp在传输数据之前，会先进行一次ssh登录，<br />
而当.bashrc文件有输出的时候，则会导致scp失败！原因是解析返回的数据包出现混乱</p>
<p>如：</p>
<p>[wangweiyu@ComSeOp ~]$ cat .bashrc<br />
# .bashrc<br />
# User specific aliases and functions<br />
# Source global definitions<br />
if [ -f /etc/bashrc ]; then<br />
        . /etc/bashrc<br />
fi<br />
echo &#8216;xxx&#8217; # 随便输出一些字符<br />
[wangweiyu@ComSeOp ~]$ scp file wangweiyu@127.0.0.1:/tmp<br />
wangweiyu@127.0.0.1&#8242;s password:<br />
xxx # 输出xxx，随后scp失败<br />
[wangweiyu@ComSeOp ~]$ echo $?<br />
1<br />
[wangweiyu@ComSeOp ~]$ ls /tmp/<br />
[wangweiyu@ComSeOp ~]$</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/668.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux 加载u盘、光盘、软盘 &amp; mount使用指南</title>
		<link>http://www.evanjiang.net.cn/archives/665.html</link>
		<comments>http://www.evanjiang.net.cn/archives/665.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 09:39:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[debian linux]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[suse linux]]></category>
		<category><![CDATA[Linux 加载u盘、光盘、软盘 mount使用指南]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=665</guid>
		<description><![CDATA[<p>一、Linux加载u盘
Linux如何加载(优)U盘
第一步，以root用户登陆
先加载USB模块 modprobe usb-storage
用fdisk -l 看看磁盘的设备
假如U盘是sda
第二步，确定在 目录 /mnt 下建立了 文件夹 /usb,如果未建立可键入一下命令：               mkdir /mnt/usb
第三步, 载入 u 盘，需键入以下命令：
Linux如何加载(优)U盘
第一步，以root用户登陆
先加载USB模块 modprobe usb-storage
用fdisk -l 看看U盘的设备
假如U盘是sda1
第二步，确定在 目录 /mnt 下建立了 文件夹 /usb,如果未建立可键入一下命令：               md /mnt/usb
成功后进行下一步。
第三步, 载入 [...]]]></description>
			<content:encoded><![CDATA[<p>一、Linux加载u盘<br />
Linux如何加载(优)U盘<br />
第一步，以root用户登陆<br />
先加载USB模块 modprobe usb-storage<br />
用fdisk -l 看看磁盘的设备<br />
假如U盘是sda<br />
第二步，确定在 目录 /mnt 下建立了 文件夹 /usb,如果未建立可键入一下命令：               mkdir /mnt/usb<br />
第三步, 载入 u 盘，需键入以下命令：<br />
Linux如何加载(优)U盘<br />
第一步，以root用户登陆<br />
先加载USB模块 modprobe usb-storage<br />
用fdisk -l 看看U盘的设备<br />
假如U盘是sda1<br />
第二步，确定在 目录 /mnt 下建立了 文件夹 /usb,如果未建立可键入一下命令：               md /mnt/usb<br />
成功后进行下一步。<br />
第三步, 载入 u 盘，需键入以下命令：<br />
mount -t vfat /dev/sda /mnt/usb_disk<br />
成功后，即可使用 u 盘, 文件就在目录 /mnt/usb 下。<br />
第四步，卸载u盘<br />
在使用完u盘后，在拔出前需要先键入卸载U盘命令<br />
命令如下：               umount /mnt/usb<br />
<span id="more-665"></span><br />
二、Linux mount使用指南<br />
在Linux中，如果你要使用储存设备 (Mo、硬盘、光驱等) ，就得先将它挂上 (Mount)，而当储 存设备挂上了之后，就可以把它当成一个目录来进行访问。挂上一个设备使用mount命令。 </p>
<p>在使用mount这个指令时，至少要先知道下列三种信息： </p>
<p>1. 要Mount对象的文件系统类型？ (File system type) </p>
<p>2. 要Mount对象的设备名称？ (/dev/????) </p>
<p>3. 要将设备Mount到哪个目录去？ </p>
<p>一、获得系统支持的文件系统类型 </p>
<p>就第一点来说，用户可以执行 </p>
<p>cat /proc/filesystems<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p>来获得机器上支持的文件系统类型。如果系统并不支持你要挂接设备的文件系统类型，那 你可能需要重新编译内核以使其增加对该种文件类型支持。关于如何编译内核请参照LinuxAid在 线培训栏目中的相关文章。 </p>
<p>常用的文件系统有： </p>
<p>Win95/98常用的FAT 32文件系统 ：vfat </p>
<p>Win NT用的文件系统 ：ntfs </p>
<p>OS2用的文件系统 ：hpfs </p>
<p>Linux用的文件系统 ：ext2 </p>
<p>光盘片用的文件系统 ：iso9660 </p>
<p>其中虽然vfat是指FAT 32系统，但事实上它也兼容FAT 16的文件系统类型。 </p>
<p>二、确定设备的名称 </p>
<p>在Linux中，设备名称通常都在/dev里。这些设备名称的命名都是有规则的，我们可以用&#8221;推 理&#8221;的方式把设备名称找出来。 </p>
<p>譬如说/dev/hda1这个IDE设备。hd是Hard Disk(硬盘)的意思，sd是SCSI Device，fd是Floppy Device(或是Floppy Disk?)。a则是代表第一个设备，通常IDE接口可以接上四个IDE设备(例如四块 硬盘)。所以要识别IDE硬盘的方法分别就 </p>
<p>是：hda、hdb、hdc、hdd。此外，hda1中的&#8221;1&#8243;代表hda的第一个硬盘分区 </p>
<p>(partition)，hda2代表hda的第二个分割区，依此类推。 </p>
<p>此外，你可以直接检查/var/log/messages这个文件，在该文件中可以找到计算机开机后，系 统已辨认出来的设备代号。 </p>
<p>三、查找挂接点 </p>
<p>最后我们要决定将设备挂接到哪里，先查看一下你的计算机是不是有个/mnt的空目录？该目 录就是专门用来当作挂载点(Mount Point)的目录。建议您在/mnt里多建这几个目录：/mnt/ cdrom、/mnt/floppy、/mnt/mo等来当作目录的专用挂载点。 </p>
<p>举例而言，如要挂载下列五个设备的话，其执行指令可能是 (假设都是Linux的ext2系统，如 果是Win XX的话，请将ext2改成vfat)：<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
1. 软盘 ===>mount -t ext2 /dev/fd0 /mnt/floppy </p>
<p>2. MO ===>mount -t ext2 /dev/sda /mnt/mo </p>
<p>3. cdrom ===>mount -t ext2 /dev/hdc /mnt/cdrom </p>
<p>4. SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom </p>
<p>5. SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr </p>
<p>这是假设，如果你的设备的名称跟这个不同的话请自行修改。 </p>
<p>最后需要注意的是： </p>
<p>1. 执行mount动作时先打一下pwd看看现在的目录是不是在挂载点，如果现在目录在挂载点 的话，mount (或umount)不会成功 (会显示device busy)。 </p>
<p>2. 想卸载某设备的语法是umount 目录名，例如umount /mnt/cdrom等。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/665.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache2+php+oracle9的安装</title>
		<link>http://www.evanjiang.net.cn/archives/650.html</link>
		<comments>http://www.evanjiang.net.cn/archives/650.html#comments</comments>
		<pubDate>Mon, 02 Mar 2009 10:46:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[apache2 php oracle9  安装]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=650</guid>
		<description><![CDATA[<p>1、前言：
   对于unix(linux)来说，apache＋php是个不错的选择。对于小型的网站，比较通用的是apache+php+mysql，优点不比说。但是，对于大型的网站，需要对数据库检索和连接请求高的站点，mysql还是出现他的局限性。很多门户网站，例如：sina、tom、sohu、china等，都是用新闻发稿器的生成静态页面。但是这个新闻发稿器，很多都是通过apache＋php来完成，大量的资料放在数据库中，用户访问的时候，在由程序生成静态页面。所以，apache+php+oracle是比较合理的选择。</p>
<p>由于平时都是用的sun的sparc机器，这个环境是临时搭建，用的是redhat9，如果有喜欢用redhat ad的朋友，需要自己先测试一下。</p>
<p>2、结构：
主机两台：
odb &#8211;安装oracle server，作为数据存储。
webapp &#8212;安装oracle client和apache+php，php通过oracle client来访问oracle。
odb ip:192.168.1.2
webapp ip: 192.168.1.3  211.11.11.11
优点：安全，odb可以用内网ip，还能实现降低webapp的负载。</p>
<p>3、主机系统相关软件：
redhat9
oacle9 for liunx
httpd2.0.50
php-4.32</p>
<p>4、安装软件：
4.1、odb的安装：
这里关于oracle9的redhat9上的安装，大家查看论坛响应的其他文章，这里就不过多写。为上下文，这里建立库为odb。</p>
<p>4.2、apache2的安装：

# tar zxvf httpd-2.0.49.tar.gz
# cd httpd-2.0.49
# ./configure &#8211;prefix=/opt/apache &#8211;enable-so &#8211;with-mpm=worker
# make
# make install</p>
<p>4.3、webapp主机上的oracle client安装：</p>
<p>4.3.1 安装好RedHat9.0操作系统，确保安装以下的RPM开发包
gcc
cpp
glibc-devel
compat-libstdc++
glibc-kernheaders
binutils
可以使用命令来查看是否已安装这些包
rpm –q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils</p>
<p>4.3.2、从Oracle官方网站下载Oracle9i安装文件并使用如下命令解包








# zcat lnx_920_disk1.cpio.gz &#124; cpio –idmv
# zcat lnx_920_disk2.cpio.gz &#124; cpio –idmv
# zcat lnx_920_disk3.cpio.gz &#124; cpio –idmv
然后会有Disk1 Disk2 Disk3三个子目录。</p>
<p>4.3.3、设置内核参数
# [...]]]></description>
			<content:encoded><![CDATA[<p>1、前言：<br />
   对于unix(linux)来说，apache＋php是个不错的选择。对于小型的网站，比较通用的是apache+php+mysql，优点不比说。但是，对于大型的网站，需要对数据库检索和连接请求高的站点，mysql还是出现他的局限性。很多门户网站，例如：sina、tom、sohu、china等，都是用新闻发稿器的生成静态页面。但是这个新闻发稿器，很多都是通过apache＋php来完成，大量的资料放在数据库中，用户访问的时候，在由程序生成静态页面。所以，apache+php+oracle是比较合理的选择。</p>
<p>由于平时都是用的sun的sparc机器，这个环境是临时搭建，用的是redhat9，如果有喜欢用redhat ad的朋友，需要自己先测试一下。</p>
<p>2、结构：<br />
主机两台：<br />
odb &#8211;安装oracle server，作为数据存储。<br />
webapp &#8212;安装oracle client和apache+php，php通过oracle client来访问oracle。<br />
odb ip:192.168.1.2<br />
webapp ip: 192.168.1.3  211.11.11.11<br />
优点：安全，odb可以用内网ip，还能实现降低webapp的负载。</p>
<p>3、主机系统相关软件：<br />
redhat9<br />
oacle9 for liunx<br />
httpd2.0.50<br />
php-4.32</p>
<p>4、安装软件：<br />
4.1、odb的安装：<br />
这里关于oracle9的redhat9上的安装，大家查看论坛响应的其他文章，这里就不过多写。为上下文，这里建立库为odb。</p>
<p>4.2、apache2的安装：<br />
<span id="more-650"></span><br />
# tar zxvf httpd-2.0.49.tar.gz<br />
# cd httpd-2.0.49<br />
# ./configure &#8211;prefix=/opt/apache &#8211;enable-so &#8211;with-mpm=worker<br />
# make<br />
# make install</p>
<p>4.3、webapp主机上的oracle client安装：</p>
<p>4.3.1 安装好RedHat9.0操作系统，确保安装以下的RPM开发包<br />
gcc<br />
cpp<br />
glibc-devel<br />
compat-libstdc++<br />
glibc-kernheaders<br />
binutils<br />
可以使用命令来查看是否已安装这些包<br />
rpm –q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils</p>
<p>4.3.2、从Oracle官方网站下载Oracle9i安装文件并使用如下命令解包<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
# zcat lnx_920_disk1.cpio.gz | cpio –idmv<br />
# zcat lnx_920_disk2.cpio.gz | cpio –idmv<br />
# zcat lnx_920_disk3.cpio.gz | cpio –idmv<br />
然后会有Disk1 Disk2 Disk3三个子目录。</p>
<p>4.3.3、设置内核参数<br />
# echo 4294967295 >; /proc/sys/kernel/shmmax，建议放到/etc/rc.local文件里。<br />
或编辑/etc/sysctl.conf<br />
kernel.shmmax=4294967295<br />
我有512MB内存，所以设置这个数值。可根据实际情况设置。</p>
<p>4.3.4、创建Oracle用户帐号和安装目录<br />
在shell下,作为root<br />
# groupadd dba<br />
# groupadd oinstall<br />
# useradd –g oinstall –G dba oracle<br />
# passwd oracle</p>
<p># mkdir /opt/oracle<br />
# mkdir /opt/oracle/product<br />
# mkdir /opt/oracle/product/9.2.0<br />
# chown –R oracle.oinstall /opt/oracle<br />
# mkdir /var/oracle<br />
# chown oracle.dba /var/oracle<br />
# chmod 755 /var/oracle</p>
<p>4.3.5、设置环境变量</p>
<p># vi /home/oracle/.bash_profile文件，添加下列行<br />
－－－－－－－－－－<br />
export LD_ASSUME_KERNEL=2.4.1<br />
export ORACLE_BASE=/opt/oracle<br />
export ORACLE_HOME=/opt/oracle/product/9.2.0<br />
NLS_LANG=&#8221;SIMPLIFIED CHINESE_CHINA.ZHS16GBK&#8221;;export NLS_LANG<br />
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33<br />
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATH<br />
PATH=$PATH ORACLE_HOME/bin;export PATH</p>
<p>－－－－－－－－－－－－－－</p>
<p>4.3.6、安装<br />
可以重新启动机器，让设置的参数生效，让后用oracle用户登陆，安装oracle。</p>
<p># ~Disk1<br />
# ./runInstaller</p>
<p>安装的时候，选择安装client。<br />
有提示你用root用户执行几个脚本，按照提示做就可以。</p>
<p>4.4、 php安装<br />
在安装php的时候，php调用oracle9（9.0.2 &#8211;10 )的时候需要安装一个patch，不然会出现问题。但是oracle8的版本没有问题。oracle的官方网站上有下载，地址如下：</p>
<p>http://otn.oracle.com/products/ias/ohs/htdocs/ociheaders.tar</p>
<p># cp ociheaders.tar  /opt/oracle/product/9.2.0/rdbms/demo/<br />
# cd cd /opt/oracle/product/9.2.0/rdbms/demo<br />
# tar xvf ociheaders.tar</p>
<p># tar zxvf php-4.3.2.tar.gz<br />
# cd php-4.3.2<br />
#  ./configure &#8211;prefix=/opt/php &#8211;with-zlib<br />
   &#8211;with-apxs2=/opt/apache/bin/apxs &#8211;disable-xml &#8211;without-mysql<br />
   &#8211;with-oci8=/opt/oracle/product/9.2.0<br />
   &#8211;with-config-file-path=/opt/php/etc/php.ini<br />
   &#8211;disable-rpath &#8211;without-pear<br />
# make<br />
# make install<br />
# mkdir /usr/local/php/etc<br />
# cp /home/peng/php-4.3.2/etc/php.ini-disk /usr/local/php/etc/php.ini/php.ini<br />
# vi /usr/local/php/etc/php.ini/php.ini</p>
<p>5 配置软件：</p>
<p>5.1、启动odb主机上的oracle：<br />
以oracle用户登陆：</p>
<p>启动数据库<br />
$ Sqlplus “ / as sysdba”<br />
  SQL>;startup</p>
<p>启动监听程序<br />
$ lsnrctl</p>
<p>5.2、配置apache2：</p>
<p># vi /opt/apache/conf/httpd.conf</p>
<p>添加：AddType application/x-httpd-php .php<br />
更改下列选项如下：<br />
Listen 211.11.11.11:80  &#8211;你的发布主机ip<br />
User nobody<br />
Group nobody<br />
DirectoryIndex index.html index.php<br />
AddDefaultCharset Off</p>
<p>5.3 配置php：<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
# vi /usr/local/php/etc/php.ini/php.ini<br />
  更改：<br />
  register_global =Off 为 register_global =On</p>
<p>5.4 配置oracle client：<br />
# vi /opt/oracle/product/9.2.0/network/admin/tnsnames.ora</p>
<p>&#8212;&#8212;&#8212;&#8212;-<br />
odb =<br />
  (DESCRIPTION =<br />
    (ADDRESS_LIST =<br />
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))<br />
    )<br />
    (CONNECT_DATA =<br />
      (SERVICE_NAME = odb)<br />
    )<br />
  )</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>到这里，系统已经全部安装成功，需要根据自己情况，配置apache的具体主机设置。</p>
<p>总结：<br />
apche+php+oracle一般的应用情况都是针对数据库访问量比较大，或者经常用到数据库检索的应用。很多都是为应用服务器而搭建的环境。</p>
<p>这里注意一点就是，这个环境的搭建，同样适合oracle10的版本。如果用oracle817以下的版本，是不需要安装ociheaders这个补丁的。对于oracle7，php要用&#8211;with-oracle＝的参数。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/650.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于centos4.3的linux发行版制作过程</title>
		<link>http://www.evanjiang.net.cn/archives/632.html</link>
		<comments>http://www.evanjiang.net.cn/archives/632.html#comments</comments>
		<pubDate>Mon, 02 Mar 2009 10:24:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[制作 Linux 发行版 过程]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=632</guid>
		<description><![CDATA[<p>注：其中路径/data/disk是我的制作光盘路径，各位可以根据自己的环境进行修改。</p>
<p>基本过程:</p>
<p>定制RPM包
修改 comps.xml
重编comps.rpm
重新生成hdlist
建立pkglist
利用buildinstall处理安装程序
利用mkisofs制作安装映象</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
母系统是centos4.3，为了软件最新，先升级自己的系统相关软件
rpm &#8211;import http://mirror.be10.com/centos/4.3/os/i386/RPM-GPG-KEY-centos4
rpm &#8211;import /usr/share/doc/centos-release-4/RPM-GPG-KEY >> /dev/null
yum -y update</p>
<p>以下为制作安装光盘必须的包
yum install pump-devel gtk2-devel booty bogl-devel bogl-bterm elfutils-devel beecrypt-devel dietlibc
yum install anaconda anaconda-runtime busybox-anaconda</p>
<p>Package                 Arch       Version         [...]]]></description>
			<content:encoded><![CDATA[<p>注：其中路径/data/disk是我的制作光盘路径，各位可以根据自己的环境进行修改。</p>
<p>基本过程:</p>
<p>定制RPM包<br />
修改 comps.xml<br />
重编comps.rpm<br />
重新生成hdlist<br />
建立pkglist<br />
利用buildinstall处理安装程序<br />
利用mkisofs制作安装映象</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
母系统是centos4.3，为了软件最新，先升级自己的系统相关软件<br />
rpm &#8211;import http://mirror.be10.com/centos/4.3/os/i386/RPM-GPG-KEY-centos4<br />
rpm &#8211;import /usr/share/doc/centos-release-4/RPM-GPG-KEY >> /dev/null<br />
yum -y update</p>
<p>以下为制作安装光盘必须的包<br />
yum install pump-devel gtk2-devel booty bogl-devel bogl-bterm elfutils-devel beecrypt-devel dietlibc<br />
yum install anaconda anaconda-runtime busybox-anaconda</p>
<p>Package                 Arch       Version          Repository        Size</p>
<p>Installing:<br />
anaconda                i386       10.1.1.37-1.centos4.2  base              4.3 M<br />
anaconda-runtime        i386       10.1.1.37-1.centos4.2  base              526 k<br />
busybox-anaconda        i386       1.00.rc1-5       base              177 k<br />
Installing for dependencies:<br />
anaconda-help           noarch     10.1.0-1.centos4  base              800 k<br />
bogl                    i386       0.1.18-4         base               93 k<br />
booty                   i386       0.44.3-1         base               85 k<br />
pyparted                i386       1.6.8-2          base               22 k</p>
<p>检查RPM包依赖关系<br />
cd /data/disk/EServer/RPMS<br />
mkdir /tmp/testdb<br />
rpm &#8211;initdb &#8211;dbpath /tmp/testdb<br />
rpm &#8211;test &#8211;dbpath /tmp/testdb -Uvh *.rpm<br />
<span id="more-632"></span><br />
以下是具体步骤：<br />
1.设置python的系统环境变量<br />
export PYTHONPATH=/usr/lib/anaconda<br />
export PATH=&#8221;$PATH:/usr/lib/anaconda-runtime&#8221;</p>
<p>2.更新光盘的文件树<br />
genhdlist &#8211;productpath=EServer /data/disk</p>
<p>3.生成下一步需要的pkgfile文件<br />
pkgorder &#8211;product EServer /data/disk/ EServer > /data/pkgfile</p>
<p>4.编译生成光盘引导文件和图形安装界面镜像<br />
buildinstall &#8211;pkgorder /data/pkgfile \<br />
&#8211;version &#8220;1.2&#8243; \<br />
&#8211;product &#8220;EServer&#8221; \<br />
&#8211;release &#8220;Beta&#8221; \<br />
&#8211;prodpath EServer /data/disk<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
5.制作 ISO</p>
<p>mkisofs -r -T -J -V &#8220;EServer 1.2&#8243; -b isolinux/isolinux.bin \<br />
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \<br />
-boot-info-table -x &#8220;lost+found&#8221; \<br />
-o /data/EServer.iso /data/disk</p>
<p>文件isolinux/boot.cat 会由mkisofs 程序随后产生<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>为光盘生成md5验证值<br />
implantisomd5 /data/EServer.iso<br />
Inserting md5sum into iso image&#8230;<br />
md5 = b49c693f83c23d7e746dfe0f81a56016<br />
Setting supported flag to 0</p>
<p>如果想将图形界面修改成个性化的界面，需要修改stage2.img（光盘引导镜像，如果硬盘安装，需要修改其他img文件……）</p>
<p>附注:<br />
anaconda资源修改：</p>
<p>mkdir /data/anaconda<br />
mount -o loop /data/disk/EServer/base/stage2.img /data/anaconda<br />
cd /data/anaconda<br />
tar -cvf /data/stage2.tar .<br />
mkdir /data/stage2<br />
cd /data/stage2<br />
tar -xvf /data/stage2.tar<br />
chmod +w -R ../stage2<br />
#&#8212;&#8212;&#8212;&#8211;修改资源&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;#<br />
&#8230;..<br />
&#8230;.<br />
#重新打包img镜像<br />
cd /data<br />
mkcramfs stage2/ stage2.img.new<br />
cp /data/stage2.img.new /data/disk/EServer/base/stage2.img</p>
<p>光盘启动画面修改：</p>
<p>yum -y install syslinux</p>
<p>The graphic is in a somewhat odd format, called LSS16. As the name indicates, it is limited to 16 colors. To edit the graphic, first convert it to a PPM:</p>
<p>lss16toppm < splash.lss > splash.ppm</p>
<p>Next, edit the file using The Gimp. Save the resulting file as an indexed gif with no more than 14 colors (plus black and white, for a total of 16). Then, convert the file to a pnm/ppm:</p>
<p>giftopnm < splash.gif | ppmtolss16 > splash.lss<br />
cp splash.lss /data/disk/isolinux/splash.lss</p>
<p>yum install gcc xorg-x11-devel<br />
编译gif2lss-0.4.tar.gz</p>
<p>保证光盘里面rpm目录下有以下包，这些包是图形化界面制作所必须的，没有他们，buildinstall将会报错。</p>
<p>anaconda<br />
anaconda-runtime<br />
anaconda-help<br />
anaconda-product<br />
busybox<br />
busybox-anaconda<br />
memtest86+<br />
fonts-xorg-base<br />
xorg-x11<br />
joe<br />
kernel*<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
附注：<br />
rpm -qpi #显示rpm包的信息<br />
rpm -Uvh #安装rpm包<br />
rpm -qpl #列rpm包内的文件 </p>
<p>上面这些步骤，是经过实践之后的笔记，所以一般都能够成功，还有一些细节部分，如comps.xml的修改，语法.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/632.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux 服务器集群系统实现方案详解</title>
		<link>http://www.evanjiang.net.cn/archives/594.html</link>
		<comments>http://www.evanjiang.net.cn/archives/594.html#comments</comments>
		<pubDate>Wed, 25 Feb 2009 14:51:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[存储备份]]></category>
		<category><![CDATA[Linux 服务器集群 实现方案]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=594</guid>
		<description><![CDATA[<p> 一、集群的基本概念
　　有一种常见的方法可以大幅提高服务器的安全性，这就是集群。
　　Cluster集群技术可如下定义：一组相互独立的服务器在网络中表现为单一的系统，并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。
　　一个Cluster包含多台（至少二台）拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时，应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。
　　Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时，这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时，应用服务将被重新启动或被另一台服务器接管。当以上任一故障发生时，客户将能很快连接到新的应用服务上。
　　二、集群的硬件配置
　　镜像服务器双机

　　集群中镜像服务器双机系统是硬件配置最简单和价格最低廉的解决方案，通常镜像服务的硬件配置需要两台服务器，在每台服务器有独立操作系统硬盘和数据存贮硬盘，每台服务器有与客户端相连的网卡，另有一对镜像卡或完成镜像功能的网卡。
　　镜像服务器具有配置简单，使用方便，价格低廉诸多优点，但由于镜像服务器需要采用网络方式镜像数据，通过镜像软件实现数据的同步，因此需要占用网络服务器的CPU及内存资源，镜像服务器的性能比单一服务器的性能要低一些。
　　有一些镜像服务器集群系统采用内存镜像的技术，这个技术的优点是所有的应用程序和网络操作系统在两台服务器上镜像同步，当主机出现故障时，备份机可以在几乎没有感觉的情况下接管所有应用程序。因为两个服务器的内存完全一致，但当系统应用程序带有缺陷从而导致系统宕机时，两台服务器会同步宕机。这也是内存镜像卡或网卡实现数据同步，在大数据量读写过程中两台服务器在某些状态下会产生数据不同步，因此镜像服务器适合那些预算较少、对集群系统要求不高的用户。
　　硬件配置范例：
　　网络服务器 两台服务器操作系统硬盘 两块
　　服务器数据存贮硬盘 视用户需要确定
　　服务器镜像卡（部分软件可使用标准网卡） 两块
　　网络服务网卡 两块三、双机与磁盘阵列








　　与镜像服务器双机系统相比，双机与磁盘阵列柜互联结构多出了第三方生产的磁盘阵列柜，目前，豪威公司、精业公司等许多公司都生产有磁盘阵列柜，在磁盘阵列柜中安装有磁盘阵列控制卡，阵列柜可以直接将柜中的硬盘配置成为逻辑盘阵。磁盘阵列柜通过SCSI电缆与服务器上普通SCSI卡相连，系统管理员需直接在磁盘柜上配置磁盘阵列。
　　双机与磁盘阵列柜互联结构不采用内存镜像技术，因此需要有一定的切换时间（通常为60？D？D180秒），它可以有郊的避免由于应用程序自身的缺陷导致系统全部宕机，同时由于所有的数据全部存贮在中置的磁盘阵列柜中，当工作机出现故障时，备份机接替工作机，从磁盘阵列中读取数据，所以不会产生数据不同步的问题，由于这种方案不需要网络镜像同步，因此这种集群方案服务器的性能要比镜像服务器结构高出很多。
　　双机与磁盘阵列柜互联结构的缺点是在系统当中存在单点错的缺陷，所谓单点错是指当系统中某个部件或某个应用程序出现故障时，导致所有系统全部宕机。在这个系统中磁盘阵列柜是会导致单点错，当磁盘阵列柜出现逻辑或物理故障时，所有存贮的数据会全部丢失，因此，在选配这种方案时，需要选用一个品质与售后服务较好的产品。
　　硬件配置范例：
　　网络服务器 两台
　　服务器操作系统硬盘 两块
　　第三方生产的磁盘阵列柜 一台
　　磁盘柜专用SCSI电线 两根
　　磁盘阵列柜数据存贮硬盘 视用户需求确定
　　网络服务网卡 两块
　　除此之外，一些厂商还有更优秀的技术的解决方案，比如 HP.
　　HP NetServer为双机双控容错系统提供了高品质和高可靠的硬件基础……
　　HP双机双控容错系统结合了HP服务器产品的安全可靠性与Cluster技术的优点，相互配合二者的优势。
　　硬件配置范例：
　　HP L系统的网络服务器 两台
　　HP硬盘存贮柜（SS/6，RS/8，RS/12） 一台
　　磁盘柜专用SCSI集群适配电缆 两根
　　磁盘柜数据存贮硬盘 视用户需求确定
　　HP集群专用阵列卡 两块
　　网络服务网卡 两块五、HP光纤通道双机双控集群系统
　　光纤通道是一种连接标准，可以作为SCSI的一种替代解决方案，光纤技术具有高带宽、抗电磁干扰、传输距离远、质量高、扩展能力强等特性，目前在FC-AL仲裁环路上可接入126个设备。
　　光纤设备提供了多种增强的连接技术，大大方便了用户使用。服务器系统可以通过光缆远程连接，最大可跨越10公里的距离。它允许镜像配置，这样可以改善系统的容错能力。服务器系统的规模将更加灵活多变。SCSI每条通道最多可连接15个设备，而光纤仲裁环路最多可以连接126个设备。
　　光纤集群系统组成：
　　HP光纤集群系统硬件设备包括有两台HP服务器（需支持光纤卡，目前有LC2000、LH3000、LH4、 LH6000、LT6000、LXr8000、LXR8500）及光纤适配卡，可以使用RS/12FC光纤磁盘阵列柜，需另加一对或两对网卡用于心跳检测和与客户端连接。在配置过程中还需另外选配光纤卡到光纤存贮设备的光纤电缆。硬件配置：
　　HPL系统的网络服务器 两台
　　服务器操作系统硬盘 两块
　　HP光纤阵列存贮柜（RS/12FC） 一台
　　光纤磁盘柜专用光纤电缆 两根
　　光纤磁盘柜数据存贮硬盘 视用户需求确定
　　HP光纤适配卡 两块
　　网络服务网卡 两块
　　基于NT平台的集群软件
　　Microsoft的MSCS，也有许多第三方的专业软件公司开发的集群软件，如豪威的DATAWARE，VIN CA公司的STANDBY　SERVER，NSI公司的DOUBLE-TAKE
　　MS　WolfPack的特点








　　主要特点：
　　自动检测和修复服务器或应用程序的错误
　　可实现对服务器中应用程序的切换
　　可通过TCP/IP连接各种客户端，如MS-DOS、WINDOWS　3.X/9X/NT，Apple Macintosh、UNIX生产主机无需人工干涉即可自动恢复数据并接管任务
　　易管理性：
　　可自动审核服务器和应用程序的工作状态
　　可建立高可用性的应用程序、文件共享、打印请求等
　　可灵活设置应用程序和数据的恢复策略
　　简单操作即可进行应用程序的离线，重新再线，服务器间的迁移。
　　目前，WINDOWS 2000 Advanced Server与WINDOWS 2000 DataCenter Server都集成有更先进集群技术。
　　其它的网络操作系统平台上也有许多集群软件，比如：
　　基于novell平台的集群软件有Novell HA Server、Novell SFT III
　　基于sco UNIX平台的集群软件有Sentinel集群软件
　　基于Linux平台的集群软件有TurboCluster
　　七、集群技术的发展趋势
　　集群技术随着服务器硬件系统与网络操作系统的发展将会在可用性、高可靠性、系统冗余等方面逐步提高。未来的集群可以依靠集群文件系统实现对系统中的所有文件、设备和网络资源的全局访问，并且生成一个完整的系统映像。这样，无论应用程序在集群中的哪台服务器上，集群文件系统允许任何用户（远程或本地）都可以对这个软件进行访问。任何应用程序都可以访问这个集群任何文件。甚至在应用程序从一个节点转移到另一个节点的情况下，无需任何改动，应用程序就可以访问系统上的文件。
　　在今天，利用服务器的集群技术，通过周密计划和网络维护，系统破坏的机率是非常小的。所以，企业服务器的稳定必须使用集群技术。</p>
]]></description>
			<content:encoded><![CDATA[<p> 一、集群的基本概念<br />
　　有一种常见的方法可以大幅提高服务器的安全性，这就是集群。<br />
　　Cluster集群技术可如下定义：一组相互独立的服务器在网络中表现为单一的系统，并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。<br />
　　一个Cluster包含多台（至少二台）拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时，应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。<br />
　　Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时，这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时，应用服务将被重新启动或被另一台服务器接管。当以上任一故障发生时，客户将能很快连接到新的应用服务上。<br />
　　二、集群的硬件配置<br />
　　镜像服务器双机<br />
<span id="more-594"></span><br />
　　集群中镜像服务器双机系统是硬件配置最简单和价格最低廉的解决方案，通常镜像服务的硬件配置需要两台服务器，在每台服务器有独立操作系统硬盘和数据存贮硬盘，每台服务器有与客户端相连的网卡，另有一对镜像卡或完成镜像功能的网卡。<br />
　　镜像服务器具有配置简单，使用方便，价格低廉诸多优点，但由于镜像服务器需要采用网络方式镜像数据，通过镜像软件实现数据的同步，因此需要占用网络服务器的CPU及内存资源，镜像服务器的性能比单一服务器的性能要低一些。<br />
　　有一些镜像服务器集群系统采用内存镜像的技术，这个技术的优点是所有的应用程序和网络操作系统在两台服务器上镜像同步，当主机出现故障时，备份机可以在几乎没有感觉的情况下接管所有应用程序。因为两个服务器的内存完全一致，但当系统应用程序带有缺陷从而导致系统宕机时，两台服务器会同步宕机。这也是内存镜像卡或网卡实现数据同步，在大数据量读写过程中两台服务器在某些状态下会产生数据不同步，因此镜像服务器适合那些预算较少、对集群系统要求不高的用户。<br />
　　硬件配置范例：<br />
　　网络服务器 两台服务器操作系统硬盘 两块<br />
　　服务器数据存贮硬盘 视用户需要确定<br />
　　服务器镜像卡（部分软件可使用标准网卡） 两块<br />
　　网络服务网卡 两块三、双机与磁盘阵列<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
　　与镜像服务器双机系统相比，双机与磁盘阵列柜互联结构多出了第三方生产的磁盘阵列柜，目前，豪威公司、精业公司等许多公司都生产有磁盘阵列柜，在磁盘阵列柜中安装有磁盘阵列控制卡，阵列柜可以直接将柜中的硬盘配置成为逻辑盘阵。磁盘阵列柜通过SCSI电缆与服务器上普通SCSI卡相连，系统管理员需直接在磁盘柜上配置磁盘阵列。<br />
　　双机与磁盘阵列柜互联结构不采用内存镜像技术，因此需要有一定的切换时间（通常为60？D？D180秒），它可以有郊的避免由于应用程序自身的缺陷导致系统全部宕机，同时由于所有的数据全部存贮在中置的磁盘阵列柜中，当工作机出现故障时，备份机接替工作机，从磁盘阵列中读取数据，所以不会产生数据不同步的问题，由于这种方案不需要网络镜像同步，因此这种集群方案服务器的性能要比镜像服务器结构高出很多。<br />
　　双机与磁盘阵列柜互联结构的缺点是在系统当中存在单点错的缺陷，所谓单点错是指当系统中某个部件或某个应用程序出现故障时，导致所有系统全部宕机。在这个系统中磁盘阵列柜是会导致单点错，当磁盘阵列柜出现逻辑或物理故障时，所有存贮的数据会全部丢失，因此，在选配这种方案时，需要选用一个品质与售后服务较好的产品。<br />
　　硬件配置范例：<br />
　　网络服务器 两台<br />
　　服务器操作系统硬盘 两块<br />
　　第三方生产的磁盘阵列柜 一台<br />
　　磁盘柜专用SCSI电线 两根<br />
　　磁盘阵列柜数据存贮硬盘 视用户需求确定<br />
　　网络服务网卡 两块<br />
　　除此之外，一些厂商还有更优秀的技术的解决方案，比如 HP.<br />
　　HP NetServer为双机双控容错系统提供了高品质和高可靠的硬件基础……<br />
　　HP双机双控容错系统结合了HP服务器产品的安全可靠性与Cluster技术的优点，相互配合二者的优势。<br />
　　硬件配置范例：<br />
　　HP L系统的网络服务器 两台<br />
　　HP硬盘存贮柜（SS/6，RS/8，RS/12） 一台<br />
　　磁盘柜专用SCSI集群适配电缆 两根<br />
　　磁盘柜数据存贮硬盘 视用户需求确定<br />
　　HP集群专用阵列卡 两块<br />
　　网络服务网卡 两块五、HP光纤通道双机双控集群系统<br />
　　光纤通道是一种连接标准，可以作为SCSI的一种替代解决方案，光纤技术具有高带宽、抗电磁干扰、传输距离远、质量高、扩展能力强等特性，目前在FC-AL仲裁环路上可接入126个设备。<br />
　　光纤设备提供了多种增强的连接技术，大大方便了用户使用。服务器系统可以通过光缆远程连接，最大可跨越10公里的距离。它允许镜像配置，这样可以改善系统的容错能力。服务器系统的规模将更加灵活多变。SCSI每条通道最多可连接15个设备，而光纤仲裁环路最多可以连接126个设备。<br />
　　光纤集群系统组成：<br />
　　HP光纤集群系统硬件设备包括有两台HP服务器（需支持光纤卡，目前有LC2000、LH3000、LH4、 LH6000、LT6000、LXr8000、LXR8500）及光纤适配卡，可以使用RS/12FC光纤磁盘阵列柜，需另加一对或两对网卡用于心跳检测和与客户端连接。在配置过程中还需另外选配光纤卡到光纤存贮设备的光纤电缆。硬件配置：<br />
　　HPL系统的网络服务器 两台<br />
　　服务器操作系统硬盘 两块<br />
　　HP光纤阵列存贮柜（RS/12FC） 一台<br />
　　光纤磁盘柜专用光纤电缆 两根<br />
　　光纤磁盘柜数据存贮硬盘 视用户需求确定<br />
　　HP光纤适配卡 两块<br />
　　网络服务网卡 两块<br />
　　基于NT平台的集群软件<br />
　　Microsoft的MSCS，也有许多第三方的专业软件公司开发的集群软件，如豪威的DATAWARE，VIN CA公司的STANDBY　SERVER，NSI公司的DOUBLE-TAKE<br />
　　MS　WolfPack的特点<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
　　主要特点：<br />
　　自动检测和修复服务器或应用程序的错误<br />
　　可实现对服务器中应用程序的切换<br />
　　可通过TCP/IP连接各种客户端，如MS-DOS、WINDOWS　3.X/9X/NT，Apple Macintosh、UNIX生产主机无需人工干涉即可自动恢复数据并接管任务<br />
　　易管理性：<br />
　　可自动审核服务器和应用程序的工作状态<br />
　　可建立高可用性的应用程序、文件共享、打印请求等<br />
　　可灵活设置应用程序和数据的恢复策略<br />
　　简单操作即可进行应用程序的离线，重新再线，服务器间的迁移。<br />
　　目前，WINDOWS 2000 Advanced Server与WINDOWS 2000 DataCenter Server都集成有更先进集群技术。<br />
　　其它的网络操作系统平台上也有许多集群软件，比如：<br />
　　基于novell平台的集群软件有Novell HA Server、Novell SFT III<br />
　　基于sco UNIX平台的集群软件有Sentinel集群软件<br />
　　基于Linux平台的集群软件有TurboCluster<br />
　　七、集群技术的发展趋势<br />
　　集群技术随着服务器硬件系统与网络操作系统的发展将会在可用性、高可靠性、系统冗余等方面逐步提高。未来的集群可以依靠集群文件系统实现对系统中的所有文件、设备和网络资源的全局访问，并且生成一个完整的系统映像。这样，无论应用程序在集群中的哪台服务器上，集群文件系统允许任何用户（远程或本地）都可以对这个软件进行访问。任何应用程序都可以访问这个集群任何文件。甚至在应用程序从一个节点转移到另一个节点的情况下，无需任何改动，应用程序就可以访问系统上的文件。<br />
　　在今天，利用服务器的集群技术，通过周密计划和网络维护，系统破坏的机率是非常小的。所以，企业服务器的稳定必须使用集群技术。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/594.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下Tsm 服务器、客户端安装配置全过程</title>
		<link>http://www.evanjiang.net.cn/archives/591.html</link>
		<comments>http://www.evanjiang.net.cn/archives/591.html#comments</comments>
		<pubDate>Wed, 25 Feb 2009 14:45:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[存储备份]]></category>
		<category><![CDATA[Linux TSM服务器 客户端安装配]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=591</guid>
		<description><![CDATA[<p>系统环境：LINUX
AS5</p>
<p>存储：IBM DS400 STORAGE
已经将阵列MOUNT到本地/sdb/</p>
<p>1．
软件下载 </p>
<p>地址 ftp://ftp.software.ibm.com/storage/tivoli-storage-management/
TSM服务器端：选用TSM 5.2,原因是有WEB界面，ISC 和 AC普遍反映很慢
TSM客户端5.4.1</p>
<p>2.软件安装</p>
<p>2.1 安装服务器 ：
rpm –ivh xxx.rpm
\i686 \TIVsm-license-5.2.0-0.i386.rpm
\i686 \TIVsm-license_keys-5.2.0-0.i386.rpm
\i686 \TIVsm-server-5.2.0-0.i386.rpm
\i686 \TIVsm-tsmscsi-5.2.0-0.i386.rpm
\noarch \TIVsm-webadmin-5.2.0-0.noarch.rpm</p>
<p>2.2 安装客户端
rpm –ivh xxx.rpm
TIVsm-API.i386.rpm
TIVsm-BA.i386.rpm
TIVsm-msg.zh_CN.i386.rpm
</p>
<p>3.软件配置</p>
<p>3.1 服务器端配置
cd /opt/tivoli/tsm/server/bin/
vi dsmserv.opt
dsmserv.opt内容如下：
*******************************
COMMMETHOD TCPIP
COMMMETHOD HTTP
TCPPORT 1500
HTTPPORT 1580
DEVCONFIG devcnfg.out
*******************************</p>
<p>3.2 客户端配置
cd /opt/tivoli/tsm/client/ba/bin/
vi dsm.sys
dsm.sys内容如下：
*******************************
SErvername SERVER1  (此名称为TSM服务器名称，默认为SERVER1)
COMMMethod TCPip
TCPPort 1500
TCPServeraddress  192.168.0.1 (此IP为服务器端的IP)
nodename CLIENT1 (此名称为服务器端建立的node的名称，后面会讲到)
passwordaccess generate
***********************************</p>
<p>vi dsm.opt
dsm.opt内容如下
***********************************
SErvername SERVER1
***********************************</p>
<p>4．软件运行</p>
<p>4.1 服务器端运行，
cd /opt/tivoli/tsm/server/bin/
./dsmserv
然后在IE里访问http://192.168.0.1：1580
192.168.0.1为TSM服务器IP
用户名密码：admin</p>
<p>4.2 客户端运行
cd /opt/tivoli/tsm/client/ba/bin/
./dsmcad
启动WEB访问
./dsmc
运行客户端
然后在IE里访问http://192.168.0.2：1581
192.168.0.2为TSM客户端IP</p>
<p>5．软件使用</p>
<p>5.1 服务器端使用
IE里访问http://192.168.0.1：1580
设定不允许超时
Operation view &#8212;- Manage security&#8212; Set web [...]]]></description>
			<content:encoded><![CDATA[<p>系统环境：LINUX<br />
AS5</p>
<p>存储：IBM DS400 STORAGE<br />
已经将阵列MOUNT到本地/sdb/</p>
<p>1．<br />
软件下载 </p>
<p>地址 ftp://ftp.software.ibm.com/storage/tivoli-storage-management/<br />
TSM服务器端：选用TSM 5.2,原因是有WEB界面，ISC 和 AC普遍反映很慢<br />
TSM客户端5.4.1</p>
<p>2.软件安装</p>
<p>2.1 安装服务器 ：<br />
rpm –ivh xxx.rpm<br />
\i686 \TIVsm-license-5.2.0-0.i386.rpm<br />
\i686 \TIVsm-license_keys-5.2.0-0.i386.rpm<br />
\i686 \TIVsm-server-5.2.0-0.i386.rpm<br />
\i686 \TIVsm-tsmscsi-5.2.0-0.i386.rpm<br />
\noarch \TIVsm-webadmin-5.2.0-0.noarch.rpm</p>
<p>2.2 安装客户端<br />
rpm –ivh xxx.rpm<br />
TIVsm-API.i386.rpm<br />
TIVsm-BA.i386.rpm<br />
TIVsm-msg.zh_CN.i386.rpm<br />
<span id="more-591"></span></p>
<p>3.软件配置</p>
<p>3.1 服务器端配置<br />
cd /opt/tivoli/tsm/server/bin/<br />
vi dsmserv.opt<br />
dsmserv.opt内容如下：<br />
*******************************<br />
COMMMETHOD TCPIP<br />
COMMMETHOD HTTP<br />
TCPPORT 1500<br />
HTTPPORT 1580<br />
DEVCONFIG devcnfg.out<br />
*******************************</p>
<p>3.2 客户端配置<br />
cd /opt/tivoli/tsm/client/ba/bin/<br />
vi dsm.sys<br />
dsm.sys内容如下：<br />
*******************************<br />
SErvername SERVER1  (此名称为TSM服务器名称，默认为SERVER1)<br />
COMMMethod TCPip<br />
TCPPort 1500<br />
TCPServeraddress  192.168.0.1 (此IP为服务器端的IP)<br />
nodename CLIENT1 (此名称为服务器端建立的node的名称，后面会讲到)<br />
passwordaccess generate<br />
***********************************</p>
<p>vi dsm.opt<br />
dsm.opt内容如下<br />
***********************************<br />
SErvername SERVER1<br />
***********************************</p>
<p>4．软件运行</p>
<p>4.1 服务器端运行，<br />
cd /opt/tivoli/tsm/server/bin/<br />
./dsmserv<br />
然后在IE里访问http://192.168.0.1：1580<br />
192.168.0.1为TSM服务器IP<br />
用户名密码：admin</p>
<p>4.2 客户端运行<br />
cd /opt/tivoli/tsm/client/ba/bin/<br />
./dsmcad<br />
启动WEB访问<br />
./dsmc<br />
运行客户端<br />
然后在IE里访问http://192.168.0.2：1581<br />
192.168.0.2为TSM客户端IP</p>
<p>5．软件使用</p>
<p>5.1 服务器端使用<br />
IE里访问http://192.168.0.1：1580<br />
设定不允许超时<br />
Operation view &#8212;- Manage security&#8212; Set web authenticationtime out 设为0</p>
<p>建立客户端与服务器的连接点<br />
Object view&#8212; Client &#8212; Client Nodes&#8212;Operations&#8212; Register a new node<br />
此处的Node name 就是 客户端 DSM.SYS里的NODENAME<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
Policy Domain Name，Policy Sets，Management Classes是系统已经默认的 命名为STANDARD,如果想自己重头建起，顺序如下：<br />
Object view&#8212;Policy Domain Name&#8212;Operations &#8212; Define Policy Domain<br />
Object view&#8212;Policy Domain Name&#8212; Policy Sets&#8212; Operations&#8212;<br />
Define Policy Sets<br />
Object view&#8212;Policy Domain Name&#8212; Policy Sets&#8212;<br />
Management Class &#8212; Operations &#8212;<br />
Define Management Class<br />
Object view&#8212;Policy Domain Name&#8212; Client Nodes&#8212;Operations&#8212; Register a new node</p>
<p>将LOG保存地点改为存储上：<br />
Object view&#8212;RecoveryLog&#8212;Recovery Log VolumesDefinerecovery log volume<br />
Volume Name:/sdb/log01.dsm<br />
Format Size:1000<br />
此处为Log文件大小定义，我设为1000 M<br />
Wait:No</p>
<p>将Backup保存地点改为存储上：<br />
Object view&#8212; Server Storage&#8212; Storage Pools&#8212; Disk storagepools&#8212; Volumes&#8212;Operations &#8212; Define a disk storage pool volume<br />
Storage Pool Name:BACKUPPOOL<br />
Volume Name: /sdb/backup01.dsm<br />
Media AccessStatus: READWRITE<br />
Format Size:10000<br />
此处为backup空间大小定义，我设为10000M ,空间不够了再来定义backup02.dsm,<br />
Wait:No</p>
<p>5.2 客户端使用<br />
IE里访问http://192.168.0.2：1581<br />
输入Noden名和密码<br />
比较简单，有一点说明，要恢复以前某个时间删过的文件时,需要选择<br />
恢复&#8212;查看&#8212;显示活动/非活动的文件</p>
<p>6.定时备份</p>
<p>方法有两种，一种是在服务器端定义SCHEDULE，一种是在客户端定义定时备份，这里我们选用比较简单的后者。<br />
在客户端运行：<br />
cd /opt/tivoli/tsm/client/ba/bin/<br />
dsmc incremental subdir=yes /test/</p>
<p>意思是 对/test/下所有文件及子目录做增量备份(incremental可简写成i),那么我们只要定时执行这条命令就可以了，Linux下的crontab即可实现，我们先把命令写在一个文件里，定时去执行这文件。<br />
cd /opt/tivoli/tsm/client/ba/bin/<br />
vi dsmc.sh<br />
内容：dsmc incremental subdir=yes /test/</p>
<p>保存，退出<br />
chmod 777 dsmc.sh</p>
<p>运行Linux crontab,和VI一样使用<br />
crontab –e<br />
内容：<br />
21 02 * * *<br />
/opt/tivoli/tsm/client/ba/bin/dsmc.sh<br />
意思是每天02：21执行dsmc.sh<br />
保存，退出</p>
<p>7．高级应用</p>
<p>设置保留的版本数<br />
Object view&#8212;Policy Domain Name&#8212; Policy Sets&#8212; ManagementClass&#8212;Backup Copy Groups&#8212;Operations &#8212;<br />
Define Backup Copy Groups</p>
<p>Object view&#8212;Policy Domain Name&#8212; Policy Sets&#8212; 你的Policy Set&#8212;Operations&#8212; Validate Policy Sets</p>
<p>Object view&#8212;Policy Domain Name&#8212; Policy Sets&#8212; 你的Policy Set&#8212;Operations &#8212; Activate PolicySets</p>
<p>保留其它版本时间长度（ RetainExtra Versions）<br />
保留其它版本属性指定除最新备份版本外所有其它版本的保留天数。最新版本是现行版本，将永不删除。如果指定无限制，则额外版本会保存到备份版本数目超过存在的版本数据或删除的版本数据参数设置。在此情况下，最老的额外版本会立即删除。</p>
<p>已删除的版本数据 (Versions Data Deleted)<br />
已删除的版本数据属性指定为从工作站上擦除的文件和目录保留的不同备份版本的最大数目。只要文件或目录还存留在工作站上，就忽略此参数。<br />
如果删除此文件或目录，则在下一次运行增量备份时，现行备份版本将变为非现行版本，而超过此参数指定数值的最早版本将被删除。<br />
其余版本的到期日期基于保留其它版本时间长度和保留唯一版本时间长度参数。</p>
<p>注：Policy Set Name 为 ACTIVE的Policy Set 是被Activate 的Policy Set</p>
<p>8. 基础知识</p>
<p>完全备份<br />
备份全部选中的文件夹，并不依赖文件的存档属性来确定备份那些文件。在备份过程中，任何现有的标记都被清除，每个文件都被标记为已备份，换言之，清除存档属性。<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
差异备份<br />
差异备份是针对完全备份：备份上一次的完全备份后发生变化的所有文件。差异备份过程中，只备份有标记的那些选中的文件和文件夹。它不清除标记，既：备份后不标记为已备份文件，换言之，不清除存档属性。</p>
<p>增量备份<br />
增量备份是针对于上一次备份（无论是哪种备份）：备份上一次备份后，所有发生变化的文件。增量备份过程中，只备份有标记的选中的文件和文件夹，它清除标记，既：备份后标记文件，换言之，清除存档属性。</p>
<p>完全备份和差异备份组合<br />
在星期一进行完全备份，在星期二至星期五进行差异备份。如果在星期五数据被破坏了，则你只需要还原星期一完全的备份和星期四的差异备份。这种策略备份数据需要较多的时间，但还原数据使用较少的时间。</p>
<p>完全备份和增量备份组合<br />
在星期一进行完全备份，在星期二至星期五进行增量备份。如果在星期五数据被破坏了，则你需要还原星期一正常的备份和从星期二至星期五的所有增量备份。这种策略备份数据需要较多的时间，但还原数据使用较少的时间。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/591.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下防御arp攻击策略</title>
		<link>http://www.evanjiang.net.cn/archives/587.html</link>
		<comments>http://www.evanjiang.net.cn/archives/587.html#comments</comments>
		<pubDate>Wed, 25 Feb 2009 14:18:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[Linux 防御 arp 攻击]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=587</guid>
		<description><![CDATA[<p>1./*找出ARP攻击的机器*/
获取同一网段下所有机器MAC地址的办法</p>
<p>机房有机器中毒，发arp包，通过arpspoof虽然可以解决，也可以找到中毒机器的mac地址，但在机房设备不足的情况下，很难查到mac地址对应的IP。然后我们可以通过一个循环，使用arping来对整个子网下面的机器发一个包，这样就可以在arp下面查看到相应的mac缓存，进而得到对应的IP地址。
代码:#!/bin/sh
#
for ((i = 1; i < 254; i++))
do
arping -I eth0 60.191.82.$i -c 1
done
arp -a > mac_table
脚本跑完后，查看当前目录生成的mac_table。
#arp -a 查找你中毒时网关的MAC地址，并记录下来在mac_table里寻找到相对应的机器，仍后就可以找出那台机器感染了ARP病毒。
</p>
<p>2./*使用arpspoof抵御ARP攻击*/
#
先安装libnet</p>
<p>http://www.packetfactory.net/libnet/dist/libnet.tar.gz</p>
<p>tar -xvzf libnet.tar.gz
cd libnet
./configure
make
make install</p>
<p>安装arpoison</p>
<p>http://www.arpoison.net/arpoison-0.6.tar.gz</p>
<p>tar -xvzf arpoison-0.6.tar.gz
cd arpoison
gcc arpoison.c /usr/lib/libnet.a -o arpoison
mv arpoison /usr/sbin








编写arpDefend.sh脚本.
代码:#!/bin/sh
#arpDefend.sh
#
#网关mac地址
GATEWAY_MAC=00:11:BB:A5: D2:40
#目的mac地址
DEST_MAC=ff:ff:ff:ff:ff:ff
#目的ip地址(网段广播地址)
DEST_IP=60.191.82.254</p>
<p>#本地网卡接口
INTERFACE=eth0
#$INTERFACE的mac地址
MY_MAC=00:30:48:33:F0:BA
#$INTERFACE的ip地址
MY_IP=60.191.82.247</p>
<p>#在本机建立静态ip/mac入口 $DEST_IP&#8211;$GATEWAY_MAC
arp -s $DEST_IP $GATEWAY_MAC








#发送arp reply ,使$DEST_IP更新$MY_IP的mac地址为$MY_MAC
arpoison -i $INTERFACE -d $DEST_IP -s $MY_IP -t $DEST_MAC -r $MY_MAC 1>/dev/null &#038;</p>
]]></description>
			<content:encoded><![CDATA[<p>1./*找出ARP攻击的机器*/<br />
获取同一网段下所有机器MAC地址的办法</p>
<p>机房有机器中毒，发arp包，通过arpspoof虽然可以解决，也可以找到中毒机器的mac地址，但在机房设备不足的情况下，很难查到mac地址对应的IP。然后我们可以通过一个循环，使用arping来对整个子网下面的机器发一个包，这样就可以在arp下面查看到相应的mac缓存，进而得到对应的IP地址。<br />
代码:#!/bin/sh<br />
#<br />
for ((i = 1; i < 254; i++))<br />
do<br />
arping -I eth0 60.191.82.$i -c 1<br />
done<br />
arp -a > mac_table<br />
脚本跑完后，查看当前目录生成的mac_table。<br />
#arp -a 查找你中毒时网关的MAC地址，并记录下来在mac_table里寻找到相对应的机器，仍后就可以找出那台机器感染了ARP病毒。<br />
<span id="more-587"></span></p>
<p>2./*使用arpspoof抵御ARP攻击*/<br />
#<br />
先安装libnet</p>
<p>http://www.packetfactory.net/libnet/dist/libnet.tar.gz</p>
<p>tar -xvzf libnet.tar.gz<br />
cd libnet<br />
./configure<br />
make<br />
make install</p>
<p>安装arpoison</p>
<p>http://www.arpoison.net/arpoison-0.6.tar.gz</p>
<p>tar -xvzf arpoison-0.6.tar.gz<br />
cd arpoison<br />
gcc arpoison.c /usr/lib/libnet.a -o arpoison<br />
mv arpoison /usr/sbin<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
编写arpDefend.sh脚本.<br />
代码:#!/bin/sh<br />
#arpDefend.sh<br />
#<br />
#网关mac地址<br />
GATEWAY_MAC=00:11:BB:A5: D2:40<br />
#目的mac地址<br />
DEST_MAC=ff:ff:ff:ff:ff:ff<br />
#目的ip地址(网段广播地址)<br />
DEST_IP=60.191.82.254</p>
<p>#本地网卡接口<br />
INTERFACE=eth0<br />
#$INTERFACE的mac地址<br />
MY_MAC=00:30:48:33:F0:BA<br />
#$INTERFACE的ip地址<br />
MY_IP=60.191.82.247</p>
<p>#在本机建立静态ip/mac入口 $DEST_IP&#8211;$GATEWAY_MAC<br />
arp -s $DEST_IP $GATEWAY_MAC<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
#发送arp reply ,使$DEST_IP更新$MY_IP的mac地址为$MY_MAC<br />
arpoison -i $INTERFACE -d $DEST_IP -s $MY_IP -t $DEST_MAC -r $MY_MAC 1>/dev/null &</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/587.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux磁盘配额（Quota）</title>
		<link>http://www.evanjiang.net.cn/archives/437.html</link>
		<comments>http://www.evanjiang.net.cn/archives/437.html#comments</comments>
		<pubDate>Thu, 19 Feb 2009 12:22:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[It Tips]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[Linux 磁盘配额  quota]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=437</guid>
		<description><![CDATA[<p>磁盘配额（Quota）一直就是个很有用的东西！怎么说呢？举个例子来说明，如果您曾经申请过网络的mail服务时，那么肯定就会明白什么是20MB的邮 件空间、30MB的免费网页空间，好，这个20MB，30MB是怎样定义出来的呢？哈哈！没错，就是quota这个东西搞出来的！如果我们要限制用户使 用硬盘的容量使用大小，嗯！来这里看看就对！  </p>
<p>什么是quota
『quota』就字面上的意思来看，！就是有多少『限额』的意思啦！如果是用在零用钱上面，就是类似『有多少零用钱一个月』的意思之类的。如果是在容量空间上面呢？以Linux来说，！就是有多少容量限制的意思。 </p>
<p>在Linux系统中，由于是多人多任务的环境，所以会有多人共同使用一个硬盘空间的情况发生，如果其中有少数几个使用者大量的占掉硬盘空间的话，那势必 压缩其它使用者的使用权力！因此管理员应该适当的开放硬盘的权限给使用者，以妥善的分配系统资源！避免有人抗议呀！举例来说，我们使用者的预设家目录都是 在/home底下，如果/home是个独立的partition，他大概有10G好，而/home底下共有30个人，也就是说，每个使用者平均应该会有 333MB的空间才对。偏偏有个使用者在他的家目录底下塞好多只影片，占掉8GB的空间，想想看，是否造成其它正常使用者的不便呢？这个时候就得要靠 『quota』的帮忙！ </p>
<p>Quota的一般用途
quota比较常使用的几个情况是：
针对Web服务器，例如：每个人的网页空间的容量限制！
针对Mail服务器，例如：每个人的邮件空间限制。
针对File服务器，例如：每个人最大的可用网络硬盘空间。
在Linux当中，使用来作为硬盘空间管理的就是所谓的quota这个东东啦！

Quota的使用限制
使用这个模块要有几个步骤，底下就分别说说吧！另外要特别注意的是，使用quota时有几个基本的限制需要谈一谈：
仅针对整个partition：
quota实际在运作的时候，是针对『整个partition』进行限制的，例如：如果你的/dev/hda5是挂载在/home底下，那么在/home底下的所有目录都会受到限制！
核心必须支持quota：
Linux系统核心必须有支持quota这个模块才行：如果您是使用FC4的预设核心，嘿嘿！那恭喜你，你的系统已经预设有开放quota这个模块啰！ 如果您是自行编译核心的，那么请特别留意您是否已经『真的』开启quota这个模块？至于核心编译的过程我们会在未来进行说明！
Quota的记录文件：
目前新版的Linux distributions如：Fedora Core 4与SuSE Server9等使用的是Kernel2.6.xx的核心版本，这个核心版本支持新的quota模块，使用的预设档案（aquota.user, aquota.group）将不同于旧版本的quota.user,quota.group！（多一个a！）而由旧版本的quota可以藉由 convertquota这个程序来转换呢！
只对一般身份使用者有效：
这就有趣！并不是所有在Linux上面的账号都可以设定quota呢，例如root就不能设定quota，因为整个系统所有的数据几乎都是他的！^_^
quota这支程序对硬盘配额的限制项目：
quota这个程序针对整个partition的限制项目主要分为底下几个部分：
soft：
这是最低限制容量的意思，使用者在宽限期间之内，他的容量可以超过soft，但必需要宽限时间之内将磁盘容量降低到soft的容量限制之下！
hard：
这是『绝对不能超过』的容量！跟soft相比的意思为何呢？通常hardlimit会比softlimit为高，例如网络磁盘空间为30MB，那么 hardlimit就设定为30MB，但是为让使用者有一定的警戒心，所以当使用空间超过25MB时，例如使用者使用27MB的空间时，那么系统就会 警告使用者，让使用者可以在『宽限时间内』将他的档案量降低至25MB(亦即是softlimit)之内！也就是说，soft到hard之间的容量其实就 是宽限的容量啦！可以达到针对使用者的『警示』作用！
宽限时间：
那么宽限时间就可以很清楚的知道含意是什么！也就是当您的使用者使用的空间超过softlimit，却还没有到达hardlimit时，那么在这个 『宽限时间』之内，就必需要请使用者将使用的磁盘容量降低到softlimit之下！而当使用者将磁盘容量使用情况超过softlimit时，『宽限时 间』就会自动被启动，而在使用者将容量降低到softlimit之下，那么宽限时间就会自动的取消！ </p>
<p>基本的quota命令介绍
在开始进行quota的实践之前，我们得来解一下quota要使用的指令！基本上分为两种，一种是查询功能(quota、quotacheck、 quotastats、warnquota、repquota)，另一种则是编辑quota的内容(edquota、setquota)。下面我们来谈一 谈这些基本的指令吧！ </p>
<p>/etc/mtab
怪！不是说好要说明quota相关指令的吗？干嘛提这个档案系统(Filesystem)实际挂载的记录文件？！要注意～当我们使用quota的 时候，基本上，系统会去搜寻：『系统上具有quota参数的partition』所以啰，当我们要使用quota的功能时，我们的Filesystem必 须已经支持quota才行。一般来说，我们是以编辑/etc/fstab后，再重新挂载Filesystem的方法来让系统的Filesystem支持 quota的！这个概念可是很重要的喔！^_^ </p>
<p>quota
[root@linux~]# quota [-uvsl] [username]
[root@linux~]# quota [-gvsl] [groupname]
参数：
-u  ：后面可以接username，表示显示出该使用者的quota限制值。若不接username，表示显示出执行者的quota限制值。
-g  ：后面可接groupname，表示显示出该群组的quota限制值。
-v  ：显示每个filesystem的quota值；
-s  ：可选择以inode或磁盘容量的限制值来显示；
-l  ：仅显示出目前本机上面的filesystem的quota值。</p>
<p>范例：
范例一：秀出目前root自己的quota限制值：
[root@linux~]# quota -guvs</p>
<p>范例二：秀出dmtsai这个使用者的磁盘配额
[root@linux~]# quota -vs -udmtsai
注意一下这两个范例，如果您的系统上面尚未有任何的quota支持的filesystem时，
使用这两个范例时，『不会有任何信息列出来』！不要以为发生错误！
这个命令仅是使用来『显示(display)』目前某个群组或者某个使用者的 quota 限值！您可以使用来观察一下！ </p>
<p>quotacheck
[root@linux [...]]]></description>
			<content:encoded><![CDATA[<p>磁盘配额（Quota）一直就是个很有用的东西！怎么说呢？举个例子来说明，如果您曾经申请过网络的mail服务时，那么肯定就会明白什么是20MB的邮 件空间、30MB的免费网页空间，好，这个20MB，30MB是怎样定义出来的呢？哈哈！没错，就是quota这个东西搞出来的！如果我们要限制用户使 用硬盘的容量使用大小，嗯！来这里看看就对！  </p>
<p>什么是quota<br />
『quota』就字面上的意思来看，！就是有多少『限额』的意思啦！如果是用在零用钱上面，就是类似『有多少零用钱一个月』的意思之类的。如果是在容量空间上面呢？以Linux来说，！就是有多少容量限制的意思。 </p>
<p>在Linux系统中，由于是多人多任务的环境，所以会有多人共同使用一个硬盘空间的情况发生，如果其中有少数几个使用者大量的占掉硬盘空间的话，那势必 压缩其它使用者的使用权力！因此管理员应该适当的开放硬盘的权限给使用者，以妥善的分配系统资源！避免有人抗议呀！举例来说，我们使用者的预设家目录都是 在/home底下，如果/home是个独立的partition，他大概有10G好，而/home底下共有30个人，也就是说，每个使用者平均应该会有 333MB的空间才对。偏偏有个使用者在他的家目录底下塞好多只影片，占掉8GB的空间，想想看，是否造成其它正常使用者的不便呢？这个时候就得要靠 『quota』的帮忙！ </p>
<p>Quota的一般用途<br />
quota比较常使用的几个情况是：<br />
针对Web服务器，例如：每个人的网页空间的容量限制！<br />
针对Mail服务器，例如：每个人的邮件空间限制。<br />
针对File服务器，例如：每个人最大的可用网络硬盘空间。<br />
在Linux当中，使用来作为硬盘空间管理的就是所谓的quota这个东东啦！<br />
<span id="more-437"></span><br />
Quota的使用限制<br />
使用这个模块要有几个步骤，底下就分别说说吧！另外要特别注意的是，使用quota时有几个基本的限制需要谈一谈：<br />
仅针对整个partition：<br />
quota实际在运作的时候，是针对『整个partition』进行限制的，例如：如果你的/dev/hda5是挂载在/home底下，那么在/home底下的所有目录都会受到限制！<br />
核心必须支持quota：<br />
Linux系统核心必须有支持quota这个模块才行：如果您是使用FC4的预设核心，嘿嘿！那恭喜你，你的系统已经预设有开放quota这个模块啰！ 如果您是自行编译核心的，那么请特别留意您是否已经『真的』开启quota这个模块？至于核心编译的过程我们会在未来进行说明！<br />
Quota的记录文件：<br />
目前新版的Linux distributions如：Fedora Core 4与SuSE Server9等使用的是Kernel2.6.xx的核心版本，这个核心版本支持新的quota模块，使用的预设档案（aquota.user, aquota.group）将不同于旧版本的quota.user,quota.group！（多一个a！）而由旧版本的quota可以藉由 convertquota这个程序来转换呢！<br />
只对一般身份使用者有效：<br />
这就有趣！并不是所有在Linux上面的账号都可以设定quota呢，例如root就不能设定quota，因为整个系统所有的数据几乎都是他的！^_^<br />
quota这支程序对硬盘配额的限制项目：<br />
quota这个程序针对整个partition的限制项目主要分为底下几个部分：<br />
soft：<br />
这是最低限制容量的意思，使用者在宽限期间之内，他的容量可以超过soft，但必需要宽限时间之内将磁盘容量降低到soft的容量限制之下！<br />
hard：<br />
这是『绝对不能超过』的容量！跟soft相比的意思为何呢？通常hardlimit会比softlimit为高，例如网络磁盘空间为30MB，那么 hardlimit就设定为30MB，但是为让使用者有一定的警戒心，所以当使用空间超过25MB时，例如使用者使用27MB的空间时，那么系统就会 警告使用者，让使用者可以在『宽限时间内』将他的档案量降低至25MB(亦即是softlimit)之内！也就是说，soft到hard之间的容量其实就 是宽限的容量啦！可以达到针对使用者的『警示』作用！<br />
宽限时间：<br />
那么宽限时间就可以很清楚的知道含意是什么！也就是当您的使用者使用的空间超过softlimit，却还没有到达hardlimit时，那么在这个 『宽限时间』之内，就必需要请使用者将使用的磁盘容量降低到softlimit之下！而当使用者将磁盘容量使用情况超过softlimit时，『宽限时 间』就会自动被启动，而在使用者将容量降低到softlimit之下，那么宽限时间就会自动的取消！ </p>
<p>基本的quota命令介绍<br />
在开始进行quota的实践之前，我们得来解一下quota要使用的指令！基本上分为两种，一种是查询功能(quota、quotacheck、 quotastats、warnquota、repquota)，另一种则是编辑quota的内容(edquota、setquota)。下面我们来谈一 谈这些基本的指令吧！ </p>
<p>/etc/mtab<br />
怪！不是说好要说明quota相关指令的吗？干嘛提这个档案系统(Filesystem)实际挂载的记录文件？！要注意～当我们使用quota的 时候，基本上，系统会去搜寻：『系统上具有quota参数的partition』所以啰，当我们要使用quota的功能时，我们的Filesystem必 须已经支持quota才行。一般来说，我们是以编辑/etc/fstab后，再重新挂载Filesystem的方法来让系统的Filesystem支持 quota的！这个概念可是很重要的喔！^_^ </p>
<p>quota<br />
[root@linux~]# quota [-uvsl] [username]<br />
[root@linux~]# quota [-gvsl] [groupname]<br />
参数：<br />
-u  ：后面可以接username，表示显示出该使用者的quota限制值。若不接username，表示显示出执行者的quota限制值。<br />
-g  ：后面可接groupname，表示显示出该群组的quota限制值。<br />
-v  ：显示每个filesystem的quota值；<br />
-s  ：可选择以inode或磁盘容量的限制值来显示；<br />
-l  ：仅显示出目前本机上面的filesystem的quota值。</p>
<p>范例：<br />
范例一：秀出目前root自己的quota限制值：<br />
[root@linux~]# quota -guvs</p>
<p>范例二：秀出dmtsai这个使用者的磁盘配额<br />
[root@linux~]# quota -vs -udmtsai<br />
注意一下这两个范例，如果您的系统上面尚未有任何的quota支持的filesystem时，<br />
使用这两个范例时，『不会有任何信息列出来』！不要以为发生错误！<br />
这个命令仅是使用来『显示(display)』目前某个群组或者某个使用者的 quota 限值！您可以使用来观察一下！ </p>
<p>quotacheck<br />
[root@linux ~]# quotacheck [-avug] [/mount_point]<br />
参数：<br />
-a  ：扫瞄所有在/etc/mtab内，含有quota支持的filesystem，加上此参数后，/mount_point可不必写，因为扫描所有的filesystem嘛！<br />
-u  ：针对使用者扫描文件与目录的使用情况，会建立aquota.user<br />
-g  ：针对群组扫描文件与目录的使用情况，会建立aquota.group<br />
-v  ：显示扫描过程的信息；<br />
-M  ：『强制』进行quotacheck的扫描。</p>
<p>范例：</p>
<p>范例一：将所有的在/etc/mtab内，含有quota支持的partition进行扫描<br />
[root@linux ~]# quotacheck -avug<br />
quotacheck: Can&#8217;t find filesystem to check or filesystem not mounted with quota option.<br />
不要紧张，这是正常的现象～因为您尚未启用quota的参数！<br />
关于quota参数的下达方法，我们会在稍后说明。如果正常的进行扫描，会像下面这样：<br />
[root@linux ~]# quotacheck -avug<br />
quotacheck: Scanning /dev/hdb1 [/disk2] done<br />
quotacheck: Checked 3 directories and 4 files<br />
[root@linux ~]# ll /disk2<br />
total 32<br />
-rw&#8212;&#8212;-  1 root root  6144 Sep  5 14:56 aquota.group<br />
-rw&#8212;&#8212;-  1 root root  6144 Sep  5 14:56 aquota.user<br />
drwx&#8212;&#8212;  2 root root 16384 Jun 25 16:22 lost+found<br />
第一次操作quotacheck可能会有一些错误讯息发生，那应该是正常的！<br />
如果使用ls -l去查阅一下有quota支持的那个mount point，若有出现aquota.group及aquota.user，那应该就是已经建立好quota记录文件！<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
范例二：强制扫描已挂载的filesystem<br />
[root@linux ~]# quotacheck -avug -m<br />
有些时候，在某些Linux distributions上面，进行quotacheck时，可能会出现如下的错误讯息：<br />
quotacheck: Cannot get quotafile name for /dev/hda3<br />
quotacheck: Cannot get quotafile name for /dev/hda3<br />
果真如此的话，那么你可以如同上面一般，加上-m的参数来『强制』扫描。<br />
也可以手动先建立记录文件，然后再扫描，如下所示：<br />
[root@linux ~]# touch /disk2/aquota.user; touch /disk2/aquota.group<br />
[root@linux ~]# quotacheck -avug<br />
必须要注意的是，我这里是以/disk2作为一个测试的mount point，您的挂载点不一定会和范例一样！<br />
这个命令主要的目的在扫描某一个磁盘的quota空间，他会针对该partitions进行扫描，并且，由于该磁盘若持续运作时，可能扫描的过程中，文件 可能会增减，造成quota扫描的错误发生，因此，当使用quotacheck时，该磁盘将『自动被设定成为只读扇区（read-only）』；至于扫描 完毕之后，扫瞄所得的磁盘空间结果会写入该扇区最顶端。（例如：在例子中，扫描/disk2这个/dev/hdb1的扇区，如果是初次扫描，那么扫描完毕 之后会产生aquota.user与aquota.group，会放置在/disk2/aquota.user与/disk2/aquota.group 底下！而如果是建立quota后的扫描，那么就会更新这两个文件！）另外，Linux也特别强调quota在使用的时候，需要特别注意在reboot时， 得先将quota关闭才好！ </p>
<p>此外，由于新版的Linux distribution在quota的设计上似乎有点小问题，有时候无法完整的进行quotacheck，发生如同上表的情况，解决的方法就是主动手动的建立quotafile即可！例如上面的范例二所显示的。 </p>
<p>edquota<br />
[root@linux ~]# edquota [-u username] [-g groupname]<br />
[root@linux ~]# edquota -t  <==修改宽限时间<br />
[root@linux ~]# edquota -p username_demo -u username<br />
参数：<br />
-u  ：后面接账号名称。可以进入quota的编辑画面（vi）去设定username的限制值；<br />
-g  ：后面接群组名称。可以进入 quota 的编辑画面（vi）去设定groupname的限制值；<br />
-t  ：可以修改宽限时间（就是超过quota的soft limit值后，还能使用硬盘的宽限期限）<br />
-p  ：复制范本。那个username_demo为已经存在并且已设定好quota的使用者，<br />
      意义为『将username_demo这个人的quota限制值复制给username』！</p>
<p>范例：</p>
<p>范例一：设定dmtsai这个用户的quota限制值<br />
[root@linux ~]# edquota -u dmtsai<br />
Disk quotas for user dmtsai (uid 501):<br />
  Filesystem    blocks    soft    hard   inodes   soft   hard<br />
  /dev/hdb1          0       0       0        0      0      0<br />
进入编辑画面后，以vi的相关行为进行编辑喔！<br />
我们可以看到被编辑的用户是dmtsai，<br />
而下面共有七个字段，每个字段的意义我们将在底下的说明继续介绍。而假设我们对于dmtsai的限制是30MB的话，那么：<br />
Disk quotas for user dmtsai (uid 501):<br />
  Filesystem    blocks    soft    hard   inodes   soft   hard<br />
  /dev/hdb1          0   25000   30000        0      0      0<br />
然后就可以储存后离开！</p>
<p>范例二：将dmtsai的quota限制值(30MB)复制给vbird1这个用户<br />
[root@linux ~]# edquota -p dmtsai -u vbird1</p>
<p>范例三：修订宽限时间<br />
[root@linux ~]# edquota -t<br />
Grace period before enforcing soft limits for users:<br />
Time units may be: days, hours, minutes, or seconds<br />
  Filesystem             Block grace period     Inode grace period<br />
  /dev/hdb1                     7days                  7days<br />
预设的恕限时间是7天！你当然可以修订时间！<br />
这个命令就是在编辑每一个『个人』或者是『群组』的quota数值！通常我们以edquota –u username或者是edquota -g groupname来编辑个人与群组的quota设定值。不过，或许您会觉得一个一个分配似乎很慢的样子！那么您也可以直接copy一个人的设定值给其它 人，就如同上面第二个例子，利用已经建立好的dmtsai来建立vbird1这个人的quota限额！这个指令可是很重要的呦！另外，范例一当中出现的那 七个字段代表的意义我们得要谈一谈啊： </p>
<p>filesystem：<br />
代表这个quota是针对哪一个partition的意思。以范例一的情况来说，指的是/dev/hdb1啰！也就是/disk2那个目录底下的quota限制值啦！<br />
blocks：<br />
这个是目前使用者dmtsai(uid501)在/dev/hdb1这个filesystem(参考上面一个信息)，所消耗的磁盘容量，也就是目前的使用掉的空间啦！单位是Kbytes喔！这个信息是quota程序自己计算出来的，所以请不要修改他！<br />
soft与hard：<br />
这个是目前的dmtsai使用者在这个filesystem之内的quota限制值！至于soft与hard的意思就如同前一节最后面提的那个意思啦！ soft代表的是一个『警告』限值，hard则是一个『不可超过的限值』，soft与hard中间的差值则为宽限的数值。而当soft与hard数值为0 的时候，表示『没有限制』的意思！而数值的单位仍是Kbytes喔！<br />
inodes：<br />
是目前使用掉inode的状态，也是quota自己计算出来而得到的，所以不要去变更他。一般而言，inode不容易控制，所以您可以不必去限制inode呢！ </p>
<p>quotaon<br />
[root@linux ~]# quotaon [-avug]<br />
[root@linux ~]# quotaon [-vug] [/mount_point]<br />
参数：<br />
-u  ：针对用户启动quota（aquota.user）<br />
-g  ：针对群组启动 quota（aquota.group）<br />
-v  ：显示启动过程的相关讯息；<br />
-a  ：根据/etc/mtab内的filesystem设定启动有关的quota，若不加-a的话，<br />
      则后面就需要加上特定的那个filesystem！</p>
<p>范例：</p>
<p>范例一：启动所有的具有quota的filesystem<br />
[root@linux ~]# quotaon -auvg<br />
/dev/hdb1 [/disk2]: group quotas turned on<br />
/dev/hdb1 [/disk2]: user quotas turned on</p>
<p>范例二：仅启动/disk2里面的user quota设定值：<br />
[root@linux ~]# quotaon -uv /disk2<br />
这个命令是在启动quota的！不过，由于这个指令是启动aquota.group与aquota.user的，所以您就必须要先完成quotacheck的工作！然后简单的下达quotaon -a即可启动！ </p>
<p>quotaoff<br />
[root@linux ~]# quotaoff [-a]<br />
[root@linux ~]# quotaoff [-ug] [/mount_point]<br />
参数：<br />
-a  ：全部的filesystem的quota都关闭（根据/etc/mtab）<br />
-u  ：仅针对后面接的那个/mount_point关闭user quota<br />
-g  ：仅针对后面接的那个/mount_point关闭group quota</p>
<p>范例：</p>
<p>范例一：<br />
[root@linux ~]# quotaoff -a<br />
这个命令就是关闭quota的限制啦！ </p>
<p>实践quota<br />
Quota使用的方面很广，不过，一般的用途有以下这些： </p>
<p>限制某一群组所能使用的最大磁盘配额（使用群组限制）：<br />
你可以将你的系统上的用户分门别类，有点像是目前很流行的付费与免付费会员制的情况，你比较喜好的那一群的使用配额就可以给高一些！！^_^<br />
限制某一用户的最大磁盘配额（使用用户限制）：<br />
在限制群组之后，您也可以再继续针对个人来进行限制，使得同一群组之下还可以有更公平的分配！<br />
以Link的方式，来使邮件可以作为限制的配额（更改/var/spool/mail这个路径）：<br />
如果是分为付费与免付费会员的『邮件主机系统』，是否需要重新再规划一个硬盘呢？也不需要啦！直接使用Link的方式指向/home（或者其它已经做好的quota磁盘）就可以啦！这通常是用在原本规划不好，但是却又不想要更动原有主机架构的情况中啊！<br />
那么quota从开始准备filesystem的支持到整个设定结束的主要的步骤大概是： </p>
<p>1. 设定partition的filesystem支持quota参数： </p>
<p>由于quota必须要让partition上面的filesystem支持才行，一般来说，支持度最好的是ext2/ext3，启动filesystem支持quota最简单就是编辑/etc/fstab，使得准备要开放的quota磁盘可以支持quota；<br />
2. 建立quota记录文件： </p>
<p>刚刚前面讲过，整个quota进行磁盘限制值记录的档案是aquota.user/aquota.group，要建立这两个档案就必须要先利用quotacheck扫描才行喔！所以，接下来的步骤就是：使用quotacheck来扫描一下我们要使用的磁盘；<br />
3. 编辑quota限制值数据： </p>
<p>再来就是使用edquota来编辑每个使用者或群组的可使用空间；<br />
4. 重新扫描与启动quota： </p>
<p>设定好quota之后，建议可以再进行一次quotacheck，然后再以quotaon来启动吧！<br />
整个quota设定的步骤就只是这样而已，简单吧！我们下面就直接来用一个范例介绍一下整个流程，好让您更清楚的解到整个步骤！范例是这样的： </p>
<p>1. Linux主机里面主要针对quser1及quser2这两个用户来进行磁盘配额，且这两个用户都是挂在qgroup群组里面的。 </p>
<p>2. 每个使用者总共有50MB的磁盘空间（不考虑inode）限制！并且soft limit为45MB； </p>
<p>3. 而宽限时间设定为1天，也就是说，这两个人可以突破45MB的限制，但是在一天之内必须要将多余的文件删除，否则将无法使用剩下的空间（也就是说，这个账号大概就不能进行新建文件的工作）； </p>
<p>4. gquota这个群组考虑最大限额，所以设定为90MB好！ </p>
<p>多说无用，我们就实际来进行！ </p>
<p>1. 准备好测试的环境，用户与群组的建立： </p>
<p>这两个账号应该是不存在我们的系统的，所以，赶紧将他设置上去吧！ </p>
<p>[root@linux ~]# groupadd qgroup<br />
[root@linux ~]# useradd -m -g qgroup quser1<br />
[root@linux ~]# useradd -m -g qgroup quser2<br />
[root@linux ~]# passwd quser1<br />
[root@linux ~]# passwd quser2<br />
2. 建立好filesystem的quota支持： </p>
<p>由于quota较完整的支持是需要在ext2/ext3的Linux文件系统下才可以启动，所以建议你就必须要将准备开启quota的磁盘启动参数，写入 quota的磁盘设定才行(/etc/fstab)！以例子而言，想要在/disk2下进行quota的限制quser1,quser2这两个用户！这是 因为这个/disk2是一个独立的扇区，这可以使用df来查询。此外，必需特别留意的是，最好不要以根目录亦即是/进行quota！否则容易有些问题！另 外，不要针对root做quota！反正做也没用！ </p>
<p>[root@linux ~]# df<br />
Filesystem           1K-blocks      Used Available Use% Mounted on<br />
/dev/hda1              5952252   3193292   2451720  57% /<br />
/dev/hdb1             28267608     77904  26730604   1% /disk2<br />
/dev/hda5              9492644    227252   8775412   3% /disk1<br />
嗯！/disk2是独立的partition，并且他的设备名为/dev/hdb1，好！那么我就必须要启动/disk2这个/dev/hdb1的 quota档案格式，好！那么由于文件格式的设定是写在/etc/fstab里头，所以我们以vi来编辑他吧！只要在/etc/fstab里头增加 usrquota、grpquota就可以啦！（注：请特别留意，这两个项目请『务必』不要写错！请在写入/etc/fstab之前好好的再次检查，因 为写错之后，很有可能造成系统无法开机，虽然写错的机率不高，但是很有可能！） </p>
<p>[root@linux ~]# vi /etc/fstab<br />
LABEL=/        /          ext3    defaults                    1 1<br />
LABEL=/disk1   /disk1     ext3    defaults                    1 2<br />
LABEL=/disk2   /disk2     ext3    defaults,usrquota,grpquota  1 2<br />
/dev/hda3      swap       swap    defaults                    0 0<br />
注意到我们所需要设定的那个/disk2的那一行，在第四字段多usrquota,grpquota注意，在『defaults,usrquota,grpquota』之间都没有空格！ </p>
<p>这样就算加入quota的磁盘格式！不过，由于真正的quota在读取的时候是读取/etc/mtab 这个档案的，偏偏这一个档案需要重新开机之后才能够以/etc/fstab的新数据进行改写！所以这个时候你可以选择： </p>
<p>重新开机（reboot）；<br />
重新remount filesystem来启动设置！<br />
对不太喜欢重新开机的人，可以这样做： </p>
<p>[root@linux ~]# umount /dev/hdb1<br />
[root@linux ~]# mount -a<br />
[root@linux ~]# grep '/disk2' /etc/mtab<br />
/dev/hdb1 /disk2 ext3 rw,usrquota,grpquota 0 0<br />
事实上，也可以利用mount的remount功能！<br />
[root@linux ~]# mount -o remount /disk2<br />
这样我们就已经成功的将filesystem的quota功能加入！另外，在这里是以ext3这个磁盘格式来测试quota的！ </p>
<p>3. 扫描磁盘的用户使用状况，并产生重要的aquota.group与aquota.user： </p>
<p>接下来就是要来扫描一下我们所需要的磁盘到底有没有多余的空间可以让我们来设定quota呢？并且将扫描的结果输出到这个磁盘的最顶层去（也就是 /disk2下）这个时候就需要quotacheck这个命令的帮忙！使用quotacheck就可以轻易的输出将所需要的数据！并在/disk2下 会产生aquota.group与aquota.user这两个文件！ </p>
<p>[root@linux ~]# quotacheck -avug<br />
quotacheck: Scanning /dev/hdb1 [/disk2] done<br />
quotacheck: Checked 3 directories and 4 files<br />
[root@linux ~]# ll /disk2<br />
-rw-------  1 root root  6144 Sep  6 11:44 aquota.group<br />
-rw-------  1 root root  6144 Sep  6 11:44 aquota.user<br />
使用quotacheck就可以轻易的将所需要的数据给他输出！但是很奇怪的是，在某些Linux 版本中，不能够以aquota.user（group）来启动quota，这有可能是因为旧版quota的关系，所以就另外做一个link文件来欺骗quota： </p>
<p>[root@linux ~]# cd /disk2<br />
[root@linux ~]# ln -s aquota.user quota.user<br />
[root@linux ~]# ln -s aquota.group quota.group<br />
除非您的Linux distributions是比较旧的版本，否则不会有这个问题，所以，这个动作你不一定要进行！<br />
4. 启动quota的限额： </p>
<p>再来就是要启动quota啦！启动的方式也是很简单的！就是使用quotaon -av即可： </p>
<p>[root@linux ~]# quotaon -avug<br />
/dev/hdb1 [/disk2]: group quotas turned on<br />
/dev/hdb1 [/disk2]: user quotas turned on<br />
注意：要看到上面有个turned on的出现，才是真的成功！ </p>
<p>5. 编辑使用者的可使用空间： </p>
<p>由于我们有两个用户要设置，先来设置quser1好，使用edquota就对： </p>
<p>[root@linux ~]# edquota -u quser1<br />
Disk quotas for user quser1 (uid 502):<br />
  Filesystem    blocks    soft    hard   inodes   soft   hard<br />
  /dev/hdb1          0   45000   50000        0      0      0<br />
再次强调的是，因为我的/disk2里面并没有任何数据存在，所以，在上面这个表格当中，blocks与inodes才会都是0，如果您是使用/home 来进行quota设定的，那么blocks/inodes肯定不会是0，这里要特别留意的。好，上面特殊字体的部分就是我们的设定，分别是45000 及50000，那个单位是KBytes啦，转成MBytes应该是要除以1024才对，不过，简单算一下就好，不用太介意！^_^。然后将quser1 的设定直接复制给quser2吧！ </p>
<p>[root@linux ~]# edquota -p quser1 quser2<br />
接下来要来设定宽限时间，还是使用edquota！ </p>
<p>[root@linux ~]# edquota -t<br />
Grace period before enforcing soft limits for users:<br />
Time units may be: days, hours, minutes, or seconds<br />
  Filesystem             Block grace period     Inode grace period<br />
  /dev/hdb1                     1days                  7days<br />
将时间改为1天（原本是7days改成1days），好！查询一下是否真的有设定进去呢？使用quota -v来查询： </p>
<p>[root@linux ~]# quota -vu quser1 quser2<br />
Disk quotas for user quser1 (uid 502):<br />
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace<br />
      /dev/hdb1       0   45000   50000               0       0       0<br />
Disk quotas for user quser2 (uid 503):<br />
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace<br />
      /dev/hdb1       0   45000   50000               0       0       0<br />
特别注意到，由于我们的使用者尚未超过45MB，所以grace(宽限时间)就不会出现啦！这样很够清楚吧？！ </p>
<p>6. 编辑群组可使用的空间： </p>
<p>[root@linux ~]# edquota -g qgroup<br />
Disk quotas for group qgroup (gid 502):<br />
  Filesystem    blocks    soft    hard  inodes   soft   hard<br />
  /dev/hdb1          0   80000   90000       0      0      0<br />
[root@linux ~]# quota -vg qgroup<br />
Disk quotas for group qgroup (gid 502):<br />
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace<br />
      /dev/hdb1       0   80000   90000               0       0       0<br />
这样就设定好group的quota！同样的，因为整个群组的总使用量还没有到达80000KBytes，当然那个grace就不会有任何信息显示！ 但这个地方倒是有很多朋友问到一个小问题，那就是『为什么我两个用户quser1、quser2的设定值在soft与hard分别是45/50MB，但为 何你的group总量（hard）设定仅有90MB呢？』，也就是说，当某个用户用50MB的量，那另一个不就最多可以使用到40MB而已？原因何在 啊？ </p>
<p>这么说好，如果是小型的系统，由于用户并不是很多，我们可以针对每个人来进行quota的设定值，所以，当然针对users来进行设置即可，不需要额外的设定group的quota设置啦。<br />
但如果换个角度来思考，假设您所处的公司人员比较多且分工较细，因此，我们可能无法真正解每个用户的需求，此时，针对每个用户来设定可能就比较麻烦一 点。那么我们反过来说，可以针对每个部门(group)来进行quota的设定，因为部门的需求直接跟部门的负责人询问就好，比较容易，而该部门的用户 quota设定当然可以高一点，因为，可能某些用户有较为独特的需求啊！反正只要符合group的限制即可，该部门如果超过整个group quota限制值，！让他们自己去处理即可！ </p>
<p>7. 设定开机时启动quota： </p>
<p>这个部分就不需要担心，因为Fedora Core 4与Red Hat系列的开机script（/etc/rc.d/rc.sysinit）已经将quota的侦测写入在里头，因此，在预设的情况下，quota是会主 动的被启动的。不过，如果你想要手动的强制quota在开机启动一遍，那么可以使用vi去编辑/etc/rc.d/rc.local，在里面加入一行(直 接加在最后一行即可)： </p>
<p>[root@linux ~]# vi /etc/rc.d/rc.local<br />
/sbin/quotaon -avug<br />
如果要关闭quota就是用quotaoff吧！没错！这样就将quota设定完毕！很简单吧！！（如果是SuSE Server 9的话，可能就要去修改/etc/init.d/boot.local这个档案！） </p>
<p>8. 利用repquota显示更完整的quota结果报告： </p>
<p>事实上，除quota可以用来观察用户与群组使用的quota限制值之外，其实，我们还可以使用更详细的quota报告指令，就是repquota这个命令呢！他的基本用法是这样的： </p>
<p>[root@linux ~]# repquota -a [-vug]<br />
参数：<br />
-a：直接到/etc/mtab搜寻具有quota标志的filesystem，并报告quota的结果；<br />
-v：输出所有的quota结果，而非仅下达指令者自己的quota限值；<br />
-u：显示出使用者的quota限值（这是默认值）；<br />
-g：显示出个别群组的quota限值。<br />
范例：</p>
<p>范例一：查阅系统内所有的具有quota的filesystem的限值状态：<br />
[root@linux ~]# repquota -av<br />
*** Report for user quotas on device /dev/hdb1<br />
Block grace time: 24:00; Inode grace time: 7days<br />
                        Block limits                File limits<br />
User            used    soft    hard  grace    used  soft  hard  grace<br />
----------------------------------------------------------------------<br />
root      --   77888       0       0              4     0     0<br />
quser1    --       0   45000   50000              0     0     0<br />
quser2    --       0   45000   50000              0     0     0</p>
<p>Statistics:          <==这是所谓的系统相关信息，用-v才会显示<br />
Total blocks: 7<br />
Data blocks: 1<br />
Entries: 3<br />
Used average: 3.000000</p>
<p>范例二：仅列出user与group的quota限值：<br />
[root@linux ~]# repquota -aug<br />
*** Report for user quotas on device /dev/hdb1<br />
Block grace time: 24:00; Inode grace time: 7days<br />
                        Block limits                File limits<br />
User            used    soft    hard  grace    used  soft  hard  grace<br />
----------------------------------------------------------------------<br />
root      --   77888       0       0              4     0     0</p>
<p>*** Report for group quotas on device /dev/hdb1<br />
Block grace time: 7days; Inode grace time: 7days<br />
                        Block limits                File limits<br />
Group           used    soft    hard  grace    used  soft  hard  grace<br />
----------------------------------------------------------------------<br />
root      --   77888       0       0              4     0     0<br />
根据这些信息，您就可以知道目前的限制情况！^_^ </p>
<p>不改动原有系统的quota实例<br />
好，我们前面账号管理的部分曾经提到e-mail这个东西嘛！如果我们要设定一个对外开启的邮件主机的时候，那么最好对于邮件空间有点限制比较好，免得如同上面提到的一些问题一样，造成用户的使用权不一！所以说，使用quota确实是一个好建议！这个时候该怎么办呢？ </p>
<p>什么怎么办？嗯！是这样的，由于quota『只能针对整个partition进行整体的磁盘配额，无法针对某个目录进行磁盘配额！』针对这个观念，我们不难发现： </p>
<p>将邮件存在个人的家目录与<br />
将邮件统一放在/home下的一个共享目录是一样的！<br />
为什么呢？这是因为quota针对的是整个磁盘呀！！所以，您必须先确定『您的/home是一个独立的partition』才行！ </p>
<p>不过，很可惜的是，当初我们进行Linux主机安装时，如果忘记将/home独立成一个partition时，那该怎么办？是否需要将/home进行重新 分割与挂载？还有，如果也忘记将/var/spool/mail这个mailbox放置的目录独立出来，又该如何是好啊？举个简单的例子来说，在上面的那 个实作当中，你会发现，我的partition仅有/、/disk1、/disk2，那我的所有使用者都在/home里面，邮件在 /var/spool/mail下，真要命！怎么办呢？<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
其实没有怎么难！既然quota是针对整个partition来进行限制，那我又已经将/disk2做好quota，那么我只要： </p>
<p>将/home这整个目录搬移到/disk2底下；<br />
利用ln –s /disk2/home/home来建立连结数据；<br />
将/var/spool/mail整个搬移到/disk2底下；<br />
利用ln –s /disk2/mail/var/spool/mail来建立连结数据。<br />
只要这样的一个小步骤，嘿嘿！您家主机的邮件就有一定的限额！当然！您也可以依据不同的使用者与群组来设定quota然后同样的以上面的方式来进行link的动作！就有不同的限额针对不同的用户提出！很方便吧！！ </p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/437.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora10卸载旧内核</title>
		<link>http://www.evanjiang.net.cn/archives/326.html</link>
		<comments>http://www.evanjiang.net.cn/archives/326.html#comments</comments>
		<pubDate>Tue, 03 Feb 2009 06:22:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[Fedora10 卸载 旧内核]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=326</guid>
		<description><![CDATA[<p>使用 root 登录
用下面的命令查找一下,旧的内核包
rpm -qa &#124;grep kernel
然后把以前的内核包删掉
我们删除的是内核包,所以要用 rpm 这个命令
像我的升级 Linux 内核后,有两个版本的内核:
[root@localhost ~]# rpm -qa &#124;grep kernel
kernel-devel-2.6.23.12-52.fc7
kernel-2.6.21-1.3194.fc7
kernel-headers-2.6.23.15-80.fc7
kernel-2.6.23.12-52.fc7
kernel-devel-2.6.23.15-80.fc7
将 2.6.21 的版本卸载
[root@localhost ~]# rpm -e kernel-2.6.21-1.3194.fc7
[root@localhost ~]# rpm -e kernel-devel-2.6.23.12-52.fc7
查看:
[root@localhost ~]# rpm -qa &#124;grep kernel
kernel-headers-2.6.23.15-80.fc7
kernel-2.6.23.12-52.fc7
kernel-devel-2.6.23.15-80.fc7
卸载完毕。</p>
]]></description>
			<content:encoded><![CDATA[<p>使用 root 登录<br />
用下面的命令查找一下,旧的内核包<br />
rpm -qa |grep kernel<br />
然后把以前的内核包删掉<br />
我们删除的是内核包,所以要用 rpm 这个命令<br />
像我的升级 Linux 内核后,有两个版本的内核:<br />
[root@localhost ~]# rpm -qa |grep kernel<br />
kernel-devel-2.6.23.12-52.fc7<br />
kernel-2.6.21-1.3194.fc7<br />
kernel-headers-2.6.23.15-80.fc7<br />
kernel-2.6.23.12-52.fc7<br />
kernel-devel-2.6.23.15-80.fc7<br />
将 2.6.21 的版本卸载<br />
[root@localhost ~]# rpm -e kernel-2.6.21-1.3194.fc7<br />
[root@localhost ~]# rpm -e kernel-devel-2.6.23.12-52.fc7<br />
查看:<br />
[root@localhost ~]# rpm -qa |grep kernel<br />
kernel-headers-2.6.23.15-80.fc7<br />
kernel-2.6.23.12-52.fc7<br />
kernel-devel-2.6.23.15-80.fc7<br />
卸载完毕。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/326.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Red Hat Linux 安全设置指南</title>
		<link>http://www.evanjiang.net.cn/archives/292.html</link>
		<comments>http://www.evanjiang.net.cn/archives/292.html#comments</comments>
		<pubDate>Thu, 22 Jan 2009 04:04:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[Redhat Linux 安全设置]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=292</guid>
		<description><![CDATA[<p>1,最小化安全系统,删除不必要的软件,关闭不必要的服务.
# ntsysv
以下仅列出需要启动的服务，未列出的服务一律推荐关闭,必要运行的服务再逐个打开.
atd
crond
irqbalance
microcode_ctl
network
sshd
syslog</p>
<p>2,删除finger程序,具体方法如下
#rpm –e finger</p>
<p>3,BOIS安全设置

4,帐号安全设置
修改/etc/login.def文件
PASS_MAX_DAYS  设置密码过期日期 120
设置密码最少更改日期PASS_MIN_DAYS   0
PASS_MIN_LEN    10    设置密码最小长度
PASS_WARN_AGE  设置过期提前警告天数 7
确保/etc/shadow为root只读
确保/etc/passwd为root读写</p>
<p>定期用密码工具检测用户密码强度</p>
<p>5, /etc/exports
如果通过NFS把文件共享出来,那么一定要配置”/etc/exports”文件,使得访问限制尽可能的严格.这就是说,不要使用通配符,不允许对根目录有写权限,而且尽可能的只给读权限.在/etc/exports文件加入:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
建议最好不要使用NFS.</p>
<p>6,inetd.conf或xinetd.conf
如果是inetd.conf建议注释掉所有的r开头的程序,exec等
7,TCP_Wrappers
在/etc/hosts.allow中加入允许的服务,在/etc/hosts.deny里加入这么一行ALL:ALL








8,/etc/aliases文件
Aliases文件如果管理错误或管理粗心就会造成安全隐患.把定义”decode”这个别名的行从aliases文件中删除.
编辑aliases,删除或注释下面这些行:
#games: root
#ingres: root
#system: root
#toor: root
#uucp: root
#manager: root
#dumper: root
#operator: root
#decode: root
运行/usr/bin/nesaliases重新加载.</p>
<p>9,防止sendmail被没有授权的用户滥用
编辑sendmail.cf
把PrivacyOptions=authwarnings
改为PrivacyOptions=authwarnings,noexpn,novrfy</p>
<p>10,不响应ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all</p>
<p>11,使TCP SYN Cookie保护生效
Echo 1 > /proc/sys/net/ipv4/tcp_syncookies</p>
<p>12,删除不必要的用户和组用户
删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等
删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等
可以设置不可更改位
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow</p>
<p>13,防止任何人都可以用su命令成为root
编辑su文件(vi /etc/pam.d/su),加入如下两行
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so [...]]]></description>
			<content:encoded><![CDATA[<p>1,最小化安全系统,删除不必要的软件,关闭不必要的服务.<br />
# ntsysv<br />
以下仅列出需要启动的服务，未列出的服务一律推荐关闭,必要运行的服务再逐个打开.<br />
atd<br />
crond<br />
irqbalance<br />
microcode_ctl<br />
network<br />
sshd<br />
syslog</p>
<p>2,删除finger程序,具体方法如下<br />
#rpm –e finger</p>
<p>3,BOIS安全设置<br />
<span id="more-292"></span><br />
4,帐号安全设置<br />
修改/etc/login.def文件<br />
PASS_MAX_DAYS  设置密码过期日期 120<br />
设置密码最少更改日期PASS_MIN_DAYS   0<br />
PASS_MIN_LEN    10    设置密码最小长度<br />
PASS_WARN_AGE  设置过期提前警告天数 7<br />
确保/etc/shadow为root只读<br />
确保/etc/passwd为root读写</p>
<p>定期用密码工具检测用户密码强度</p>
<p>5, /etc/exports<br />
如果通过NFS把文件共享出来,那么一定要配置”/etc/exports”文件,使得访问限制尽可能的严格.这就是说,不要使用通配符,不允许对根目录有写权限,而且尽可能的只给读权限.在/etc/exports文件加入:<br />
/dir/to/export host1.mydomain.com(ro,root_squash)<br />
/dir/to/export host2.mydomain.com(ro,root_squash)<br />
建议最好不要使用NFS.</p>
<p>6,inetd.conf或xinetd.conf<br />
如果是inetd.conf建议注释掉所有的r开头的程序,exec等<br />
7,TCP_Wrappers<br />
在/etc/hosts.allow中加入允许的服务,在/etc/hosts.deny里加入这么一行ALL:ALL<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
8,/etc/aliases文件<br />
Aliases文件如果管理错误或管理粗心就会造成安全隐患.把定义”decode”这个别名的行从aliases文件中删除.<br />
编辑aliases,删除或注释下面这些行:<br />
#games: root<br />
#ingres: root<br />
#system: root<br />
#toor: root<br />
#uucp: root<br />
#manager: root<br />
#dumper: root<br />
#operator: root<br />
#decode: root<br />
运行/usr/bin/nesaliases重新加载.</p>
<p>9,防止sendmail被没有授权的用户滥用<br />
编辑sendmail.cf<br />
把PrivacyOptions=authwarnings<br />
改为PrivacyOptions=authwarnings,noexpn,novrfy</p>
<p>10,不响应ping<br />
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all</p>
<p>11,使TCP SYN Cookie保护生效<br />
Echo 1 > /proc/sys/net/ipv4/tcp_syncookies</p>
<p>12,删除不必要的用户和组用户<br />
删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等<br />
删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等<br />
可以设置不可更改位<br />
chattr +i /etc/passwd<br />
chattr +i /etc/shadow<br />
chattr +i /etc/group<br />
chattr +i /etc/gshadow</p>
<p>13,防止任何人都可以用su命令成为root<br />
编辑su文件(vi /etc/pam.d/su),加入如下两行<br />
auth sufficient /lib/security/pam_rootok.so debug<br />
auth required /lib/security/pam_wheel.so group=wheel<br />
把能su为root的用户加入wheel组<br />
usermod  -G10 username</p>
<p>14,使Control+Alt+Delete关机键无效<br />
编辑inittab文件,注释掉<br />
Ca:ctrlaltdel:/sbin/shutdown –t3 –r now<br />
运行/sbin/init q 使设置生效</p>
<p>15,创建所有重要的日志文件的硬拷贝<br />
如果服务器比较重要,可以考虑把ssh,mail,引导信息等打印出来.在/etc/syslog.conf文件中加入一行.:<br />
Authpriv.*;mail.*;local7.*;auth.*;daemon.info /dev/lp0<br />
执行/etc/rc.d/init.d/syslog restart<br />
或者把日志发送到其它服务器保存<br />
如<br />
authpriv.*                 /var/log/secure<br />
要把它发送到192.168.0.2,就可以这样修改<br />
authpriv.* @192.168.0.2                /var/log/secure</p>
<p>16,改变/etc/rc.d/init.d目录下的脚本文件的访问许可<br />
chmod –R 700 /etc/rc.d/init.d/*<br />
注意:慎重修改此安全设置</p>
<p>17,/etc/rc.d/rc.local<br />
把此文件中无关的信息全部注释,不让任何人看到任何有关主机的信息.<br />
删除/etc下的issue和issue.net</p>
<p>18,带S位的程序<br />
可以清除s位的程序包括但不限于:<br />
        从来不用的程序;<br />
        不希望非root用户运行的程序;<br />
        偶尔用用,但是不介意先用su命令变为root后再运行.<br />
find / -type f \( -perm 04000 –o –perm -02000 \)  -print<br />
chmod a-s 程序名</p>
<p>19,查看系统隐藏文件<br />
find / -name “.*” –print </p>
<p>20,查找任何人都有写权限的文件和目录<br />
find / -type f  \( -perm -2  -o perm -20 \) ls<br />
find / -type f  \( -perm -2 –o –perm -20 \) ls</p>
<p>21,查找系统中没有主人的文件<br />
find / -nouser –o –nogroup<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
22,查找.rhosts文件<br />
find /home -name &#8220;.rhosts&#8221;<br />
如果有,请删除它.</p>
<p>23,收回系统编译器的权限或删除<br />
如: chmod 700 /usr/bin/gcc</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/292.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>主流服务器UNIX操作系统用户帐号的设置</title>
		<link>http://www.evanjiang.net.cn/archives/286.html</link>
		<comments>http://www.evanjiang.net.cn/archives/286.html#comments</comments>
		<pubDate>Thu, 22 Jan 2009 03:56:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[freebsd unix]]></category>
		<category><![CDATA[hp unix]]></category>
		<category><![CDATA[ibm unix]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[sun unix]]></category>
		<category><![CDATA[HP-UX FreeBSD Solaris Aix Redhat]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=286</guid>
		<description><![CDATA[<p class="MsoNormal" align="center">主流服务器UNIX操作系统用户帐号的设置</p>




<p class="MsoNormal" align="center">账号设置</p>


<p class="MsoNormal" align="center">HP-UX </p>


<p class="MsoNormal" align="center">FreeBSD </p>


<p class="MsoNormal" align="center">Solaris (SPARC)</p>




<p class="MsoNormal" align="left">密码文件</p>


<p class="MsoNormal" align="left">/etc/passwd
/tcb/files/auth/r/root

<p class="MsoNormal" align="left">/etc/passwd
/etc/master.passwd

<p class="MsoNormal" align="left">/etc/passwd
/etc/shadow



<p class="MsoNormal" align="left">组文件</p>


<p class="MsoNormal" align="left">/etc/group
/etc/logingroup

<p class="MsoNormal" align="left">/etc/group</p>


<p class="MsoNormal" align="left">/etc/group</p>




<p class="MsoNormal" align="left">允许最大用户ID</p>


<p class="MsoNormal" align="left">2147483647</p>


<p class="MsoNormal" align="left">65535</p>


<p class="MsoNormal" align="left">2147483647</p>




<p class="MsoNormal" align="left">允许远程登录的用户文件设置</p>


<p class="MsoNormal" align="left">/etc/securetty
{console}

<p class="MsoNormal" align="left">/etc/ttys
{secure}

<p class="MsoNormal" align="left">/etc/default/login
{CONSOLE=/dev/console}



<p class="MsoNormal" align="left">Nobody的UID</p>


<p class="MsoNormal" align="left">-2</p>


<p class="MsoNormal" align="left">65534</p>


<p class="MsoNormal" align="left">60001 &#38; [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统用户帐号的设置</span></strong></p>
<table class="MsoNormalTable" style="height: 252px;" border="1" cellspacing="0" cellpadding="0" width="700">
<tbody>
<tr>
<td width="132">
<p class="MsoNormal" align="center"><strong><span>账号设置</span></strong></p>
</td>
<td width="192">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris</span></strong><span lang="EN-US"> <strong>(SPARC)</strong></span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>密码文件</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/passwd<br />
/tcb/files/auth/r/root</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/passwd<br />
/etc/master.passwd</span></td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/passwd<br />
/etc/shadow</span></td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>组文件</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/group<br />
/etc/logingroup</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/group</span></p>
</td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/group</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>允许最大用户<span lang="EN-US">ID</span></span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">2147483647</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">65535</span></p>
</td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">2147483647</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>允许远程登录的用户文件设置</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/securetty<br />
{console}</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/ttys<br />
{secure}</span></td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/default/login<br />
{CONSOLE=/dev/console}</span></td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">Nobody</span><span>的<span lang="EN-US">UID</span></span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">-2</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">65534</span></p>
</td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">60001 &amp; 65534(nobody4)</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">Nobody</span><span>的<span lang="EN-US">GID</span></span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">-2(nogroup)</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">65534</span></p>
</td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">60002 &amp; 65534(nogroup)</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>找回<span lang="EN-US">ROOT</span>密码</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">&gt;boot<br />
Interact with IPL ? <strong>Y</strong><br />
ISL&gt;hpux -iS<br />
passwd root</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">ok boot -s<br />
passwd root</span></td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">boot cdrom -s<br />
mkdir /tmp/a<br />
mount /dev/c0t0d0s0 /tmp/a<br />
vi /tmp/a/etc/shadow</span></td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>创建新用户</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">useradd</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">adduser</span></p>
</td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">Useradd</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>删除用户</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">userdel</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">rmuser</span></p>
</td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">Userdel</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>列出用户</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">logins</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">Logins</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>修改用户账号</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">usermod</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal" align="left"><span lang="EN-US">Usermod</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> <span id="more-286"></span><br />
</span></p>
<table class="MsoNormalTable" style="height: 340px;" border="1" cellspacing="0" cellpadding="0" width="709">
<tbody>
<tr>
<td width="132">
<p class="MsoNormal" align="center"><strong><span>账号设置</span></strong></p>
</td>
<td width="204">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="408">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux( RedHat )</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>密码文件</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/passwd<br />
/etc/security/passwd</span></td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/passwd<br />
/etc/shadow</span></td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>组文件</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/group<br />
/etc/security/group</span></td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/group</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>允许最大用户<span lang="EN-US">ID</span></span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">4294967295</span></p>
</td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">65535</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>允许远程登录的用户文件设置</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/security/user<br />
{rlogin=true}</span></td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/securetty<br />
{ttyp1}</span></td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">Nobody</span><span>的<span lang="EN-US">UID</span></span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">4294967294</span></p>
</td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">99</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">Nobody</span><span>的<span lang="EN-US">GID</span></span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">4294967294</span></p>
</td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">99</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>找回<span lang="EN-US">ROOT</span>密码</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">boot from CD/Tape<br />
Installation/Maintenance<br />
Start Limited Shell<br />
getrootfs hdisk0<br />
vi /etc/security/passwd</span></td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">{lilo}<br />
control-x<br />
linux S<br />
passwd root</span></p>
<p>{grub}<br />
c<br />
kernel vmlinuz-2.4.9-13 <strong>single</strong> ro root=/dev/hda8<br />
initrd /initrd-2.4.9-13.img<br />
boot<br />
passwd root</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>创建新用户</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">mkuser</span></p>
</td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">Useradd</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>删除用户</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">rmuser</span></p>
</td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">Userdel</span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>列出用户</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">lsuser -f ALL</span></p>
</td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal" align="left"><span>修改用户账号</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">chuser -a</span></p>
</td>
<td width="408">
<p class="MsoNormal" align="left"><span lang="EN-US">usermod</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统目录结构对比</span></strong></p>
<table class="MsoNormalTable" style="height: 100px;" border="1" cellspacing="0" cellpadding="0" width="704">
<tbody>
<tr>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Directory Mappings </span></strong><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Root filesystem</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">/     {/dev/hd4}</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/   {/dev/ad0s1a}</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/     {/dev/vg00/lvol1}</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Home Directory</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">/home {/dev/hd1}</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/home {/dev/vg00/lvol4}</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">/tmp  {/dev/hd3}</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/tmp  {/dev/vg00/lvol6}</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr  {/dev/hd2}</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr {/dev/ad0s1f}</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr  {/dev/vg00/lvol7}</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="right"><span lang="EN-US">/var  {/dev/hd9var}</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/var {/dev/ad0s1e}</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/var  {/dev/vg00/lvol8}</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Sample configuration files</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">-</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/newconfig</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<table class="MsoNormalTable" style="height: 100px;" border="1" cellspacing="0" cellpadding="0" width="703">
<tbody>
<tr>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Directory Mappings </span></strong><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux( RedHat )</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="264">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris</span></strong></p>
</td>
<td width="144">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Tru64</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Root filesystem</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">/     {/dev/sda1}</span></p>
</td>
<td width="264">
<p class="MsoNormal" align="left"><span lang="EN-US">/ <span> </span>{/dev/vx/dsk/rootvol}</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">/    {/dev/rz0a}</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Home Directory</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="264">
<p class="MsoNormal" align="left"><span lang="EN-US">/export/home  {dev/vx/dsk/home}</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="264">
<p class="MsoNormal" align="left"><span lang="EN-US">/tmp       {dev/vx/dsk/swapvol}</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="264">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr </span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr {/dev/rz0g}</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="264">
<p class="MsoNormal" align="left"><span lang="EN-US">/var<span> </span></span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Sample configuration files</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="264">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统常用命令</span></strong></p>
<table class="MsoNormalTable" style="height: 286px;" border="1" cellspacing="0" cellpadding="0" width="719">
<tbody>
<tr>
<td width="144">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">General Commands</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="132">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="84">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="108">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="120">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux(RedHat)</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="96">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="84">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Tru64</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Unique host ID</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">hostid</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">uname -i</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">hostid</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">hostid</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">hostid</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Administrator</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">smit</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">sam</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">linuxconf</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">admintool</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Performance monitor</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">top<br />
monitor</span></td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">top</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">top<br />
glance</span></td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">Top</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">top</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">top</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">System activity reporter</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">sar</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">sa</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">sar</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">sar</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Virtual Memory statistics</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">vmstat</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">vmstat</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">vmstat</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">vmstat</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">vmstat</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">vmstat</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">I/O statistics</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">iostat</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">iostat</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">iostat</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">iostat</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">iostat</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Error logs</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">alog -o -t boot<br />
errpt</span></td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">dmesg</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">dmesg</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">Dmesg </span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">dmesg</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">uerf -R -o full</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Physical RAM</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">1M</span><span lang="EN-US"> TB </span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span> </span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">4TB</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">64GB{&gt;2.3.24}</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">16TB</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">4TB</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Shared Memory</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">64K TB </span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span> </span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">8TB</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">sysctl kernel.shmmax</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Process Data Space</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">384K TB </span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span> </span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">4TB</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">900 MB </span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Swap device</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">/dev/hd6</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">/dev/ad0s1b</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">/dev/vg00/lvol2</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">/dev/sda2</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">/dev/vx/dsk/swapvol</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">/dev/rz0b</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Swap file type</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/swapspaces</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">swap</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">swap</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">partition type 82 </span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">swap</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">raw</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Display swap size</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">lsps -a</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">swapinfo</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">swapinfo -a</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">Free</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">swap -l</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">swapon -s</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">Activate Swap</span></p>
</td>
<td width="132">
<p class="MsoNormal" align="left"><span lang="EN-US">swapon -a</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">swapon -a</span></p>
</td>
<td width="108">
<p class="MsoNormal" align="left"><span lang="EN-US">swapon -a</span></p>
</td>
<td width="120">
<p class="MsoNormal" align="left"><span lang="EN-US">swapon -a</span></p>
</td>
<td width="96">
<p class="MsoNormal" align="left"><span lang="EN-US">swap -a</span></p>
</td>
<td width="84">
<p class="MsoNormal" align="left"><span lang="EN-US">swapon -a</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统打印机、</span></strong><strong><span lang="EN-US">TCP/IP</span></strong><strong><span>设置</span></strong></p>
<table class="MsoNormalTable" style="height: 560px;" border="1" cellspacing="0" cellpadding="0" width="710">
<tbody>
<tr>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Printers</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Printer Queues</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/qconfig</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/spool/print</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/lp/interface/*</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Stop LP </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">stopsrc -s lpd</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">lpshut</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Start LP</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">startsrc -s lpd</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Lpd</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">lpsched</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Submit print jobs</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">enq<br />
lp<br />
lpr<br />
qprt</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Lp</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">lp</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">LP statistics</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">enq -A<br />
lpq<br />
lpstat<br />
qchk</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Lpq</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">lpstat</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Remove print jobs</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">cancel<br />
lprm<br />
qcan<br />
enq -x</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Cancel<br />
lprm</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">cancel</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Add printer queue</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">smit mkpq</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">lpadmin -p pq</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Remove Printer Q</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">smit rmpq</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">lpadmin -x pq</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Make default Prt</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">export LPDEST=&#8221;pq&#8221;</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">lpadmin -d pq</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">TCP/IP</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Network IP configuration</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">lsattr -E -l inet0</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/rc.conf</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/rc.config.d/netconf</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Hosts IP addresses</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/hosts</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/hosts</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/hosts</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Name service switch</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/netsvc.conf</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/host.conf</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/nsswitch.conf</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Network parameters</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">no –a</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Sysctl</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">ndd -h</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Routing daemon</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Gated</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Routed</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">gated</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">NIC Configurations</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig –a</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig -a</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">lanscan -v</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Secondary IP Addr</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig en0 alias IP </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig xl0 alias IP</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig lan0:1 IP </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Login prompt</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">HERALD @<br />
/etc/security/login.cfg</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">telnetd –b /etc/issue</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">Increase the # of pseudo-terminals</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">odmget -q &#8220;attribute=num and uniquetype=pty/pty/pty&#8221; PdAt |   sed &#8220;s/0-64/0-512/&#8221; |<br />
odmchange -q &#8220;attribute=num and uniquetype=pty/pty/pty&#8221; -o PdAt </span></p>
<p class="MsoNormal"><span lang="EN-US">chdev -l pty0 -anum=256 -P<br />
reboot</span></td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">rebuild your kernel with these new values NPTY=#<br />
NSTRPY=# </span></p>
<p class="MsoNormal"><span lang="EN-US">reboot </span></p>
<p class="MsoNormal"><span lang="EN-US">insf -d ptys -n #<br />
insf -d ptym -n #<br />
insf -d pts -s # -e -v<br />
</span></td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Maximum # of ptys</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">512</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">{MAXUSERS}</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Remote Shell</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Remsh<br />
rsh</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Rsh</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">remsh</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">YP/NIS service binder</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/lib/netsvc/yp/ypbind</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/sbin/ypbind</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/lib/netsvc/yp/ypbind </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统打印机、</span></strong><strong><span lang="EN-US">TCP/IP</span></strong><strong><span>设置</span></strong><strong><span> </span></strong><strong><span>续</span></strong></p>
<table class="MsoNormalTable" style="height: 500px;" border="1" cellspacing="0" cellpadding="0" width="707">
<tbody>
<tr>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Printers</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux (Redhat)</span></strong></p>
</td>
<td width="192">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris</span></strong><span lang="EN-US"> <strong>(SPARC)</strong></span></p>
</td>
<td width="204">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Tru64</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Printer Queues</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/spool/lpd/lp/*</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/lp/interfaces/*</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/spool/lpd</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Stop LP </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/init.d/lpd stop</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/lib/lp/lpshut</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/sbin/init.d/lpd stop</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Start LP</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/init.d/lpd start</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/lib/lp/lpsched</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/sbin/init.d/lpd start</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Submit print jobs</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Lpr</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">Lp<br />
lpr</span></td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">Lp<br />
lpr</span></td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">LP statistics</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Lpq</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">Lpstat</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">Lpstat</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Remove print jobs</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Lprm</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">Cancel<br />
lprm</span></td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">cancel<br />
lprm</span></td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Add printer queue</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">Printtool</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">lpadmin -p pq</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">Lprsetup</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Remove Printer Q</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">lpadmin -x pq</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">Lprsetup</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Make default Prt</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">lpadmin -d pq</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">export PRINTER=&#8221;lp&#8221;</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">TCP/IP</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux( RedHat )</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris</span></strong><span lang="EN-US"> <strong>(SPARC)</strong></span></p>
</td>
<td width="204">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Tru64</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Network IP configuration</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/sysconfig/network-scripts/ </span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/hostname.*<br />
/etc/inet/*<br />
/etc/defaultrouter</span></td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/rc.config</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Hosts IP addresses</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/hosts</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/inet/hosts</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/hosts</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Name service switch</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/nsswitch.conf</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/nsswitch.conf</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/svc.conf</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Network parameters</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">sysctl -a | grep net</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">Ndd /dev/[tcp|ip] ?</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Routing daemon</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">routed</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">in.routed</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">routed</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">NIC Configurations</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig -a</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig –a</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig -a</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Secondary IP Addr</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">modprobe ip_alias<br />
ifconfig eth0:1 IP</span></td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig hme0:1 IP up</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">ifconfig ln0 alias</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Login prompt</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/issue</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">BANNER @<br />
/etc/default/telnetd</span></td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/issue</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Increase the # of pseudo-terminals</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">cd /dev<br />
./MAKEDEV -v pty</span></td>
<td width="192">
<p class="MsoNormal"><span lang="EN-US">{/etc/system}<br />
set pt_cnt = #  {SYSV}<br />
set npty = #   {BSD}</span></p>
<p class="MsoNormal"><span lang="EN-US">{/etc/iu.ap}<br />
ptsl 0 # ldterm ttcompat</span></p>
<p class="MsoNormal"><span lang="EN-US">halt<br />
boot –r</span></td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">cd /dev<br />
./MAKEDEV PTY_1</span></td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Maximum # of ptys</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">256</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">176         {BSD}<br />
3000      {SYSV}</span></td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">8192</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">Remote Shell</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">rsh</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">Rsh</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">rsh</span></p>
</td>
</tr>
<tr>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">YP/NIS service binder</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/sbin/ypbind</span></p>
</td>
<td width="192">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/lib/netsvc/yp/ypbind</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/sbin/ypbin</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统系统文件</span></strong></p>
<table class="MsoNormalTable" style="height: 86px;" border="1" cellspacing="0" cellpadding="0" width="685">
<tbody>
<tr>
<td width="191">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">System Files</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="181">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="204">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">NFS exported</span></p>
</td>
<td width="181">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/exports</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/exports</span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/exports</span></p>
</td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">NFS Client mounted directories</span></p>
</td>
<td width="181">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/xtab</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/xtab</span></p>
</td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">Max File System</span></p>
</td>
<td width="181">
<p class="MsoNormal" align="left"><span lang="EN-US">128 GB</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">128 GB</span></p>
</td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">Max File Size</span></p>
</td>
<td width="181">
<p class="MsoNormal" align="left"><span lang="EN-US">64 GB</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">128 GB</span></p>
</td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">Max # File Descriptors</span></p>
</td>
<td width="181">
<p class="MsoNormal" align="left"><span lang="EN-US">64 K</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="204">
<p class="MsoNormal" align="left"><span lang="EN-US">60~ K</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<table class="MsoNormalTable" style="height: 146px;" border="1" cellspacing="0" cellpadding="0" width="700">
<tbody>
<tr>
<td width="191">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">System Files</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="217">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux (RedHat)</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Tru64</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">NFS exported</span></p>
</td>
<td width="217">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/exports</span></p>
</td>
<td width="156">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/dfs/dfstab<br />
/etc/dfs/sharetab</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/exports</span></p>
</td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">NFS Client mounted directories</span></p>
</td>
<td width="217">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/lib/nfs/xtab</span></p>
</td>
<td width="156">
<p class="MsoNormal" align="left"><span lang="EN-US">/etc/rmtab</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/adm/mountdtab</span></p>
</td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">Max File System</span></p>
</td>
<td width="217">
<p class="MsoNormal" align="left"><span lang="EN-US">2 TB </span></p>
</td>
<td width="156">
<p class="MsoNormal" align="left"><span lang="EN-US">1 TB<br />
8000 TB {vxfs}</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">128 GB {&lt;= 3.2G}<br />
512 GB {&gt;= 4.0}<br />
16 TB {advfs}</span></td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">Max File Size</span></p>
</td>
<td width="217">
<p class="MsoNormal" align="left"><span lang="EN-US">2 GB    {512B block   size}<br />
8192 GB {8KB block size}</span></td>
<td width="156">
<p class="MsoNormal" align="left"><span lang="EN-US">1 TB<br />
2 GB {=&lt;2.5.1}</span></td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">128 GB {&lt;= 3.2G}<br />
512 GB {&gt;= 4.0}<br />
16 TB {advfs}</span></td>
</tr>
<tr>
<td width="191">
<p class="MsoNormal" align="left"><span lang="EN-US">Max # File Descriptors</span></p>
</td>
<td width="217">
<p class="MsoNormal" align="left"><span lang="EN-US">sysctl fs.file-max</span></p>
</td>
<td width="156">
<p class="MsoNormal" align="left"><span lang="EN-US">64 K</span></p>
</td>
<td width="180">
<p class="MsoNormal" align="left"><span lang="EN-US">64 K</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统磁盘与逻辑卷命令</span></strong></p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<table class="MsoNormalTable" style="height: 668px;" border="1" cellspacing="0" cellpadding="0" width="681">
<tbody>
<tr>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">DISK/LVM Commands</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Filesystem table</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">/etc/filesystems</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">/etc/fstab</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/etc/fstab</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Free disk blocks</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">df -k</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">df -k</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">Bdf</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Device listing</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lsdev -C</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/sbin/ioscan</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Disk information</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">bootinfo -s hdisk# </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">fdisk -v ad0</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">diskinfo /dev/rdsk/c#t#d#</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Disk Label</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lspv -l hdisk#</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">disklabel ad0</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">pvdisplay -v /dev/dsk/C#t#d#</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">LVM Concepts</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">Partition </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">sub disk</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">logical extents</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">Volume</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">Volume</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">logical volume</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">Plex</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">Volume group</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">volume group</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Journal Filesystem type</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">jfs</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">Vxfs</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Default volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">/dev/rootvg</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/dev/vg00</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Display volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lsvg -l rootvg</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgdisplay -v vg00</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Modify physical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">chpv</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">Pvchange</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Prepare physical disk</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">mkdev -c disk -l hdisk#</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">pvcreate</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">List physical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lspv</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">vinum ld</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">pvdisplay</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Remove disk from volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">reducevg</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgreduce</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Move logical volumes to another physical volumes</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">migratepv</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">vinum move -f drive object</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">pvmove</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Create volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">mkvg</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgcreate</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Remove volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgremove</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Volume group availability</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">chvg<br />
varyonvg<br />
varyoffvg</span></td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgchange</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Restore volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgcfgrestore</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Exports volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">exportvg</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgexport</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Imports volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">importvg</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgimport</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Volume group listing</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lsvg</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">vgscan</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Change logical volume characteristics </span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">chlv</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvchange</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">List logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lslv</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">vinum lv</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvdisplay</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Make logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">mklv</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvcreate</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Extend logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">extendlv</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvextend</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Reduce logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">AIX reduce LV</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvreduce</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Remove logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">rmlv</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">vinum rm vol</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvremove</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Prepare boot volumes</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">bootlist -m normal</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvlnboot</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Remove boot volumes</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvrmboot</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Extend File system</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">chfs -a size=# /mt</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">extendfs /dev/vg00/lvol8<br />
fsadm -F vxfs -b {LE * 1024} /mt</span></td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Reduce/Split mirrors</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">rmlvcopy</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvsplit</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Merge mirrors</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvmerge</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Create mirrors</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">mklv -c 2</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">vinum mirror drive</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvcreate -m 1</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Add mirrors</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">mklvcopy lv 2 </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvextend -m 1</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Create striped volumes</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">mklv -u 3 -S 64K</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">vinum stripe drive</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">lvcreate -i 3 -I 64</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">System recovery tape</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">mksysb -i /dev/rmt0</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/opt/ignite/bin/make_recovery</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Backup</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">savevg -i rootvg</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">vinum saveconfig</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">fbackup</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Restore</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">restvg </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">frecover</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统磁盘与逻辑卷命令</span></strong><strong><span> </span></strong><strong><span>续</span></strong></p>
<table class="MsoNormalTable" style="height: 687px;" border="1" cellspacing="0" cellpadding="0" width="695">
<tbody>
<tr>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">DISK/LVM Commands</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux (RedHat)</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="187">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris (SPARC)</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Tru64</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Filesystem table</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">/etc/fstab</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">/etc/vfstab</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">/etc/fstab</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Free disk blocks</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">df -k</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">df –k</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">df -k</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Device listing</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">cat /proc/devices</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">Sysdef</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Disk information</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">cat /proc/scsi/scsi0/sda/model</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">format -d c#t#d#<br />
format&gt;current<br />
format&gt;inquiry</span></td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">file /dev/rrz0c</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Disk Label</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">fdisk -l</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">Prtvtoc</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">disklabel -p rz0</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">LVM Concepts</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">logical extents</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">sub disk</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">sub disk</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">logical volume</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">Volume</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">Volume</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">Plex</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">Plex</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">volume group</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">disk group</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">disk group</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Journal Filesystem type</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">ext2</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">Vxfs</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">advfs</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Default volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">/dev/vx/dsk/rootdg</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">/dev/vol/rootdg</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Display volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgdisplay -v</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxprint -l -g rootdg</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volprint -l -g rootdg</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Modify physical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">pvchange</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Prepare physical disk</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">pvcreate</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxdiskadd</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">voldiskadd</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">List physical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">pvdisplay</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxprint -dl</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volprint -dl</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Remove disk from volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgreduce</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxdg rmdisk</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">voldg rmdisk</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Move logical volumes to another physical volumes</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">pvmove</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxassist move</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volassist move</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Create volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgcreate</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxdg init</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">voldg init</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Remove volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgremove</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Volume group availability</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgchange</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Restore volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgcfgrestore</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Exports volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgexport</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxdg deport</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">voldg deport</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Imports volume group</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgimport</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxdg import</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">voldg import</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Volume group listing</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">vgscan</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Change logical volume characteristics </span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvchange </span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxedit set</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">voledit set</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">List logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvdisplay</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxprint -vl</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volprint -vl</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Make logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvcreate</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxassist make</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volassist make</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Extend logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvextend</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxassist growto</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volassist growto</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Reduce logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvreduce</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxassist shrinkto</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volassist shrinkto</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Remove logical volume</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvremove</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxedit rm</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">voledit -g rootdg -rf rm vol1</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Prepare boot volumes</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lilo</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxbootsetup</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Remove boot volumes</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Extend File system</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">resize2fs</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxva<br />
mkfs -M</span></td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Reduce/Split mirrors</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvsplit</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Merge mirrors</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvmerge</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Create mirrors</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxassist mirror</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volassist make vol 100mb mirror=true</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Add mirrors</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Create striped volumes</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">lvcreate -i 3 -I 64</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">vxassist make vol 100mb layout=raid5</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">volassist make vol 100mb layout=stripe</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">System recovery tape</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="187">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">/usr/sys/bin/btcreate</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Backup</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">tar cvf /dev/rst0 /</span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">ufsdump</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">vdump</span></p>
</td>
</tr>
<tr>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Restore</span></p>
</td>
<td width="168">
<p class="MsoNormal"><span lang="EN-US">tar xvf /dev/rst0 </span></p>
</td>
<td width="187">
<p class="MsoNormal"><span lang="EN-US">ufsrestore</span></p>
</td>
<td width="209">
<p class="MsoNormal"><span lang="EN-US">vrestore</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统安装与卸载</span></strong></p>
<table class="MsoNormalTable" style="height: 166px;" border="1" cellspacing="0" cellpadding="0" width="683">
<tbody>
<tr>
<td width="216">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Software</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="144">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="168">
<h1><span lang="EN-US">FreeBSD</span></h1>
</td>
<td width="216">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Install Software</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">installp -a</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkg_add</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">swinstall</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Uninstall software</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">installp -u</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkg_delete</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">swremove</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">List installed software</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">lslpp -L all</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkg_info -a</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">swlist</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Verify installed software</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">lppchk -v</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">swlist -l fileset -a state</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">List all files</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">lslpp -f fileset</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkg_info -L package</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">swlist -l file fileset</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">List installed patches</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">instfix -i</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">swlist -l patch<br />
what /stand/vmunix</span></td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Package owner</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">lslpp -w path</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">swlist -l file | grep path</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">SW Directory</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">/usr/lpp</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/db/pkg</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/adm/sw/</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<table class="MsoNormalTable" style="height: 140px;" border="1" cellspacing="0" cellpadding="0" width="696">
<tbody>
<tr>
<td width="216">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Software</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="144">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux (RedHat)</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris (SPARC)</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Tru64</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Install Software</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">rpm -i package</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkgadd</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">setld -l</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Uninstall software</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">rpm -e package</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkgrm</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">setld -d</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">List installed software</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">rpm -qa</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkginfo</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">setld -i</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Verify installed software</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">rpm -V package</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkginfo -i<br />
pkginfo -p</span></td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">setld -v</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">List all files</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">rpm -ql package</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkgchk -l package</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">setld -i package</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">List installed patches</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">patchadd -p</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">dupatch -track -type patch</span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">Package owner</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">rpm -qf file</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">pkgchk -l -p path</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">SW Directory</span></p>
</td>
<td width="144">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/lib/rpm</span></p>
</td>
<td width="168">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/sadm</span></p>
</td>
<td width="216">
<p class="MsoNormal" align="left"><span lang="EN-US">/var/adm/smlogs</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统技术支持信息</span></strong></p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<table class="MsoNormalTable" style="height: 101px;" border="1" cellspacing="0" cellpadding="0" width="699">
<tbody>
<tr>
<td width="132">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Links</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">AIX</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">HP-UX</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Linux (RedHat)</span></strong></tt><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">FAQ</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.emerson.emory.edu/services/aix-faq/" target="_blank"><span>AIX-FAQ</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://hpux.cae.wisc.edu/hppd/FAQ/" target="_blank"><span>HP-UX FAQ</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.linuxdoc.org/FAQ/Linux-FAQ/index.html" target="_blank"><span>LINUX FAQ</span></a></span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Online   Manual</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.rs6000.ibm.com/cgi-bin/ds_form?lang=en_US&amp;viewset=AIX&amp;config=/usr/share/man/info/en_US/a_doc_lib/data/base.cfg" target="_blank"><span>AIX   4.3 Books</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://docs.hp.com/dynaweb/hpux11/@Generic__CollectionView" target="_blank"><span>HP-UX   11.00 Collection</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.linuxdoc.org/" target="_blank"><span>Linux Documentation Project</span></a></span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Technical   Support</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://techsupport.services.ibm.com/support/rs6000/" target="_blank"><span>RS/6000 TechSupport</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://us-support.external.hp.com/" target="_blank"><span>IT Resource Center</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.redhat.com/apps/support/" target="_blank"><span>Red Hat support</span></a></span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Phone   Number</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">1-800-CALL-AIX</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">1-800-633-3600</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">1-888-REDHAT1</span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Free   Software</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.rge.com/pub/systems/aix/bull/" target="_blank"><span>Bull</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://eigen.ee.ualberta.ca/" target="_blank"><span>HP-UX Ports</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.boutell.com/lsm/" target="_blank"><span>Linux Software Map</span></a></span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Certification</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.ibm.com/education/certify/certs/axcsasa.phtml" target="_blank"><span>www.ibm.com</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://education.hp.com/hpcert-track1.htm" target="_blank"><span>education.hp.com</span></a></span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.redhat.com/training/rhce/courses/" target="_blank"><span>RHCE</span></a></span></tt></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<table class="MsoNormalTable" style="height: 101px;" border="1" cellspacing="0" cellpadding="0" width="697">
<tbody>
<tr>
<td width="132">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Links</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Solaris (SPARC)</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Tru64</span></strong></tt><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">FAQ</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"><a href="http://www.freebsd.org/FAQ/FAQ.html" target="_blank">FreeBSD FAQ</a></span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.wins.uva.nl/pub/solaris/solaris2/" target="_blank"><span>Solaris 2 FAQ</span></a></span></tt></p>
</td>
<td width="240">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.tru64.org/faq/tru64_faq.php3" target="_blank"><span>Tru64 FAQ</span></a></span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Online   Manual</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"><a href="http://www.freebsd.org/handbook/index.html" target="_blank">FreeBSD   Hand Book</a></span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://docs.sun.com/ab2/@TopicBrowse?topic=Sol7_C;" target="_blank"><span>Solaris 7 Documentation</span></a></span></tt></p>
</td>
<td width="240">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.unix.digital.com/faqs/publications/pub_page/doc_list.html" target="_blank"><span>Tru64   Documents</span></a></span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Technical   Support</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://sunsolve.sun.com/" target="_blank"><span>SunSolve</span></a></span></tt></p>
</td>
<td width="240">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www6.compaq.com/alphaserver/support.html" target="_blank"><span>Alpha Systems Support</span></a></span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Phone   Number</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">1-800-USA-4SUN</span></tt></p>
</td>
<td width="240">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Free   Software</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"><a href="ftp://ftp.freebsd.org/pub" target="_blank">FreeBSD Primary Site</a></span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.sunfreeware.com/" target="_blank"><span>Sun Freeware</span></a></span></tt></p>
</td>
<td width="240">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.tru64unix.compaq.com/demos" target="_blank"><span>Tru64 Demos, Shareware &amp; Freeware</span></a></span></tt></p>
</td>
</tr>
<tr>
<td width="132">
<p class="MsoNormal"><tt><span lang="EN-US">Certification</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://suned.sun.com/USA/certification/solarismain.html" target="_blank"><span>suned.sun.com</span></a></span></tt></p>
</td>
<td width="240">
<p class="MsoNormal"><tt><span lang="EN-US"><a href="http://www.compaq.com/training/ase-tsas.html" target="_blank"><span>ASE Information</span></a></span></tt></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统其它命令</span></strong></p>
<table class="MsoNormalTable" style="height: 590px;" border="1" cellspacing="0" cellpadding="0" width="692">
<tbody>
<tr>
<td width="144">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">MISC</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">AIX</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">FreeBSD</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">HP-UX</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Startup script</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/etc/rc</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/etc/rc</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/sbin/rc</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Kernel</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/usr/lib/boot/unix_up</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/kernel</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/stand/vmunix</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Kernel Parameters</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">lsattr -E -l sys0</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">sysctl -a</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">sysdef<span> </span>kmtune<span> </span>kmsystem</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Reconfigure the kernel</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"><br />
chdev -l sys0 -a </span></td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">cd /sys/i386/conf<br />
vi KERNEL<br />
config KERNEL<br />
cd ../../compile\<br />
/KERNEL<br />
make depend<br />
make<br />
make install</span></td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">cd /stand/build\<br />
/usr/lbin/sysadm\<br />
/system_prep -v -s system<br />
vi system<br />
mk_kernel -s system<br />
cd /stand<br />
mv system system.prev<br />
mv vmunix vmunix.prev<br />
mv dlkm dlkm.prev<br />
mv /stand/build\<br />
/system system<br />
kmupdate /stand/build\<br />
/vmunix_test</span></td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">List modules</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">genkex</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">kldstat</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">kmadmin –s</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Load module</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">kldload</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">kmadmin –L</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Unload module</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">kldunload</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">kmadmin –U</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Initialize system</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">install_assist</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/stand/sysinstall</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">set_parms initial</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Physical RAM</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">bootinfo -r</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">sysctl hw.physmem</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">grep -i Physical\ /var/adm/syslog\<br />
/syslog.log</span></td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Kernel Bits</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">bootinfo -k</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">getconf KERNEL_BITS</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Crash utility</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Crash</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">crash</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">Adb</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Trace System Calls</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Syscalls</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">truss</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US"><a href="ftp://ftp.cup.hp.com/dist/networking/misc/tusc.shar" target="_blank"><span>tusc</span></a></span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Machine model</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">uname -m<br />
bootinfo -m</span></td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">uname -m</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">model<br />
uname -m</span></td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">OS Level</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Oslevel</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">uname -r</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">uname -r</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Run Level</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">who –r</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">who -r</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Core dump files</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/var/adm/ras</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/var/adm/crash</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Boot single user</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">Key on service mode/F4<br />
Boot from CD/Tape<br />
Select Maintenance<br />
Limited function Shell</span></td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">ok boot –s</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">&gt;boot<br />
Interact with IPL ? <strong>Y</strong><br />
ISL&gt;hpux -iS</span></td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Maintenance mode</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">ok boot –as</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">&gt;boot<br />
Interact with IPL ? <strong>Y</strong><br />
ISL&gt;hpux -lm</span></td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Interrupt Key</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">control-B</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Return to console</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal"><span> </span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">Co</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Timezone Management</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/etc/environment<br />
/etc/profile</span></td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/etc/localtime</span></p>
</td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/etc/TIMEZONE</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">NTP Daemon</span></p>
</td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/etc/ntp.conf<br />
startsrc -s xntpd</span></td>
<td width="180">
<p class="MsoNormal"><span lang="EN-US">/etc/rc.conf {xntpd enable=&#8221;YES&#8221;}<br />
/etc/rc.network</span></td>
<td width="240">
<p class="MsoNormal"><span lang="EN-US">/etc/rc.config.d\<br />
/netdaemons<br />
/sbin/init.d/xntpd</span></td>
</tr>
</tbody>
</table>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统其它命令</span></strong><strong><span> </span></strong><strong><span>续</span></strong></p>
<table class="MsoNormalTable" style="height: 590px;" border="1" cellspacing="0" cellpadding="0" width="699">
<tbody>
<tr>
<td width="144">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">MISC</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="228">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Linux (RedHat)</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Solaris (SPARC)</span></strong><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="center"><strong><span lang="EN-US">Tru64</span></strong><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Startup script</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">/etc/rc.d/rc</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">/sbin/init.d</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">/sbin/init.d</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Kernel</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">/boot/vmlinuz</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">/kernel/genunix</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">/vmunix</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Kernel Parameters</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">sysctl -a</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">sysdef –I</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">sysconfig<span> </span>dxkerneltuner</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Reconfigure the kernel</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">cd /usr/src/linux<br />
make mrproper<br />
make menuconfig<br />
make dep;clean;bzImage;install<br />
make modules<br />
make modules_install </span></p>
<p class="MsoNormal"><span lang="EN-US">cp arch/i386/boot/bzImage /boot/vmlinuz<br />
mkinitrd /boot/initrd-2.4.img 2.4<br />
vi /etc/lilo.conf<br />
lilo</span></td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">vi /etc/system<br />
reboot</span></td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">doconfig</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">List modules</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">lsmod</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">modinfo</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Load module</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">insmod</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">modload</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Unload module</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">rmmod</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">modunload</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Initialize system</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">netconf</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">sys-unconfig</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">netsetup</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Physical RAM</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">free</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">prtconf</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">uerf | grep memory</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Kernel Bits</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">getconf WORD_BIT</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">isainfo -kv</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">64</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Crash utility</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US"><a href="http://oss.sgi.com/projects/lkcd/" target="_blank"><span>lcrash</span></a></span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">crash</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">kdbx</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Trace System Calls</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">strace</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">truss</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US"><a href="ftp://ftp.iastate.edu/pub/unix/osf1/trace/" target="_blank"><span>trace</span></a></span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Machine model</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">uname -m</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">uname -imp</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">uname -p</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">OS Level</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">uname -r</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">uname -r</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">sizer -v</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Run Level</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">runlevel</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">who -r</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">who -r</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Core dump files</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">/var/crash/`uname -n`</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Boot single user</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">{lilo}<br />
control-x<br />
linux S</span></p>
<p>{grub}<br />
c<br />
kernel vmlinuz-2.4.9-13 <strong>single</strong> ro root=/dev/hda8<br />
initrd /initrd-2.4.9-13.img<br />
boot</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">ok boot -s</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">&gt;&gt;&gt; boot -fl s</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Maintenance mode</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">ok boot -as</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Interrupt Key</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">Stop-A</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">control-P</span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Return to console</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">ok go</span></p>
</td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">Timezone Management</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">/etc/sysconfig/clock</span></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">/etc/TIMEZONE<br />
/etc/default/init</span></td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">/etc/svid3_tz<br />
timezone</span></td>
</tr>
<tr>
<td width="144">
<p class="MsoNormal"><span lang="EN-US">NTP Daemon</span></p>
</td>
<td width="228">
<p class="MsoNormal"><span lang="EN-US">/etc/ntp.conf<br />
/etc/rc.d/init.d/xntpd</span></td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US">/etc/inet/ntp.conf<br />
/etc/init.d/xntpd</span></td>
<td width="216">
<p class="MsoNormal"><span lang="EN-US">rcmgr set XNTPD_CONF YES</span><span lang="EN-US"><br />
/sbin/init.d/xntpd</span></td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" align="center"><strong><span>主流服务器</span></strong><strong><span lang="EN-US">UNIX</span></strong><strong><span>操作系统设备管理</span></strong></p>
<table class="MsoNormalTable" style="height: 211px;" border="1" cellspacing="0" cellpadding="0" width="693">
<tbody>
<tr>
<td width="216">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Devices</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="180">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">AIX</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">FreeBSD</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">HP-UX</span></strong></tt><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Devices</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">/dev</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">/dev</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Install   devices for attached peripherals</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">cfgmgr –v</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/MAKEDEV</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">insf -e</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Remove   device</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">rmdev –l</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">rmsf</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Device   drivers</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">Lscfg</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">lsdev</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">CPU</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">lsdev -Cc   processor</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">sysctl   hw.model</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">ioscan -fnC   processor</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">List   Terminal</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">lsdev -Cc   tty</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">ioscan -fnC   tty</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Diagnostics</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">Diag</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">pciconf -l</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">Stm</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Whole Disk</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/hdisk#</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/ad0s1c</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/dsk/c#t#d0</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">CDROM</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/cd0</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/acd0c</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/dsk/c#t2d0</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">CDROM file   type</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">Cdrfs</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">cd9660</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">Cdfs</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Rewinding   tape drive</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rmt0</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rwt0d</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rmt/0m</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Floppy drive</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rfd0</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/fd0</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">-</span></tt></p>
</td>
</tr>
<tr>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">Non-rewinding   tape drive</span></tt></p>
</td>
<td width="180">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rmt0.1</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/nrwt0d</span></tt></p>
</td>
<td width="192">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rmt/0mn</span></tt></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<table class="MsoNormalTable" style="height: 283px;" border="1" cellspacing="0" cellpadding="0" width="693">
<tbody>
<tr>
<td width="204">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Devices</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="168">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Linux (RedHat)</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="216">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Solaris (SPARC)</span></strong></tt><span lang="EN-US"> </span></p>
</td>
<td width="156">
<p class="MsoNormal" align="center"><tt><strong><span lang="EN-US">Tru64</span></strong></tt><span lang="EN-US"> </span></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Devices</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">/dev</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">/devices</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev</span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Install   devices for attached peripherals</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/MAKEDEV</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">drvconfig</span></tt><span lang="EN-US"><br />
</span><tt><span lang="EN-US">devlinks</span></tt><span lang="EN-US"><br />
</span><tt><span lang="EN-US">disks</span></tt><span lang="EN-US"><br />
</span><tt><span lang="EN-US">tapes</span></tt><span lang="EN-US"><br />
</span><tt><span lang="EN-US">ports</span></tt></td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">scu scan edt</span></tt><span lang="EN-US"><br />
</span><tt><span lang="EN-US">scsimgr -scan_all</span></tt></td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Remove   device</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">rem_drv</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Device   drivers</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">prtconf -D</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">CPU</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">cat   /proc/cpuinfo</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">psrinfo -v</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">psrinfo -v</span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">List   Terminal</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">pmadm -l</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Diagnostics</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">/usr/platform/`uname   -m`/</span></tt><span lang="EN-US"><br />
</span><tt><span lang="EN-US">sbin/prtdiag</span></tt><span lang="EN-US"><br />
</span><tt><span lang="EN-US">ok test-all</span></tt><span lang="EN-US"><br />
</span><tt><span lang="EN-US">/opt/SUNWvts/bin/sunvts</span></tt></td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US"> </span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Whole Disk</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/sda</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/c#t#d0s2</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rz0c</span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">CDROM</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/cdrom</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/dsk/c#t6d0s2</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rz3c</span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">CDROM file   type</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">iso9660</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">hsfs</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">cdfs</span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Rewinding   tape drive</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rst0  {c   9 0}</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rmt/0</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rmt0</span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Floppy drive</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/fd0</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/diskette</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/fd0c</span></tt></p>
</td>
</tr>
<tr>
<td width="204">
<p class="MsoNormal"><tt><span lang="EN-US">Non-rewinding   tape drive</span></tt></p>
</td>
<td width="168">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/nrst0 {c   9 128}</span></tt></p>
</td>
<td width="216">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/rmt/0n</span></tt></p>
</td>
<td width="156">
<p class="MsoNormal"><tt><span lang="EN-US">/dev/nrmt0</span></tt></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/286.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINUXAS4 源代码安装 VSFTP</title>
		<link>http://www.evanjiang.net.cn/archives/284.html</link>
		<comments>http://www.evanjiang.net.cn/archives/284.html#comments</comments>
		<pubDate>Wed, 21 Jan 2009 11:20:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ftp]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[LinuxAS4 安装 配置 vsftp]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=284</guid>
		<description><![CDATA[<p>LINUXAS4 源代码安装 VSFTP
1.下载最新的稳定版vsftpd-1.2.1.tar.gz
下载网址：ftp://vsftpd.beasts.org/users/cevans/
   2.卸载原有的rpm的vsftpd
    rpm -e vsftpd
   3.tar xvzf vsftpd-1.2.1.tar.gz
   4.cd vsftpd-1.2.1
   5.make
   6.useradd nobody
   7.mkdir /usr/share/empty
   8.mkdir /var/ftp
   9.useradd -d /var/ftp ftp
   10.chown root.root /var/ftp
   11.chmod og-w /var/ftp
   说明：如果你象俺一样原来有rpm的vsftp，只是卸载了，可以省略6-11步，如果原来没有安装vsftp，请按
部就班。

 [...]]]></description>
			<content:encoded><![CDATA[<p>LINUXAS4 源代码安装 VSFTP<br />
1.下载最新的稳定版vsftpd-1.2.1.tar.gz<br />
下载网址：ftp://vsftpd.beasts.org/users/cevans/<br />
   2.卸载原有的rpm的vsftpd<br />
    rpm -e vsftpd<br />
   3.tar xvzf vsftpd-1.2.1.tar.gz<br />
   4.cd vsftpd-1.2.1<br />
   5.make<br />
   6.useradd nobody<br />
   7.mkdir /usr/share/empty<br />
   8.mkdir /var/ftp<br />
   9.useradd -d /var/ftp ftp<br />
   10.chown root.root /var/ftp<br />
   11.chmod og-w /var/ftp<br />
   说明：如果你象俺一样原来有rpm的vsftp，只是卸载了，可以省略6-11步，如果原来没有安装vsftp，请按<br />
部就班。<br />
<span id="more-284"></span><br />
  12.make install<br />
   13.vi /etc/xinetd.d/vsftpd<br />
    把disable=yes改成no，保存退出。然后service xinetd restart，OK！新装的vsftp已经可以工作了！<br />
    说明：默认安装的vsftpd是以xinetd的方式启动的。你需要上述操作，一会儿，俺们再来讲把它改成独立启<br />
动的服务。<br />
  14.ftp 127.0.0.1<br />
     输入用户名ftp，密码直接回车，OK！已经可以连接了！输入quit退出。然后重新ftp 127.0.0.1，输入本地<br />
用户和密码，却提示login faild！why?原来少一个本地用户认证的pam文件。<br />
  15.cp RedHat/vsftpd.pam /etc/pam.d/ftp（注意，没有这一步将不能使用本地用户登录！）<br />
  16.cp vsftpd.conf /etc/vsftpd.conf（现在，默认还是只能匿名用户登录）<br />
  17.vi /etc/vsftpd.conf<br />
     把anonmous_enable=YES改成NO(禁掉匿名链接，不安全）<br />
     把local_enable=YES前的注释去掉（打开本地用户连接的权限）<br />
     把write_enable=YES前的注释去掉（打开本地用户的写权限）<br />
     把local_umask=022前的注释去掉<br />
    service xinetd restart<br />
  18.再次测试<br />
     ftp 127.0.0.1<br />
     使用ftp用户空密码登录，将出现login faild<br />
     使用本地用户登录，OK！已经成功了！上传文件，也OK！</p>
<p>　　这样是不是就完事儿了？不是，做一个FTP，俺们通常还需要一些特殊要求：比如一个用户俺只允许他<br />
下载，不允许他上传；另一个用户可以下载也可以上传，但是他不能删除文件，不能给文件改名；另外，俺<br />
还需要俺的FTP使用非常规的端口，限制下载的速度，还需要一个管理员用户。那怎么办？请看下面的部分<br />
！<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
二、高级配置</p>
<p>   1.使用独立服务<br />
    a.vi /etc/xinetd.d/vsftpd把disable=no还改成yes，不再需要它！<br />
    b.vi /etc/vsftpd.conf在结尾加上listen=YES<br />
      c.service xinetd restart<br />
      d./usr/local/sbin/vsftpd /etc/vsftpd.conf &#038;<br />
      OK！现在vsftp已经是独立启动的服务！<br />
   2.使用非常规的端口(2121)<br />
     a.vi /etc/vsftpd.conf<br />
      添加listen_port=2121，保存退出<br />
    b.killall -9 vsftpd<br />
      c./usr/local/sbin/vsftpd /etc/vsftpd.conf &#038;<br />
    OK!现在用ftp 127.0.0.1将提示你连接被拒绝了(ftp:connect:Connetion refuesd)！然后ftp 127.0.0.1 2121输<br />
入用户名和密码，OK！可以登录！<br />
    3.实现不同用户不同权限<br />
     现在俺们就来实现三个用户的不同权限：a.upload用户，可以上传下载，可以新建文件夹，但不能删除文<br />
件和文件夹，不能重命名原有文件和文件夹；b.download用户，只能下载；c.admin用户，管理员，可以上<br />
传，可以下载，可以新建文件夹，可以删除和更改文件和文件夹名。这些用户都不能登录系统，并且用ftp连<br />
接时锁定在自己的家目录中不能进入系统文件夹。<br />
    a.cat  > logins.txt<br />
      >;upload<br />
      >;******* #upload用户的密码<br />
      >;download<br />
      >;*******<br />
      >;admin<br />
      >;****************<br />
      >;!<br />
      说明， 此文本文件的格式是：单数行为用户名，偶数行为密码<br />
    b.db_load -T -t hash -f logins.txt /etc/vsftpd_login.db<br />
    c.chmod 600 /etc/vsftpd_login.db<br />
    d.cd vsftpd-1.2.1/EXAMPLE;cp VIRTUAL_USERS/vsftpd.pam /etc/pam.d/ftp.vu (进入你的解包的源码目录<br />
，把虚拟用户的认证文件拷贝到/etc/pam.d/下）<br />
    e.useradd -d /home/ftpsite virtual；chmod 700 /home/ftpsite;su &#8211; virtual -c &#8220;echo hello>;/homt/ftpsite/test.file<br />
（建立虚拟用户所要访问的ftp目录并设置仅virtual用户访问的权限和创建一个供下载实验的文件）<br />
    f.vi /etc/vsftpd.conf在此文件中插入下面的配置语句<br />
     guest_enable=YES（启用虚拟用户）<br />
     guest_username=virtual（将虚拟用户映射为本地virtual用户）<br />
     pam_service_name=ftp.vu（指定PAM配置文件为ftp.vu）<br />
     user_config_dir=/etc/vsftpd_user_conf（指定不同虚拟用户配置文件的存放路径）<br />
    保存退出<br />
    g.mkdir /etc/vsftpd_user_conf<br />
    h.开放不同用户的不同权限　echo &#8220;anon_world_readable_only=NO&#8221;>;/etc/vsftpd_user_conf/download（开<br />
放download用户的下载权限——只能下载；注意这个不地方不要写成YES，否则将不能列出文件和目录）<br />
     cp /etc/vsftpd_user_conf/download /etc/vsftpd_user_conf/upload<br />
     vi /etc/vsftpd_user_conf/upload，添加下列行<br />
     write_enable=YES （增加写权限）<br />
     anon_upload_enable=YES（增加上传权限）<br />
     anon_mkdir_write_enable=YES (增加创建目录的权限）<br />
     cp /etc/vsftpd_user_conf/upload /etc/vsftpd_user_conf/admin<br />
     增加一行：<br />
     anno_other_writer_enable=YES（增加管理员用户的删除/重命名的权限）<br />
    i.测试<br />
      killall -9 vsftpd;/usr/local/sbin/vsftpd /etc/vsftpd.conf &#038;<br />
      ftp 127.0.0.1 2121<br />
      以用户名download和你设置的密码登录，ls，可以看到文件，下载，成功！put一个文件，提示<br />
Permission denied。rename test.file同样权限被拒绝；delete test.file同样不成功！<br />
      输入quit退出，以upload用户登录，OK！可以上传，下载，mkdir lsf，提示“/lsf&#8221; created；rename lsf lsf1<br />
提示Permission denied,删除文件同样不成功！<br />
     输入quit退出，以admin用户登录，可以有上述所有权限，然后rmdir lsf,提示Remove directory o[eration<br />
successful;delete test.file提示Delete operation successful!OK，大功告成了！<br />
   4.还有限速，限制同一个IP的连接数，限制最大连接数等，俺在另外的文章中已经写过，在此不再赘述！</p>
<p>三、附目<br />
   1.俺的/etc/vsftpd.conf文件的内容</p>
<p>QUOTE:<br />
# Example config file /etc/vsftpd.conf<br />
#<br />
# The default compiled in settings are fairly paranoid. This sample file<br />
# loosens things up a bit, to make the ftp daemon more usable.<br />
# Please see vsftpd.conf.5 for all compiled in defaults.<br />
#<br />
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.<br />
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd&#8217;s<br />
# capabilities.<br />
#<br />
# Allow anonymous FTP? (Beware &#8211; allowed by default if you comment this out).<br />
anonymous_enable=NO<br />
#<br />
# Uncomment this to allow local users to log in.<br />
local_enable=YES<br />
#<br />
# Uncomment this to enable any form of FTP write command.<br />
write_enable=YES<br />
#<br />
# Default umask for local users is 077. You may wish to change this to 022,<br />
# if your users expect that (022 is used by most other ftpd&#8217;s)<br />
local_umask=022<br />
#<br />
# Uncomment this to allow the anonymous FTP user to upload files. This only<br />
# has an effect if the above global write enable is activated. Also, you will<br />
# obviously need to create a directory writable by the FTP user.<br />
anon_upload_enable=NO<br />
#<br />
# Uncomment this if you want the anonymous FTP user to be able to create<br />
# new directories.<br />
anon_mkdir_write_enable=NO<br />
#<br />
# Activate directory messages &#8211; messages given to remote users when they<br />
# go into a certain directory.<br />
dirmessage_enable=YES<br />
#<br />
# Activate logging of uploads/downloads.<br />
xferlog_enable=YES<br />
#<br />
# Make sure PORT transfer connections originate from port 20 (ftp-data).<br />
connect_from_port_20=YES<br />
#<br />
# If you want, you can arrange for uploaded anonymous files to be owned by<br />
# a different user. Note! Using &#8220;root&#8221; for uploaded files is not<br />
# recommended!<br />
#chown_uploads=YES<br />
#chown_username=whoever<br />
#<br />
# You may override where the log file goes if you like. The default is shown<br />
# below.<br />
#xferlog_file=/var/log/vsftpd.log<br />
#<br />
# If you want, you can have your log file in standard ftpd xferlog format<br />
#xferlog_std_format=YES<br />
#<br />
# You may change the default value for timing out an idle session.<br />
#idle_session_timeout=600<br />
#<br />
# You may change the default value for timing out a data connection.<br />
#data_connection_timeout=120<br />
#<br />
# It is recommended that you define on your system a unique user which the<br />
# ftp server can use as a totally isolated and unprivileged user.<br />
#nopriv_user=ftpsecure<br />
#<br />
# Enable this and the server will recognise asynchronous ABOR requests. Not<br />
# recommended for security (the code is non-trivial). Not enabling it,<br />
# however, may confuse older FTP clients.<br />
#async_abor_enable=YES<br />
#<br />
# By default the server will pretend to allow ASCII mode but in fact ignore<br />
# the request. Turn on the below options to have the server actually do ASCII<br />
# mangling on files when in ASCII mode.<br />
# Beware that turning on ascii_download_enable enables malicious remote parties<br />
# to consume your I/O resources, by issuing the command &#8220;SIZE /big/file&#8221; in<br />
# ASCII mode.<br />
# These ASCII options are split into upload and download because you may wish<br />
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),<br />
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be<br />
# on the client anyway..<br />
ascii_upload_enable=YES<br />
ascii_download_enable=YES<br />
#<br />
# You may fully customise the login banner string:<br />
ftpd_banner=Welcome to Serv-U FTP serser. #(一个真实的慌言)<br />
#<br />
# You may specify a file of disallowed anonymous e-mail addresses. Apparently<br />
# useful for combatting certain DoS attacks.<br />
#deny_email_enable=YES<br />
# (default follows)<br />
#banned_email_file=/etc/vsftpd.banned_emails<br />
#<br />
# You may specify an explicit list of local users to chroot() to their home<br />
# directory. If chroot_local_user is YES, then this list becomes a list of<br />
# users to NOT chroot().<br />
chroot_list_enable=YES<br />
# (default follows)<br />
chroot_list_file=/etc/vsftpd.chroot_list<br />
#<br />
# You may activate the &#8220;-R&#8221; option to the builtin ls. This is disabled by<br />
# default to avoid remote users being able to cause excessive I/O on large<br />
# sites. However, some broken FTP clients such as &#8220;ncftp&#8221; and &#8220;mirror&#8221; assume<br />
# the presence of the &#8220;-R&#8221; option, so there is a strong case for enabling it.<br />
#ls_recurse_enable=YES<br />
chroot_local_user=YES<br />
listen_port=2121<br />
listen=yes<br />
guest_enable=YES<br />
guest_username=virtual<br />
pasv_min_port=30000<br />
pasv_max_port=30999<br />
pam_service_name=ftp.vu<br />
anon_world_readable_only=NO<br />
user_config_dir=/etc/vsftpd_user_conf<br />
2.俺的/etc/vsftpd_user_conf/download的内容<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p>QUOTE:<br />
anon_world_readable_only=NO<br />
3.俺的/etc/vsftpd_user_conf/upload的内容</p>
<p>QUOTE:<br />
anon_world_readable_only=NO<br />
write_enable=YES<br />
anon_upload_enable=YES<br />
anon_mkdir_write_enable=YES<br />
4.俺的/etc/vsftpd_user_conf/admin的内容</p>
<p>QUOTE:<br />
anon_world_readable_only=NO<br />
write_enable=YES<br />
anon_upload_enable=YES<br />
anon_other_write_enable=YES<br />
anon_mkdir_write_enable=YES<br />
5.自启动脚本，在/etc/rc.local中加入/usr/local/sbin/vsftpd /etc/vsftpd.conf &#038;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/284.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>智能DNS服务器配置详解</title>
		<link>http://www.evanjiang.net.cn/archives/237.html</link>
		<comments>http://www.evanjiang.net.cn/archives/237.html#comments</comments>
		<pubDate>Wed, 14 Jan 2009 05:09:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dns]]></category>
		<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[智能 dns 服务器 网通 电信 双向解析]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=237</guid>
		<description><![CDATA[<p>注：对于配置智能DNS，主要用途为：1、解决网通与电信问题 2、实现区域规划（不同区域访问各自最近的服务器），下面以解决网通与电信连接问题的配置。至于实现2的功能，只需稍加更改即可。</p>
<p>一、DNS服务器安装&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. 1
二、named.conf的配置&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 2
三、更新根区文件：&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 3
四、建立启动脚本：&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 4
五、添加一个NS&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. 5
六、添加一个域名&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;. 5
附：获取IP地址范围方法:&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 7</p>
<p></p>
<p>一、DNS服务器安装</p>
<p>1、 软件列表
BIND 9.3.2</p>

?View Code TEXT1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
ftp://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz 
2、 安装BIND 9 
安装BIND9： 
# tar zxvf bind-9.3.2.tar.gz 
# cd bind-9.3.2 
# ./configure 
--prefix=/usr/local/named 
--disable-ipv6 
# make &#38;&#38; make install 
建立BIND用户： 
# groupadd bind 
# useradd -g bind -d /usr/local/named -s /sbin/nologin bind 
创建配置文件目录： 
# mkdir –p /usr/local/named/etc 
# chown bind:bind /usr/local/named/etc [...]]]></description>
			<content:encoded><![CDATA[<p>注：对于配置智能DNS，主要用途为：1、解决网通与电信问题 2、实现区域规划（不同区域访问各自最近的服务器），下面以解决网通与电信连接问题的配置。至于实现2的功能，只需稍加更改即可。</p>
<p>一、DNS服务器安装&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. 1<br />
二、named.conf的配置&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 2<br />
三、更新根区文件：&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 3<br />
四、建立启动脚本：&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 4<br />
五、添加一个NS&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. 5<br />
六、添加一个域名&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;. 5<br />
附：获取IP地址范围方法:&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 7</p>
<p><span id="more-237"></span></p>
<p>一、DNS服务器安装</p>
<p>1、 软件列表<br />
BIND 9.3.2</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p237code2'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2372"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
</pre></td><td class="code" id="p237code2"><pre class="text" style="font-family:monospace;">ftp://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz 
2、 安装BIND 9 
安装BIND9： 
# tar zxvf bind-9.3.2.tar.gz 
# cd bind-9.3.2 
# ./configure 
--prefix=/usr/local/named 
--disable-ipv6 
# make &amp;&amp; make install 
建立BIND用户： 
# groupadd bind 
# useradd -g bind -d /usr/local/named -s /sbin/nologin bind 
创建配置文件目录： 
# mkdir –p /usr/local/named/etc 
# chown bind:bind /usr/local/named/etc 
# chmod 700 /usr/local/named/etc 
&nbsp;
二、named.conf的配置
&nbsp;
创建主要的配置文件： 
# vi /usr/local/named/etc/named.conf 
===========================named.conf======================= 
acl &quot;trust-lan&quot; { 127.0.0.1/8; 192.168.0.0/16;}; 
options { 
directory &quot;/usr/local/named/etc/&quot;; 
pid-file &quot;/var/run/named/named.pid&quot;; 
version &quot;0.0.0&quot;; 
datasize 40M; 
allow-transfer { 
&quot;trust-lan&quot;;}; 
recursion yes; 
allow-notify { 
&quot;trust-lan&quot;; 
}; 
allow-recursion { 
&quot;trust-lan&quot;; 
}; 
auth-nxdomain no; 
forwarders { 
202.99.160.68; 
202.99.168.8;}; 
}; 
logging { 
channel warning 
{ file &quot;/var/log/named/dns_warnings&quot; versions 3 size 1240k; 
severity warning; 
print-category yes; 
print-severity yes; 
print-time yes; 
}; 
channel general_dns 
{ file &quot;/var/log/named/dns_logs&quot; versions 3 size 1240k; 
severity info; 
print-category yes; 
print-severity yes; 
print-time yes; 
}; 
category default { warning; }; 
category queries { general_dns; }; 
}; 
zone &quot;.&quot; { 
type hint; 
file &quot;named.root&quot;; 
}; 
acl &quot;CNC&quot; { 
58.16.0.0/16; 
58.17.0.0/17; 
58.17.128.0/17; 
58.18.0.0/16; 
58.19.0.0/16; 
58.20.0.0/16; 
58.21.0.0/16; 
注：这些根据情况输入IP地址段 
}; 
view &quot;view_cnc&quot; { 
match-clients { CNC; }; 
zone &quot;.&quot; { 
type hint; 
file &quot;named.root&quot;; 
}; 
zone &quot;0.0.127.IN-ADDR.ARPA&quot; { 
type master; 
file &quot;localhost.rev&quot;; 
}; 
include &quot;master/cnc.def&quot;; 
}; 
view &quot;view_any&quot; { 
match-clients { any; }; 
zone &quot;.&quot; { 
type hint; 
file &quot;named.root&quot;; 
}; 
zone &quot;0.0.127.IN-ADDR.ARPA&quot; { 
type master; 
file &quot;localhost.rev&quot;; 
}; 
include &quot;master/telecom.def&quot;; 
}; 
添加完成后，保存。
 &lt;!--adsense--&gt;
三、更新根区文件：
&nbsp;
# cd /usr/local/named/etc/ 
# wget ftp://ftp.internic.org/domain/named.root 
创建PID和日志文件： 
# mkdir /var/run/named/ 
# chmod 777 /var/run/named/ 
# chown bind:bind /var/run/named/ 
# mkdir /var/log/named/ 
# touch /var/log/named/dns_warnings 
# touch /var/log/named/dns_logs 
# chown bind:bind /var/log/named/* 
# mkdir master 
# touch master/cnc.def 
# touch master/telecom.def 
生成rndc-key： 
# cd /usr/local/named/etc/ 
# ../sbin/rndc-confgen &gt; rndc.conf 
把rndc.conf中： 
# Use with the following in named.conf, adjusting the allow list as needed: 
后面以的部分加到/usr/local/named/etc/named.conf中并去掉注释 
运行测试： 
# /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf &amp; 
状态检查： 
# /usr/local/named/sbin/rndc status 
&nbsp;
&nbsp;
四、建立启动脚本： 
&nbsp;
# vi /etc/init.d/named 
============================== named.sh============================ 
#!/bin/bash 
# 
# named        a network name service. 
# 
# 
# chkconfig: 545 35 75 
# description: a name server 
# 
if [ `id -u` -ne 0 ] 
then 
echo &quot;ERROR:For bind to port 53,must run as root.&quot; 
exit 1 
fi 
case &quot;$1&quot; in 
start) 
if [ -x /usr/local/named/sbin/named ]; then 
/usr/local/named/sbin/named -u bind -c /usr/local/named/etc/named.conf &amp;&amp; echo . &amp;&amp; echo 'BIND9 server started.' 
fi 
;; 
stop) 
kill `cat /var/run/named/pid` &amp;&amp; echo . &amp;&amp; echo 'BIND9 server stopped.' 
;; 
restart) 
echo . 
echo &quot;Restart BIND9 server&quot; 
$0 stop 
sleep 10 
$0 start 
;; 
*) 
echo &quot;$0 start | stop | restart&quot; 
;; 
esac 
===============================named.sh============================ 
# chmod 755 /etc/init.d/named 
# chown root:root /etc/init.d/named 
# chkconfig --add named 
# chkconfig named on 
&nbsp;
&nbsp;
五、添加一个NS 
&nbsp;
       在域名的管理网站上，设定NS服务器为你安装的DNS
&nbsp;
&nbsp;
六、添加一个域名 
 &lt;!--adsense--&gt;
# cd /usr/local/named/etc/master 
# mkdir cnc 
# mkdir telecom 
# vi cnc.def 
添加 
zone &quot;daoyou.com&quot; { 
type master; 
file &quot;master/cnc/daoyou.com&quot;; 
}; 
# vi telecom.def 
添加 
zone &quot;daoyou.com&quot; { 
type master; 
file &quot;master/telecom/daoyou.com&quot;; 
}; 
添加网通的解析，解析到的IP为61.45.55.78 
#vi cnc/daoyou.com 
添加 
$TTL 3600 
$ORIGIN daoyou.com. 
@ IN SOA ns.daoyou.com. root.ns.daoyou.com.( 
2005121013 ;Serial 
3600 ; Refresh ( seconds ) 
900 ; Retry ( seconds ) 
68400 ; Expire ( seconds ) 
15 );Minimum TTL for Zone ( seconds ) 
; 
@ IN NS ns.daoyou.com. 
@ IN A 61.45.55.78
www IN A 61.45.55.78 
; 
;end 
添加电信的解析，解析到的IP为210.75.1.178
#vi telecom/daoyou.com 
添加 
$TTL 3600 
$ORIGIN daoyou.com. 
@ IN SOA ns.daoyou.com. root.ns.daoyou.com.( 
2005121013 ;Serial 
3600 ; Refresh ( seconds ) 
900 ; Retry ( seconds ) 
68400 ; Expire ( seconds ) 
15 );Minimum TTL for Zone ( seconds ) 
; 
@ IN NS ns.daoyou.com. 
@ IN A 210.75.1.178 
www IN A 210.75.1.178 
; 
;end 
#/usr/local/named/sbin/rndc reload 
OK，到此你的DNS服务器就算是跑起来了。试一下分别用网通和电信的线路ping一下吧. 
&nbsp;
&nbsp;
附：获取IP地址范围方法: 
1、  利用shell程序获取IP地址段
&nbsp;
#!/bin/sh
FILE=/root/study/apnic/ip_apnic
rm -f $FILE 
wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILE
grep 'apnic|CN|ipv4|' $FILE | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
do
       echo $ip:$cnt
        mask=$(cat &lt;&lt; EOF | bc | tail -1
pow=32;
define log2(x) {
if (x&lt;=1) return (pow);
pow--;
return(log2(x/2));
}
log2($cnt)
EOF)
         echo $ip/$mask&gt;&gt; cn.net
       NETNAME=`whois $ip@whois.apnic.net | sed -e '/./{H;$!d;}' -e 'x;/netnum/!d' |grep ^netname | sed -e 's/.*:      \(.*\)/\1/g' | sed -e 's/-.*//g'`
       case $NETNAME in 
       CNC)
              echo $ip/$mask &gt;&gt; CNCGROUP
       ;;
       CHINANET|CNCGROUP)
              echo $ip/$mask &gt;&gt; $NETNAME
       ;;
       CHINANET|CNCGROUP)
              echo $ip/$mask &gt;&gt; $NETNAME
       ;;
       CHINATELECOM)
              echo $ip/$mask &gt;&gt; CHINANET
       ;;
       *)
              echo $ip/$mask &gt;&gt; OTHER
       ;;
       esac
done</pre></td></tr></table></div>

<p>2、  可以利用网上的资料，下面是最新的信息，然后利awk行成地址段即可。</p>
<p>wget http://218.66.103.230/vpn_route/cnc.new 新的网通路由表<br />
wget http://218.66.103.230/vpn_route/chinanet.new 新的电信路由表</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/237.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache+resin+pureftp的虚拟主机和负载均衡</title>
		<link>http://www.evanjiang.net.cn/archives/183.html</link>
		<comments>http://www.evanjiang.net.cn/archives/183.html#comments</comments>
		<pubDate>Tue, 30 Dec 2008 17:05:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[www]]></category>
		<category>