<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GzV8.com &#187; Linux &amp; Unix</title>
	<atom:link href="http://www.gzv8.com/archives/tag/linux-unix/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gzv8.com</link>
	<description>互联网引擎</description>
	<lastBuildDate>Thu, 06 Jan 2011 04:08:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>NFS 的配置，挂载，控制大全。</title>
		<link>http://www.gzv8.com/archives/106</link>
		<comments>http://www.gzv8.com/archives/106#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:36:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[NFS]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=106</guid>
		<description><![CDATA[
Linux应用：NFS服务器的安装和故障排除
2008-10-22
NFS服务器的工作原理
NFS服务器的安装和故障排除
本章要点
 NFS（Network File System，网络文件系统）服务器的工作原理。
 安装配置NFS服务器。
 NFS的图形化配置。
 NFS的客户端配置。
 NFS服务器的故障排除。
7.1  NFS服务器的工作原理
7.1.1  NFS简介
NFS是分布式计算机系统的一个组成部分，可实现在异构网络上共享和装配远程文件系统。NFS由SUN公司开发，目前已经成为文件服务的一种标准（RFC1904，RFC1813）。其最大功能是可以通过网络让不同操作系统的计算机可以共享数据，所以也可以将其看做是一台文件服务器，如图7-1所示。NFS提供了除Samba之外，Windows与Linux及UNIX与Linux之间通信的方法。

图7-1  NFS可作为文件服务器
客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样，可以使用cp、cd、mv、rm及df等与磁盘相关的命令。NFS有属于自己的协议与使用的端口号，但是在传送资料或者其他相关信息时候，NFS服务器使用一个称为“远程过程调用”（Remote Procedure Call，RPC）的协议来协助NFS服务器本身的运行。
7.1.2  为何使用NFS
NFS的目标是使计算机共享资源，在其发展过程中（即20世纪80年代），计算机工业飞速发展，廉价CPU及客户端/服务器技术促进了分布式计算环境的发展。然而当处理器价格下降时，大容量的存储系统相对而言价格仍居高不下。因此必须采用某种机制在充分发挥单个处理器性能的同时使计算机可共享存储资源和数据，于是NFS应运而生。
7.1.3  NFS协议
使用NFS，客户端可以透明地访问服务器中的文件系统，这不同于提供文件传输的FTP协议。FTP会产生文件一个完整的副本；NFS只访问一个进程引用文件部分，并且一个目的就是使得这种访问透明。这就意味着任何能够访问一个本地文件的客户端程序不需要做任何修改，就应该能够访问一个NFS文件。
NFS是一个使用SunRPC构造的客户端/服务器应用程序，其客户端通过向一台NFS服务器发送RPC请求来访问其中的文件。尽管这一工作可以使用一般的用户进程来实现，即NFS客户端可以是一个用户进程，对服务器进行显式调用，而服务器也可以是一个用户进程。因为两个理由，NFS一般不这样实现。首先访问一个NFS文件必须对客户端透明，因此NFS的客户端调用是由客户端操作系统代表用户进程来完成的；其次，出于效率的考虑，NFS服务器在服务器操作系统中实现。如果NFS服务器是一个用户进程，每个客户端请求和服务器应答（包括读和写的数据）将不得不在内核和用户进程之间进行切换，这个代价太大。第3版的NFS协议在1993年发布，图7-2所示为一个NFS客户端和一台NFS服务器的典型结构。

图7-2  NFS客户端和NFS服务器的典型结构
（1）访问一个本地文件还是一个NFS文件对于客户端来说是透明的，当文件被打开时，由内核决定这一点。文件被打开之后，内核将本地文件的所有引用传递给名为“本地文件访问”的框中，而将一个NFS文件的所有引用传递给名为“NFS客户端”的框中。
（2）NFS客户端通过其TCP/IP模块向NFS服务器发送RPC请求，NFS主要使用UDP，最新的实现也可以使用TCP。
（3）NFS服务器在端口2049接收作为UDP数据包的客户端请求，尽管NFS可以被实现为使用端口映射器，允许服务器使用一个临时端口，但是大多数实现都是直接指定UDP端口2049。
（4）当NFS服务器收到一个客户端请求时，它将这个请求传递给本地文件访问例程，然后访问服务器主机上的一个本地的磁盘文件。
（5）NFS服务器需要花一定的时间来处理一个客户端的请求，访问本地文件系统一般也需要一部分时间。在这段时间间隔内，服务器不应该阻止其他客户端请求。为了实现这一功能，大多数的NFS服务器都是多线程的——服务器的内核中实际上有多个NFS服务器在NFS本身的加锁管理程序中运行，具体实现依赖于不同的操作系统。既然大多数UNIX内核不是多线程的，一个共同的技术就是启动一个用户进程（常被称为“nfsd”）的多个实例。这个实例执行一个系统调用，使其作为一个内核进程保留在操作系统的内核中。
（6）在客户端主机上，NFS客户端需要花一定的时间来处理一个用户进程的请求。NFS客户端向服务器主机发出一个RPC调用，然后等待服务器的应答。为了给使用NFS的客户端主机上的用户进程提供更多的并发性，在客户端内核中一般运行着多个NFS客户端，同样具体实现也依赖于操作系统。

NFS服务器 RPC
7.1.4  RPC
因为NFS支持的功能相当多，而不同的功能都会使用不同的程序来启动。每启动一个功能就会启用一些端口来传输数据，因此NFS的功能所对应的端口才没有固定，而是采用随机取用一些未被使用的小于724的端口来作为传输之用。但如此一来又造成客户端要连接服务器时的困扰，因为客户端要知道服务器端的相关端口才能够联机，此时我们需要远程过程调用（RPC）的服务。RPC最主要的功能就是指定每个NFS功能所对应的端口号，并且回报给客户端，让客户端可以连接到正确的端口上。当服务器在启动NFS时会随机选用数个端口，并主动地向RPC注册。因此RPC可以知道每个端口对应的NFS功能。然后RPC固定使用端口111来监听客户端的请求并回报客户端正确的端口，所以可以让NFS的启动更为容易。注意，启动NFS之前，要先启动RPC；否则NFS会无法向RPC注册。另外，重新启动RPC时原本注册的数据会不见，因此RPC重新启动后它管理的所有程序都需要重新启动以重新向RPC注册。
当客户端有NFS文件要存取请求时，它如何向服务器端要求数据？
（1）客户端会向服务器端的RPC（port 111）发出NFS文件存取功能的询问请求。
（2）服务器端找到对应的已注册的NFS daemon端口后会回报给客户端。
（3）客户端了解正确的端口后，就可以直接与NFS守护进程来联机。
由于NFS的各项功能都必须要向RPC注册，因此RPC才能了解NFS服务的各项功能的port number、PID和NFS在主机所监听的IP等，而客户端才能够通过RPC的询问找到正确对应的端口。即NFS必须要有RPC存在时才能成功地提供服务，因此我们称NFS为RPC Server的一种。事实上，有很多这样的服务器都向RPC注册。例如，NIS（Network Information Service）也是RPC Server的一种。所以如图7-3所示，不论是客户端还是服务器端，要使用NFS都需要启动RPC。

图7-3  NFS与RPC服务及操作系统的相关性
NFS协议从诞生到现在为止，已经有多个版本，如NFS V2（rfc794）及NFS V3（rfc1813）（最新的版本是V4（rfc307））。最早，SUN公司曾将NFS V2设计为只使用UDP，主要原因是当时机器的内存、网络速度和CPU的影响，不得不选择对机器负担较轻的方式。而到了NFS V3，SUN公司选择了TCP作为默认的传输方式。V3相对V2的主要区别如下。
（1）文件尺寸。
V2最大只支持32位的文件大小（4 GB），而V3新增加了支持64位文件大小的技术。
（2）文件传输尺寸。
V3没有限定传输尺寸，V2最多只能设定为8 KB，可以使用-rsize and -wsize来设定。
（3）返回完整的信息。
V3增加和完善了返回错误和成功信息，对于服务器的设置和管理能带来很大好处。
（4）增加了对TCP传输协议的支持。
V2只提供了对UDP的支持，在一些高要求的网络环境中有很大限制；V3增加了对TCP的支持。UDP有着传输速度快且非连接传输的便捷特性，但是在传输上没有TCP稳定。当网络不稳定或者黑客入侵时很容易使NFS的性能大幅度降低，甚至使网络瘫痪。所以对于不同情况，网络要有针对性地选择传输协议。NFS的默认传输协议是UDP，然而RHEL 4.0内核提供了对通过TCP的NFS的支持。要通过TCP来使用NFS，在客户端系统上挂载NFS导出的文件系统时包括一个“-o tcp”选项。使用TCP的优点和缺点如下。
 被提高了的连接持久性，因此获得的NFS stale file handles消息就会较少。
 载量较大的网络的性能会有所提高，因为TCP确认每个分组，而UDP只在完成时才确认。
 TCP具有拥塞控制技术（UDP根本没有），在一个拥塞情况严重的网络上，UDP分组是被首先撤销的类型。使用UDP意味着，如果NFS正在写入数据（单元为8 KB的块），所有这8 KB数据都需要被重新传输。由于TCP的可靠性，8 KB数据中只有一部分需要重新传输。
 错误检测。当TCP连接中断（由于服务器停止），客户端就会停止发送数据而开始重新连接。UDP是无连接的，使用它的客户端就会继续给网络发送数据直到服务器重新上线为止。
 TCP的费用在性能方面的提高并不显著。
（5）异步写入特性。
（6）改进了服务器的mount性能。
（7）有更好的I/O写性能。
（8）更强的网络运行效能，使得网络运行更为有效。
（9）更强的灾难恢复功能。
在Linux上，UDP是默认使用的协议。作为服务器别无选择。但作为客户端，可以使用TCP和其他使用TCP的UNIX NFS服务器互联。在局域网中使用UDP较好，因为局域网有比较稳定的网络保证。使用UDP可以带来更好的性能，Linux默认使用V2，但是也可以通过mount option的nfsvers=n选择。NFS使用TCP/IP提供的协议和服务运行于OSI层次模型的应用层，如表7-1所示。
表7-1  OSI层次模型上的NFS



层    数
名    称
功    [...]]]></description>
			<content:encoded><![CDATA[<div id="message4646">
<div id="firstpost">Linux应用：NFS服务器的安装和故障排除<br />
2008-10-22<br />
NFS服务器的工作原理<br />
NFS服务器的安装和故障排除<br />
本章要点<br />
 NFS（Network File System，网络文件系统）服务器的工作原理。<br />
 安装配置NFS服务器。<br />
 NFS的图形化配置。<br />
 NFS的客户端配置。<br />
 NFS服务器的故障排除。<br />
7.1  NFS服务器的工作原理<br />
7.1.1  NFS简介<br />
NFS是分布式计算机系统的一个组成部分，可实现在异构网络上共享和装配远程文件系统。NFS由SUN公司开发，目前已经成为文件服务的一种标准（RFC1904，RFC1813）。其最大功能是可以通过网络让不同操作系统的计算机可以共享数据，所以也可以将其看做是一台文件服务器，如图7-1所示。NFS提供了除Samba之外，Windows与Linux及UNIX与Linux之间通信的方法。<br />
<a href="http://server.ccw.com.cn/resources/2008_10/2008_10_21/200810210511224587812953.jpg" target="_blank"><img src="http://imgs.ccw.com.cn/resources/2008_10/2008_10_21/200810210511224587812953.jpg" border="0" alt="" /></a><br />
图7-1  NFS可作为文件服务器<br />
客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样，可以使用cp、cd、mv、rm及df等与磁盘相关的命令。NFS有属于自己的协议与使用的端口号，但是在传送资料或者其他相关信息时候，NFS服务器使用一个称为“远程过程调用”（Remote Procedure Call，RPC）的协议来协助NFS服务器本身的运行。<br />
7.1.2  为何使用NFS<br />
NFS的目标是使计算机共享资源，在其发展过程中（即20世纪80年代），计算机工业飞速发展，廉价CPU及客户端/服务器技术促进了分布式计算环境的发展。然而当处理器价格下降时，大容量的存储系统相对而言价格仍居高不下。因此必须采用某种机制在充分发挥单个处理器性能的同时使计算机可共享存储资源和数据，于是NFS应运而生。<br />
7.1.3  NFS协议<br />
使用NFS，客户端可以透明地访问服务器中的文件系统，这不同于提供文件传输的FTP协议。FTP会产生文件一个完整的副本；NFS只访问一个进程引用文件部分，并且一个目的就是使得这种访问透明。这就意味着任何能够访问一个本地文件的客户端程序不需要做任何修改，就应该能够访问一个NFS文件。<br />
NFS是一个使用SunRPC构造的客户端/服务器应用程序，其客户端通过向一台NFS服务器发送RPC请求来访问其中的文件。尽管这一工作可以使用一般的用户进程来实现，即NFS客户端可以是一个用户进程，对服务器进行显式调用，而服务器也可以是一个用户进程。因为两个理由，NFS一般不这样实现。首先访问一个NFS文件必须对客户端透明，因此NFS的客户端调用是由客户端操作系统代表用户进程来完成的；其次，出于效率的考虑，NFS服务器在服务器操作系统中实现。如果NFS服务器是一个用户进程，每个客户端请求和服务器应答（包括读和写的数据）将不得不在内核和用户进程之间进行切换，这个代价太大。第3版的NFS协议在1993年发布，图7-2所示为一个NFS客户端和一台NFS服务器的典型结构。<br />
<a href="http://server.ccw.com.cn/resources/2008_10/2008_10_21/200810217371224587856077.jpg" target="_blank"><img src="http://imgs.ccw.com.cn/resources/2008_10/2008_10_21/200810217371224587856077.jpg" border="0" alt="" /></a><br />
图7-2  NFS客户端和NFS服务器的典型结构<br />
（1）访问一个本地文件还是一个NFS文件对于客户端来说是透明的，当文件被打开时，由内核决定这一点。文件被打开之后，内核将本地文件的所有引用传递给名为“本地文件访问”的框中，而将一个NFS文件的所有引用传递给名为“NFS客户端”的框中。<br />
（2）NFS客户端通过其TCP/IP模块向NFS服务器发送RPC请求，NFS主要使用UDP，最新的实现也可以使用TCP。<br />
（3）NFS服务器在端口2049接收作为UDP数据包的客户端请求，尽管NFS可以被实现为使用端口映射器，允许服务器使用一个临时端口，但是大多数实现都是直接指定UDP端口2049。<br />
（4）当NFS服务器收到一个客户端请求时，它将这个请求传递给本地文件访问例程，然后访问服务器主机上的一个本地的磁盘文件。<br />
（5）NFS服务器需要花一定的时间来处理一个客户端的请求，访问本地文件系统一般也需要一部分时间。在这段时间间隔内，服务器不应该阻止其他客户端请求。为了实现这一功能，大多数的NFS服务器都是多线程的——服务器的内核中实际上有多个NFS服务器在NFS本身的加锁管理程序中运行，具体实现依赖于不同的操作系统。既然大多数UNIX内核不是多线程的，一个共同的技术就是启动一个用户进程（常被称为“nfsd”）的多个实例。这个实例执行一个系统调用，使其作为一个内核进程保留在操作系统的内核中。<br />
（6）在客户端主机上，NFS客户端需要花一定的时间来处理一个用户进程的请求。NFS客户端向服务器主机发出一个RPC调用，然后等待服务器的应答。为了给使用NFS的客户端主机上的用户进程提供更多的并发性，在客户端内核中一般运行着多个NFS客户端，同样具体实现也依赖于操作系统。</div>
<div>
<h2>NFS服务器 RPC</h2>
<div id="message4647">7.1.4  RPC<br />
因为NFS支持的功能相当多，而不同的功能都会使用不同的程序来启动。每启动一个功能就会启用一些端口来传输数据，因此NFS的功能所对应的端口才没有固定，而是采用随机取用一些未被使用的小于724的端口来作为传输之用。但如此一来又造成客户端要连接服务器时的困扰，因为客户端要知道服务器端的相关端口才能够联机，此时我们需要远程过程调用（RPC）的服务。RPC最主要的功能就是指定每个NFS功能所对应的端口号，并且回报给客户端，让客户端可以连接到正确的端口上。当服务器在启动NFS时会随机选用数个端口，并主动地向RPC注册。因此RPC可以知道每个端口对应的NFS功能。然后RPC固定使用端口111来监听客户端的请求并回报客户端正确的端口，所以可以让NFS的启动更为容易。注意，启动NFS之前，要先启动RPC；否则NFS会无法向RPC注册。另外，重新启动RPC时原本注册的数据会不见，因此RPC重新启动后它管理的所有程序都需要重新启动以重新向RPC注册。<br />
当客户端有NFS文件要存取请求时，它如何向服务器端要求数据？<br />
（1）客户端会向服务器端的RPC（port 111）发出NFS文件存取功能的询问请求。<br />
（2）服务器端找到对应的已注册的NFS daemon端口后会回报给客户端。<br />
（3）客户端了解正确的端口后，就可以直接与NFS守护进程来联机。<br />
由于NFS的各项功能都必须要向RPC注册，因此RPC才能了解NFS服务的各项功能的port number、PID和NFS在主机所监听的IP等，而客户端才能够通过RPC的询问找到正确对应的端口。即NFS必须要有RPC存在时才能成功地提供服务，因此我们称NFS为RPC Server的一种。事实上，有很多这样的服务器都向RPC注册。例如，NIS（Network Information Service）也是RPC Server的一种。所以如图7-3所示，不论是客户端还是服务器端，要使用NFS都需要启动RPC。<br />
<a href="http://server.ccw.com.cn/resources/2008_10/2008_10_21/200810217881224587910811.jpg" target="_blank"><img src="http://imgs.ccw.com.cn/resources/2008_10/2008_10_21/200810217881224587910811.jpg" border="0" alt="" /></a><br />
图7-3  NFS与RPC服务及操作系统的相关性<br />
NFS协议从诞生到现在为止，已经有多个版本，如NFS V2（rfc794）及NFS V3（rfc1813）（最新的版本是V4（rfc307））。最早，SUN公司曾将NFS V2设计为只使用UDP，主要原因是当时机器的内存、网络速度和CPU的影响，不得不选择对机器负担较轻的方式。而到了NFS V3，SUN公司选择了TCP作为默认的传输方式。V3相对V2的主要区别如下。<br />
（1）文件尺寸。<br />
V2最大只支持32位的文件大小（4 GB），而V3新增加了支持64位文件大小的技术。<br />
（2）文件传输尺寸。<br />
V3没有限定传输尺寸，V2最多只能设定为8 KB，可以使用-rsize and -wsize来设定。<br />
（3）返回完整的信息。<br />
V3增加和完善了返回错误和成功信息，对于服务器的设置和管理能带来很大好处。<br />
（4）增加了对TCP传输协议的支持。<br />
V2只提供了对UDP的支持，在一些高要求的网络环境中有很大限制；V3增加了对TCP的支持。UDP有着传输速度快且非连接传输的便捷特性，但是在传输上没有TCP稳定。当网络不稳定或者黑客入侵时很容易使NFS的性能大幅度降低，甚至使网络瘫痪。所以对于不同情况，网络要有针对性地选择传输协议。NFS的默认传输协议是UDP，然而RHEL 4.0内核提供了对通过TCP的NFS的支持。要通过TCP来使用NFS，在客户端系统上挂载NFS导出的文件系统时包括一个“-o tcp”选项。使用TCP的优点和缺点如下。<br />
 被提高了的连接持久性，因此获得的NFS stale file handles消息就会较少。<br />
 载量较大的网络的性能会有所提高，因为TCP确认每个分组，而UDP只在完成时才确认。<br />
 TCP具有拥塞控制技术（UDP根本没有），在一个拥塞情况严重的网络上，UDP分组是被首先撤销的类型。使用UDP意味着，如果NFS正在写入数据（单元为8 KB的块），所有这8 KB数据都需要被重新传输。由于TCP的可靠性，8 KB数据中只有一部分需要重新传输。<br />
 错误检测。当TCP连接中断（由于服务器停止），客户端就会停止发送数据而开始重新连接。UDP是无连接的，使用它的客户端就会继续给网络发送数据直到服务器重新上线为止。<br />
 TCP的费用在性能方面的提高并不显著。<br />
（5）异步写入特性。<br />
（6）改进了服务器的mount性能。<br />
（7）有更好的I/O写性能。<br />
（8）更强的网络运行效能，使得网络运行更为有效。<br />
（9）更强的灾难恢复功能。<br />
在Linux上，UDP是默认使用的协议。作为服务器别无选择。但作为客户端，可以使用TCP和其他使用TCP的UNIX NFS服务器互联。在局域网中使用UDP较好，因为局域网有比较稳定的网络保证。使用UDP可以带来更好的性能，Linux默认使用V2，但是也可以通过mount option的nfsvers=n选择。NFS使用TCP/IP提供的协议和服务运行于OSI层次模型的应用层，如表7-1所示。<br />
表7-1  OSI层次模型上的NFS</p>
<table border="0" cellspacing="1" cellpadding="4">
<tbody>
<tr>
<td width="180">层    数</td>
<td width="180">名    称</td>
<td width="180">功    能</td>
</tr>
<tr>
<td width="180">1</td>
<td width="180">应用层</td>
<td width="180">NFS</td>
</tr>
<tr>
<td width="180">2</td>
<td width="180">表示层</td>
<td width="180">XDR</td>
</tr>
<tr>
<td width="180">3</td>
<td width="180">会话层</td>
<td width="180">RPC</td>
</tr>
<tr>
<td width="180">4</td>
<td width="180">传输层</td>
<td width="180">UDP，TCP</td>
</tr>
<tr>
<td width="180">5</td>
<td width="180">网络层</td>
<td width="180">IP</td>
</tr>
<tr>
<td width="180">6</td>
<td width="180">数据链路层</td>
<td width="180"></td>
</tr>
<tr>
<td width="180">7</td>
<td width="180">物理层</td>
<td width="180">Ethernet</td>
</tr>
</tbody>
</table>
<p>更多的NFS相关协议信息可以参考如下网页。<br />
（1）<a href="http://www.faqs.org/rfcs/rfc794.html" target="_blank">http://www.faqs.org/rfcs/rfc794.html</a>。<br />
（2）<a href="http://www.tldp.org/HOWTO/NFS-HOWTO/index.html" target="_blank">http://www.tldp.org/HOWTO/NFS-HOWTO/index.html</a>。</div>
<div>
<h2>安装配置NFS服务器</h2>
<div id="message4648">7.2  安装配置NFS服务器</p>
<p>如果在Red Hat Enterprise Linux 5安装时已经默认安装了NFS组件，接下来的工作主要是配置相关文件使服务器提供NFS服务，步骤如下。</p>
<p>（1）设定某台计算机为NFS服务器，并在后台启动相关的守护进程（在“服务配置”中启动）。一般来说，如果NFS服务器要提供服务，必须启动inet、portmap、nfs和mount这4个守护进程并保持在后台运行。</p>
<p>（2）规划服务器分区，从安全等方面定义哪些分区作为要共享的文件系统。</p>
<p>（3）在客户端列表中定义每一台客户机的参数。</p>
<p>（4）修改/etc/exports。</p>
<p>（5）重新启动NFS服务器，启动方法可采用命令行的方式，即/etc/rc.d/init.d/nfs restart。服务器端文件系统的共享设置有3种方法，一是直接修改/etc/exports文件；二是用exports命令来增加和删除目录；三是图形化的配置方法。</p>
<p>7.2.1  了解NFS网络文件的系统结构</p>
<p>NFS网络文件的系统结构包括如下目录结构：</p>
<p>1．/etc/exports</p>
<p>这个文件是NFS的主要配置文件，不过系统并没有默认值，所以这个文件不一定会存在。可能要使用vi主动建立起这个文件，接下来的设定也仅仅是这个文件。</p>
<p>2．/usr/sbin/exportfs</p>
<p>这是维护NFS共享资源的命令，我们可以用其重新分享/etc/exports变更的目录资源，并将NFS Server分享的目录卸载或重新分享等。这个命令是NFS系统中相当重要的一个，至于命令的用法在后面章节再介绍。</p>
<p>3．/usr/sbin/showmount</p>
<p>showmount命令主要用在Client端，可以用来查看NFS共享出来的目录资源。</p>
<p>4．/var/lib/nfs/*tab</p>
<p>在NFS服务器的登录文件都放置到/var/lib/nfs/目录中，在该目录下有两个比较重要的登录文件，一个是etab，主要记录了NFS所分享出来的目录的完整权限设定值；另一个是xtab，记录曾经连接到此NFS主机的相关客户端数据。</p>
<p>7.2.2  配置/etc/exports文件</p>
<p>用户可以把需要共享的文件系统直接编辑到/etc/exports文件中，这样当NFS服务器重新启动时系统就会自动读取/etc/exports文件，从而告诉内核要输出的文件系统和相关的存取权限。在下面的例子中显示了/etc/exports文件中几个条目项的内容，被挂载在/pub目录下的文件系统具有只读访问权限，所有的计算机在访问文件系统的时候不必经过安全检查。编辑/etc/exports文件：</p>
<p># vi /etc/exports</p>
<p>/usr/sys/src -maproot=daemon host2</p>
<p>/usr/ports -ro -network 192.168.1.0</p>
<p>从上面这个例子中可以看出exports文件的格式，首先是定义要共享的文件目录。必须使用绝对路径，而不能使用符号链接。然后设置对这个目录进行访问限制的参数，用于保证安全性。在第1行设置中，将/usr/sys/src目录共享出去。但限制客户机上的root用户等价于本机上的daemon用户，以避免客户机上的root用户拥有这个服务器上的root权限进行非法操作。此后的host2参数是主机名，从而限制只有host2才能共享这个/usr/sys/src目录；第2行设置共享/usr/ports目录，但限制为只允许读取，并且也只有网络上的192.168.1.0计算机才能访问这个共享目录。</p>
<p>（1）rw：可读写权限。</p>
<p>（2）ro：只读权限。</p>
<p>（3）no_root_squash：当登录NFS主机使用共享目录的使用者是root时，其权限将被转换成为匿名使用者，通常它的UID与GID都会变成nobody身份。</p>
<p>（4）root_squash；如果登录NFS主机使用共享目录的使用者是root，那么对于这个共享的目录来说，它具有root的权限。</p>
<p>（5）all_squash：忽略登录NFS使用者的身份，其身份都会被转换为匿名使用者，通常即nobody。</p>
<p>（6）anonuid：通常为nobody，也可以自行设定这个UID的值，UID必须存在于/etc/passwd中。</p>
<p>（7）anongid：同anonuid，但是变为Group ID。</p>
<p>（8）sync：同步写入资料到内存与硬盘中。</p>
<p>（9）async：资料会先暂存于内存中，而非直接写入硬盘。</p>
<p>主机可以使用以下格式。</p>
<p>（1）单个机器：一个全限定域名（能够被服务器解析）、主机名（能够被服务器解析）或IP地址。</p>
<p>（2）使用通配符来指定的机器系列，使用 * 或 ？字符来指定一个字符串匹配。IP地址中不使用通配符。如果反向DNS查询失败，它们可能会碰巧有用。在完整域名中指定通配符时，点（.）不包括在通配符中。例如，*.example.com包括one.example.com，但不包括one.two.example.com.。</p>
<p>（3）IP网络：使用a.b.c.d/z，a.b.c.d是网络，z是子网掩码中的位数（如192.168.0.0/24）。另一种可以接受的格式是a.b.c.d/netmask，a.b.c.d是网络，netmask是子网掩码（如192.168.70.8/255.255.255.0）。</p>
<p>激活服务portmap和nfsd</p>
<p>7.2.3  激活服务portmap和nfsd</p>
<p>命令如下：</p>
<p># /etc/rc.d/init.d/portmap  start</p>
<p># /etc/rc.d/init.d/nfs  start　　</p>
<p>portmap激活之后，就会出现一个端口号为111的sunrpc的服务。至于nfs则会激活至少两个以上的系统守护进程，然后就开始监听Client PC的需求。使用cat/var/log/messages可以查看操作是否成功：</p>
<p>#cat /var/log/messages</p>
<p>Nov 16 15:04:45 cao portmap: portmap startup succeeded</p>
<p>Nov 16 15:04:53 cao nfs: Starting NFS services:  succeeded</p>
<p>Nov 16 15:04:54 cao nfs: rpc.rquotad startup succeeded</p>
<p>Nov 16 15:04:54 cao nfs: rpc.mountd startup succeeded</p>
<p>Nov 16 15:04:54 cao nfs: rpc.nfsd startup succeeded</p>
<p>7.2.4  exportfs命令</p>
<p>如果修改了/etc/exports文件后不需要重新激活nfs，只要重新扫描一次/etc/exports文件，并且重新将设定加载即可：</p>
<p># exportfs [-aruv]</p>
<p>参数说明如下。</p>
<p>（1）-a：全部挂载（或卸载）/etc/exports文件内的设定。</p>
<p>（2）-r：重新挂载/etc/exports中的设置，此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。</p>
<p>（3）-u：卸载某一目录。</p>
<p>（4）-v：在export时将共享的目录显示在屏幕上。</p>
<p>7.2.5  检验目录/var/lib/nfs/xtab</p>
<p>检验所共享的目录内容，查看/var/lib/nfs/xtab文件：</p>
<p># vi /var/lib/nfs/xtab</p>
<p>/home/cao  192.168.0.1(rw,sync,wdelay,hide,secure,root_squash,</p>
<p>no_all_squash,subtree_check,secure_locks, mapping=identity,anonuid=-2,</p>
<p>anongid=-2)</p>
<p>此即/home/cao这个共享出去的目录预设NFS中的属性。</p>
<p>7.2.6  showmount</p>
<p>showmount命令如下：</p>
<p># showmount [-ae] hostname</p>
<p>参数说明如下。</p>
<p>（1）-a或-all：以host<img src="http://www.oschina.net/forum/editor/images/smilies/default/22.gif" alt="" />ir这样的格式来显示客户主机名和挂载点目录。</p>
<p>（2）-d或-directories：仅显示被客户挂载的目录名。</p>
<p>（3）-e或-exports：显示NFS服务器的输出清单。</p>
<p>（4）-h或-help：显示帮助信息。</p>
<p>（5）-v或-version：显示版本信息。</p>
<p>（6）&#8211;no-headers：禁止输出描述头部的信息。</p>
<p>当要扫描某一主机所提供的NFS共享的目录时，使用showmount -e IP（或主机名称hostname）即可。</p></div>
<div>
<div id="message4649">观察激活的端口号</p>
<p>7.2.7  观察激活的端口号<br />
命令如下：<br />
# netstat -utln<br />
Active Internet connections (only SERVERs)<br />
Proto Recv-Q Send-Q Local Address    Foreign Address        State<br />
tcp        0      0 0.0.0.0:111    0.0.0.0              LISTEN &lt;== portmap<br />
tcp        0      0 0.0.0.017    0.0.0.0              LISTEN &lt;== rpc.xxxx<br />
tcp        0      0 0.0.0.0:1266    0.0.0.0              LISTEN &lt;== rpc.xxxx<br />
udp        0      0 0.0.0.0:2049    0.0.0.0　　　　　　　　　&lt;== nfs 的端口<br />
udp        0      0 0.0.0.014    0.0.0.0　　　　　　　　　&lt;== rpc.xxxx<br />
udp        0      0 0.0.0.0:1327    0.0.0.0:*　　　　　　　　　&lt;== rpc.xxxx<br />
udp        0      0 0.0.0.0:111      0.0.0.0:*　　　　　　　　　&lt;== portmap<br />
nfs所开启的端口是2049，其他端口是RPC Server其他程序（例如rpc.mountd、rpc.rquotad及rpc.nfsd.）随机产生的。即端口号不会是固定的，每次restart nfs都会得到不一样的端口号。<br />
7.2.8  启动和停止NFS服务器<br />
在导出NFS文件系统的服务器中，nfs服务必须在运行。使用以下命令来查看NFS守护进程的状态：<br />
/sbin/service nfs status<br />
使用以下命令来启动NFS守护进程：<br />
/sbin/service nfs start<br />
使用以下命令来停止NFS守护进程：<br />
/sbin/service nfs stop<br />
要在引导时启动nfs服务，使用以下命令：<br />
/sbin/chkconfig &#8211;level 345 nfs on<br />
还可以使用ntsysv或服务配置工具来配置在引导时启动这些服务。<br />
7.3  NFS的图形化配置<br />
在Red Hat Enterprise Linux 5系统中，如果要配置NFS服务器，也可以使用NFS图形化配置方法，这种方法简单明了且方便快捷。</p>
<p><strong>NFS<strong>服务器</strong>配置窗口</strong></p>
<p><strong>7.3.1  NFS服务器配置窗口</strong><br />
在shell提示符下输入system-config-nfs命令，打开“NFS服务器配置”窗口，如图7-4所示。<br />
<a href="http://server.ccw.com.cn/resources/2008_10/2008_10_21/200810216651224588022138.jpg" target="_blank"><img src="http://imgs.ccw.com.cn/resources/2008_10/2008_10_21/200810216651224588022138.jpg" border="0" alt="" /></a><br />
图7-4  “NFS服务器配置”窗口<br />
7.3.2  添加NFS共享<br />
在“NFS服务器配置”窗口中，如果要添加共享目录，可单击工具栏中的“添加”按钮打开“添加NFS共享”对话框，如图7-5所示。<br />
<a href="http://server.ccw.com.cn/resources/2008_10/2008_10_21/200810212381224588057044.jpg" target="_blank"><img src="http://imgs.ccw.com.cn/resources/2008_10/2008_10_21/200810212381224588057044.jpg" border="0" alt="" /></a><br />
图7-5  “添加NFS共享”对话框<br />
“基本”选项卡中的选项如下。<br />
（1）“目录”文本框：指要共享的目录，如/tmp/。<br />
（2）“主机”文本框：指要共享目录的主机。<br />
（3）“基本权限”选项组：指定共享目录应该有“只读”权限还是“读/写”权限。<br />
首先在“目录”文本框中输入要共享的目录路径，或单击“浏览”按钮，打开“选择一个目录”对话框，在其中可选择一个系统目录来共享。<br />
返回到“添加NFS共享”对话框，在“主机”文本框中输入主机名（即lo<a href="http://topic.ccw.com.cn/corpCenter/249.html" target="_blank"><strong>ca</strong></a>lhost或者输入NFS服务器的IP地址）作为NFS服务器名。在“基本权限”中为共享目录选择一个权限，系统默认是“只读”权限。<br />
7.3.3  常规选项<br />
返回到“添加NFS共享”对话框，单击“常规选项”标签，打开“常规选项”选项卡，如图7-6所示。<br />
<a href="http://server.ccw.com.cn/resources/2008_10/2008_10_21/200810219741224588095059.jpg" target="_blank"><img src="http://imgs.ccw.com.cn/resources/2008_10/2008_10_21/200810219741224588095059.jpg" border="0" alt="" /></a><br />
图7-6  “常规选项”选项卡<br />
在该选项卡中，用户可根据需要选中相应的复选框，一般保留系统默认值即可。各个复选框的功能如下。<br />
（1）允许来自高于724的端口的连接：在号码小于724的端口上启动的服务必须以根用户身份启动，选择该复选框来允许根用户以外的用户来启动NFS服务。该复选框和insecure相对应。<br />
（2）允许不安全的文件锁定：不需要锁定请求，该复选框和insecure_locks相对应。<br />
（3）禁用子树检查：如果某文件系统的子目录被导出，但是整个文件系统没有被导出，服务器会检查所请求的文件是否在导出的子目录中。这种检查叫做“子树检查”（subtree checking），选择这个复选框来禁用子树检查。如果整个文件系统被导出，选择该复选框检查可以提高传输率。该复选框和no_subtree_check相对应。<br />
（4）按要求同步写操作：默认被启用，该复选框不允许服务器在请求被写入磁盘前回复这些请求。该复选框和sync相对应。如果清除该复选框，async选项会被使用。<br />
（5）立即强制同步写操作：不推迟写入磁盘的操作，该复选框和no_wdelay相对应。<br />
7.3.4  用户访问<br />
在“添加NFS共享”对话框中，单击“用户访问”标签，打开“用户访问”选项卡，如图7-7所示。<br />
各复选框的功能如下。<br />
（1）把远程根用户当做本地根用户：按照默认设置，根用户的用户ID和组群ID都是0。根权限压缩（root Squashing）把用户ID 0和组群ID 0映射为匿名的用户和组群ID，因此客户端上的根用户就不会在NFS服务器上具备根特权。如果选择这个复选框，根用户就不会被映射为匿名用户，客户端上的根用户就会对导出的目录拥有根特权。选择这个复选框会大大降低系统的安全性，除非绝对必要；否则不要选择。该复选框和no_root_squash相对应。<br />
<a href="http://server.ccw.com.cn/resources/2008_10/2008_10_21/200810219421224588133886.jpg" target="_blank"><img src="http://imgs.ccw.com.cn/resources/2008_10/2008_10_21/200810219421224588133886.jpg" border="0" alt="" /></a><br />
图7-7  “用户访问”选项卡<br />
（2）把所有客户用户当作匿名用户：如果选择该复选框，所有用户和组群ID都会被映射为匿名用户。该复选框和all_squash相对应。<br />
（3）为匿名用户指定本地用户ID：如果把所有客户用户作为匿名用户选择，这个复选框会要求为匿名用户指定一个用户ID。该复选框和corresponds to anonuid相对应。<br />
（4）为匿名用户指定本地组群ID：如果把所有客户用户当做匿名用户选择，这个复选框会要求为匿名用户指定一个组群ID。该复选框和corresponds to anongid相对应。</div>
<div>
<h2>编辑NFS共享</h2>
<div id="message4650">7.3.5  编辑NFS共享<br />
在“NFS服务器配置”窗口中，选择要编辑的NFS共享目录和文件，然后单击“属性”按钮。若要删除某个现存NFS共享，可从列表中选中它，然后单击“删除”按钮。单击“确定”按钮从列表中添加、编辑或删除某个NFS共享后，更改就会立即生效。服务器守护进程被重新启动，原有的配置文件被保存为/etc/exports.bak，新的配置文件被写入/etc/exports。NFS服务器图形化配置工具可直接读写/etc/exports配置文件，因此这个文件在使用该工具后仍可以手工修改，修改该文件后也可以使用这个工具。<br />
7.4  NFS的客户端配置<br />
配置NFS服务器以后，网络中不同的计算机在使用该文件系统之前必须先挂载该文件系统。用户既可以通过mount命令挂载，也可以通过在/etc/fstab中加入条目项实现，/etc/fstab中的条目项中包括一个NFS的挂载类型。NFS文件系统的名称由文件所在的主机名加上被挂载目录的路径名组成，两个部分通过冒号分开。例如，computer1:/home/project指示一个文件系统被挂载在计算机computer1中的/home/project中。<br />
这里推荐客户端使用mount命令来挂载，下面主要挂载的相关知识和方法，然后简单介绍直接编辑/etc/fstab文件的方法。<br />
7.4.1  使用mount命令<br />
用户同样可以在NFS的条目项中修改多个NFS特定的挂载选项，例如，可以指定往返数据包的大小和计算机等待系统响应的时间大小，或者指定一个文件系统是被硬挂载（hard-mounted）还是软挂载（soft-mounted）。对硬挂载文件系统来说，如果因为某种原因远程系统的响应失败，计算机将会持续地尝试建立连接；对软挂载文件系统来说，同样情况下，在指定的时间间隔后计算机将会放弃尝试建立连接而发送一个错误消息。默认采用硬挂载文件系统，系统硬挂载尝试失败时，对用户输入的响应也会停止。正是因为这样，有的用户更喜欢采用软挂载，它会使系统在尝试挂载失败后停止尝试。<br />
mount命令的格式如下：<br />
mount[-t vfstype] [-o  options] device dir<br />
mount命令参数非常多，如下为与NFS相关的参数。<br />
（1）-a：把/etc/fstab中列出的路径全部挂载。<br />
（2）-t：需要mount的类型，如nfs等。<br />
（3）-r：将mount的路径定为read only。<br />
（4）-v mount：过程的每一个操作都有message传回到屏幕上。<br />
（5）rsize=n：在NFS服务器读取文件时NFS使用的字节数，默认值是1 024个字节。<br />
（6）wsize=n：向NFS服务器写文件时NFS使用的字节数，默认值是1 024个字节。<br />
（7）timeo=n：从超时后到第1次重新传送占用的1/7秒的数目，默认值是7/7秒。<br />
（8）retry=n：在放弃后台mount操作之前可以尝试的次数，默认值是7 000次。<br />
（9）soft：使用软挂载的方式挂载系统，若Client的请求得不到回应，则重新请求并传回错误信息。<br />
（10）hard：使用硬挂载的方式挂载系统，该值是默认值，重复请求直到NFS服务器回应。<br />
（11）intr：允许NFS中断文件操作和向调用它的程序返回值，默认不允许文件操作被中断。<br />
（12）fg：一直在提示符下执行重复挂载。<br />
（13）bg：如果第1次挂载文件系统失败，继续在后台尝试执行挂载，默认值是失败后不在后台处理。<br />
（14）tcp：对文件系统的挂载使用TCP，而不是默认的UDP。<br />
说明：mount NFS服务器的另一个重要参数是hard（硬）mount或soft（软）mount。<br />
采用hard mount，NFS客户机会不断地尝试与NFS服务器连接（在后台一般不会给出任何提示信息），直到挂载上为止。<br />
采用soft mount，会在前台尝试与NFS服务器连接，当收到错误信息后终止mount尝试，并给出相关信息。<br />
例如，hard mount：<br />
# mount -t nfs –o hard 192.168.1.4:/home/cao /home/nfs/cao<br />
使用hard还是soft主要取决于访问的信息。例如，要查看NFS服务器的视频文件，不会希望由于一些意外的情况（如网络速度变得很慢）而使系统输出大量的错误信息。如果此时使用hard方式，系统就会等待，直到能够重新与NFS服务器建立连接传输信息。另外，如果是非关键数据，也可以使用hard方式，如FTP一些数据等，这样在远程机器暂时连接不上或关闭时就不会挂起会话过程。<br />
扫描可以使用的NFS Server目录</p>
<p>7.4.2  扫描可以使用的NFS Server目录<br />
在客户端本地建立mount point，使用mount挂载远程主机共享的目录。假设主机名是“<a href="http://www.cao.net/" target="_blank">www.cao.net</a>”，使用showmount查看NFS Server可以共享的目录，然后将/home/public挂载在/home/ nfs/public下：<br />
# showmount -e <a href="http://www.cao.net/" target="_blank">www.cao.net</a><br />
Export list for localhost:<br />
/tmp        *<br />
/home/linux  *.cao.net<br />
/home/public (everyone)<br />
/home/cao  192.168.1.4<br />
7.4.3  卸载NFS网络文件系统<br />
卸载NFS网络文件系统可以使用unmount命令：<br />
umount /home/nfs/public<br />
# unmount –a #取消所有已经挂载在mount上的路径<br />
如果关机时NFS服务器中还有客户联机，建议在关机之前先关闭portmap与nfsd系统服务。如果无法正确关闭，那么应执行命令“netstat -utlp”找出PID。然后使用kill命令杀死进程，这样才能正常关机。<br />
7.4.4  应用实例<br />
本节介绍如何挂载/home/cao目录。<br />
首先建立这个目录，然后利用mount指令来挂载NFS服务器的/home/cao目录：<br />
# mkdir -p /home/nfs/cao<br />
# mount -t nfs 192.168.1.4:/home/cao/home/nfs/cao<br />
使用df命令查看挂载的目录，目录中已经包括NFS服务器IP地址的共享目录，如图7-8所示。<br />
<a href="http://server.ccw.com.cn/resources/2008_10/2008_10_21/200810217971224588185651.jpg" target="_blank"><img src="http://imgs.ccw.com.cn/resources/2008_10/2008_10_21/200810217971224588185651.jpg" border="0" alt="" /></a><br />
图7-8  挂载NFS服务器的共享目录<br />
挂载后，只要进入/home/nfs/cao目录，即进IP地址为“192.168.1.4”那台NFS服务器的/home/cao目录中。</div>
<div>
<div id="message4651">其他挂载NFS文件系统的方法</p>
<p>7.4.5  其他挂载NFS文件系统的方法<br />
1．使用/etc/fstab来挂载NFS<br />
要挂载其他机器上的NFS共享的另一种方法是在/etc/fstab文件中添加一行，在这一行中必须声明NFS服务器的主机名、要导出的目录，以及要挂载NFS共享的本地机器目录。必须是根用户才能修改/etc/fstab文件。<br />
/etc/fstab中每行的一般语法如下所示：<br />
server:/usr/local/pub    /pub  nfs    rsize=8192,wsize=8192,timeo=14,intr<br />
挂载点/pub在客户端机器上必须存在。在客户端系统的/etc/fstab文件中添加这一行后在shell提示下键入命令mount，以及将会从服务器中挂载的挂载点/pub。<br />
2．使用autofs来挂载NFS<br />
挂载NFS共享的第3种方法是使用autofs，它使用automount守护进程来管理挂载点，只在文件系统被访问时才动态地挂载。<br />
autofs咨询主映射配置文件/etc/auto.master来决定要定义哪些挂载点，然后使用适用于各个挂载点的参数来启动automount守护进程。主映射配置中的每一行都定义一个挂载点，一个分开的映射文件定义在该挂载点下要挂载的文件系统。如/etc/auto.misc文件可能会定义/misc目录中的挂载点，这种关系在/etc/auto.master文件中会被定义。<br />
auto.master文件中的每个项目都有3个字段，第1个字段是挂载点；第2个字段是映射文件的位置；第3个字段可选，可以包括超时数值之类的信息。<br />
例如，要在机器上的/misc/myproject挂载点上挂载远程机penguin.example.net中的/project52目录，在auto.master文件中添加以下行：<br />
/misc  /etc/auto.misc &#8211;timeout 60<br />
在/etc/auto.misc文件中添加以下行：<br />
myproject  -rw,soft,intr,rsize=8192,wsize=8192 penguin.example.net:/proj52<br />
/etc/auto.misc中的第1个字段是/misc子目录的名称，该目录被automount动态地创建，它不应该在客户端机器上实际存在；第2个字段包括挂载选项，如rw代表读写访问权，第3个字段是要导出的NFS的位置，包括主机名和目录。<br />
autofs是一种服务，要启动这项服务，在shell提示下键入以下命令：<br />
/sbin/service autofs restart<br />
要查看活跃的挂载点，在shell提示下键入以下命令：<br />
/sbin/service autofs status<br />
如果在autofs运行时修改了/etc/auto.master配置文件，则必须在shell提示下键入以下命令来通知automount守护进程重新载入配置文件：<br />
/sbin/service autofs reload<br />
NFS服务器的故障排除</p>
<p>7.5  NFS服务器的故障排除<br />
7.5.1  故障排除思路<br />
NFS出现了故障，可以从以下几个方面着手检查。<br />
（1）NFS客户机和服务器的负荷是否太高，服务器和客户端之间的网络是否正常。<br />
（2）/etc/exports文件的正确性。<br />
（3）必要时重新启动NFS或portmap服务。<br />
运行下列命令重新启动portmap和NFS：<br />
service portmap restart<br />
service nfs start<br />
（4）检查客户端中的mount命令或/etc/fstab的语法是否正确。<br />
（5）查看内核是否支持NFS和RPC服务。<br />
普通的内核应有的选项为CONFIG_NFS_FS=m、CONFIG_NFS_V3=y、CONFIG_ NFSD=m、CONFIG_NFSD_V3=y和CONFIG_SUNRPC=m。<br />
我们可以使用常见的网络连接和测试工具ping及tracerroute来测试网络连接及速度是否正常，网络连接正常是NFS作用的基础。rpcinfo命令用于显示系统的RPC信息，一般使用-p参数列出某台主机的RPC服务。用rpcinfo-p命令检查服务器时，应该能看到portmapper、status、mountd nfs和nlockmgr。用该命令检查客户端时，应该至少能看到portmapper服务。<br />
7.5.2  NFS错误信息<br />
NFS错误信息如表7-2所示。</p>
<table border="0" cellspacing="1" cellpadding="4">
<tbody>
<tr>
<td width="158">错误信息</td>
<td width="321">描    述</td>
</tr>
<tr>
<td width="158">Too many levels of remote in path</td>
<td width="321">试图挂载一个存在的文件系统</td>
</tr>
<tr>
<td width="158">Permission den<a href="http://wiki.ccw.com.cn/IE" target="_blank"><strong>ie</strong></a>d</td>
<td width="321">NFS服务器不让客户机挂接，也可能是因为用户在服务器上不存在</td>
</tr>
<tr>
<td width="158">No such host</td>
<td width="321">通常是DNS配置错误</td>
</tr>
<tr>
<td width="158">No such file or directory</td>
<td width="321">通常是访问的目录不存在</td>
</tr>
<tr>
<td width="158">NFS server is not responding</td>
<td width="321">通常是NFS已经超过负载或者NFS已经停止工作</td>
</tr>
<tr>
<td width="158">Stale file handle</td>
<td width="321">在NFS客户端关闭之前客户端访问的文件被删除</td>
</tr>
<tr>
<td width="158">Fake hostname</td>
<td width="321">Forward和reverse的DNS记录在NFS客户端下不存在</td>
</tr>
</tbody>
</table>
<p>7.5.3  使用nfsstat命令查看NFS服务器状态<br />
nfsstat命令显示关于NFS和到内核的远程过程调用（RPC）接口的统计信息，也可以使用该命令重新初始化该信息。如果未给定标志，默认是nfsstat -csnr命令。使用该命令显示每条信息，但不能重新初始化任何信息。</p></div>
<div>
<div id="message4652">nfsstat命令的主要参数如下。</p>
<p>（1）-b：显示NFS V4服务器的其他统计信息。</p>
<p>（2）c：只显示客户机端的NFS和RPC信息，允许用户仅查看客户机数据的报告。nfsstat命令提供关于被客户机发送和拒绝的RPC和NFS调用数目的信息。</p>
<p>要只显示客户机NFS或者RPC信息，将该参数与-n或者-r参数结合。</p>
<p>（3）-d：显示与NFS V4授权相关的信息。</p>
<p>（4）-g：显示RPCSEC_GSS信息。</p>
<p>（5）-m：显示每个NFS文件系统的统计信息，该文件系统和服务器名称、地址、安装标志、当前读和写大小，以及重新传输计数</p>
<p>（6）-n：为客户机和服务器显示NFS信息。要只显示NFS客户机或服务器信息，将该参数与-c和-s参数结合。</p>
<p>（7）-r：显示RPC信息。</p>
<p>（8）-s：显示服务器信息。</p>
<p>（9）-t：显示与NFS标识映射子系统的转换请求相关的统计信息，要只显示NFS客户机或服务器信息，将-c和-s&lt;br /&gt;选项结合。</p>
<p>（10）-4：当与-c、-n、-s或-z参数组合使用时，将包含NFS V4客户机或服务器的信息，以及现有的NFS V2和V3数据&lt;br /&gt;。</p>
<p>（11）-z：重新初始化统计信息。该参数仅供root用户使用，并且在显示上面的标志后可以和那些标志中的任何一个组合到&lt;br /&gt;统计信息的零特殊集合。</p>
<p>要显示关于客户机发送和拒绝的RPC和NFS调用数目的信息，输入：</p>
<p>nfsstat -c</p>
<p>要显示和打印与客户机NFS调用相关的信息，输入如下命令：</p>
<p>nfsstat -cn</p>
<p>要显示和打印客户机和服务器的与RPC调用相关的信息，输入如下命令：</p>
<p>nfsstat -r</p>
<p>要显示关于服务器接收和拒绝的RPC和NFS调用数目的信息，输入如下命令：</p>
<p>nfsstat –s</p>
<p>7.5.4  NFS典型故障排除步骤</p>
<p>1．个别客户端无法从一个或多个服务器导入</p>
<p>（1）在客户端中检查下列内容。</p>
<p>验证在客户端中是否有该本地目录，如果不存在，使用mkdir创建。例如，如下命令：</p>
<p># mkdir /opt/adobe</p>
<p>检查局域网电缆是否没有损坏并已连接上，所有的连接是否有效。</p>
<p>/etc/hosts是否存在并且有“相关信息”。</p>
<p>/etc/fstab是否存在并且有“相关信息”，同时所有条目是否仍然指向服务器中的有效目录。</p>
<p>/etc/resolv.conf是否存在并且有“相关信息”（仅适于DNS）。</p>
<p>（2）在服务器中检查下列内容。</p>
<p>客户端尝试挂接的目录是否已存在并在配置文件中列出。</p>
<p>客户端是否具有挂接文件系统的权限。</p>
<p>相关信息说明如下。</p>
<p>/etc/hosts、/etc/fstab和/etc/resolv.conf中必须包含下列条目：</p>
<p> /etc/hosts：系统主机名和IP地址，例如：</p>
<p>12.0.14.123 fredsys fredsys.mysite.myco.com</p>
<p>类似以下的条目：</p>
<p>127.0.0.1  localhost    loopback #[no SMTP]</p>
<p> /etc/fstab：对于标准挂接，每个导入的文件系统对应一个条目。</p>
<p> /etc/resolv.conf（仅域名服务[DNS]需要使用）：系统所在域的名称，例如：</p>
<p>domain mysite.myco.com</p>
<p>至少一个名称服务器，例如：</p>
<p>nameserver 12.0.14.165</p>
<p>2．所有客户端都无法从指定的服务器导入</p>
<p>在服务器上执行下列步骤。</p>
<p>（1）确保服务器已启动且正在运行，并且服务器和客户端之间的局域网连接有效（是否可以从服务器ping通连接客户端，并且反之也可）。</p>
<p>（2）确保客户端要挂接的文件系统已在/etc/fstab中列出。</p>
<p>（3）重新启动NFS服务器。</p>
<p>如果这些补救方法都失败，而配置也正确（执行了上述所有测试），则服务器可能没有正确引导，应重新引导服务器。</p>
<p>3．其他NFS常见故障排除</p>
<p>（1）当mount NFS文件系统时，如果错误信息是“Permission denied”，则表示NFS服务器不允许客户机挂接。一般可以用更改服务端上的/etc/exports文件来解决问题，使用exportfs-rv命令重新导出文件系统。</p>
<p>（2）如果出现的错误是“Program not registed”，则是NFS服务可能没有启动或者运行不正常，最常用的解决方法是重新启动NFS服务。</p>
<p>（3）如果出现“RPC：Unable to receive”，则可能是服务端没有启动portmap服务；如果已经启动，则可能是被防火墙所屏蔽。</p>
<p>（4）挂载文件系统的时候，客户端没有任何反应，则可能为客户端没有启动portmap服务。</p>
<p>（5）在NFS服务器中共享目录输出失败。</p>
<p>如果使用图形化窗口对共享目录进行配置，设置后必须测试共享目录的输出，以验证配置是否正确，通常图形化窗口不会报告配置错误。</p>
<p>使用“exportfs  -v  -a”命令检查/etc/exports文件中设置的共享目录是否能够正常输出，其中选项“-v”表示以冗余模式显示，即显示每一步的细节。</p>
<p>（6）显示“设备正忙”无法卸载。</p>
<p>在使用umount命令卸载远程NFS共享目录时，出现“设备正忙”等卸载失败消息。通常可能的原因是有一个进程仍然在使用这个目录，可以使用lsof命令来查看是否有进程正在使用该共享目录。</p>
<p>（7）挂载失败。</p>
<p>如果在挂载NFS共享目录时，客户端提示“RPC（Remote Procedure Call）failed”，即远程过程调用失败消息，则很可能是因为服务器上带有约束性质的防火墙错误地阻止了NFS客户端挂载NFS共享，即防火墙封锁了NFS或者RPC端口。为了解决这个问题，可以使用iptable命令打开服务器上的111（RPC）和2049（NFS）端口，允许NFS客户端访问服务器。</p>
<p>（8）NFS请求挂起。</p>
<p>如果客户端正在执行写操作，而服务器无法响应或者在网络上变得不可访问，那么在默认情况下（使用hard选项进行挂载）客户端进程将挂起直到写操作完成。如果不中止写操作，进程就不能从请求中退出。为了避免NFS请求挂起，在网络状况不稳定情况下可以在挂载目录时指定soft选项以允许操作因超时而退出，或者指定intr选项以允许用户在命令行上通过按下Ctrl+C组合键退出挂起的操作。</p>
<p>（9）NFS挂载在引导时挂起。</p>
<p>如果在/etc/fstab文件中设置了自动挂载NFS，但在系统引导时NFS共享目录暂时不可用，那么默认情况下引导进程将进入等待状态，直到NFS目录变得可用为止。如果所需等待的NFS目录是系统必须的，那么这种等待可能还可以接受。然而在很多情况下，用户只想让系统把挂载请求放在后台并继续引导系统。可以把bg选项添加到/etc/fstab文件中，这样在首次挂载请求超时之后，挂载请求会转入后台，系统继续引导。当需要在前台挂载NFS共享目录时可以将fg选项添加到/etc/fstab文件的挂载选项中。</p>
<p>7.6  本章小结</p>
<p>NFS（Network File System，网络文件系统）是分布式计算机系统的一个组成部分，可实现在异构网络上共享和装配远程文件系统。本章介绍了NFS服务器的工作原理，安装配置NFS服务器的方法，NFS服务器的图形化配置过程，NFS的客户端配置和NFS服务器的故障排除方法。</p></div>
</div>
</div>
</div>
</div>
</div>
<p>&lt;最后编辑开始&gt;</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/106/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下svn命令大全</title>
		<link>http://www.gzv8.com/archives/104</link>
		<comments>http://www.gzv8.com/archives/104#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:35:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=104</guid>
		<description><![CDATA[1、将文件checkout到本地目录
svn checkout path（path是服务器上的目录）
例如：svn checkout svn://192.168.1.1/pro/domain
简写：svn co
2、往版本库中添加新的文件
svn add file
例如：svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁，就使用–no-unlock开关)
例如：svn commit -m “add test file for my test“ test.php
简写：svn ci
4、加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如：svn lock -m “lock test file“ test.php
svn unlock PATH
5、更新到某个版本
svn update -r m path
例如：
svn update如果后面没有目录，默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新，于版本库同步。如果在提交的时候提示过期的话，是因为冲突，需要先update，修改文件，然后清除svn resolved，最后再提交commit)
简写：svn up
6、查看文件或者目录状态
1）svn status [...]]]></description>
			<content:encoded><![CDATA[<p>1、将文件checkout到本地目录<br />
svn checkout path（path是服务器上的目录）<br />
例如：svn checkout svn://192.168.1.1/pro/domain<br />
简写：svn co<br />
2、往版本库中添加新的文件<br />
svn add file<br />
例如：svn add test.php(添加test.php)<br />
svn add *.php(添加当前目录下所有的php文件)<br />
3、将改动的文件提交到版本库<br />
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁，就使用–no-unlock开关)<br />
例如：svn commit -m “add test file for my test“ test.php<br />
简写：svn ci<br />
4、加锁/解锁<br />
svn lock -m “LockMessage“ [--force] PATH<br />
例如：svn lock -m “lock test file“ test.php<br />
svn unlock PATH<br />
5、更新到某个版本<br />
svn update -r m path<br />
例如：<br />
svn update如果后面没有目录，默认将当前目录以及子目录下的所有文件都更新到最新版本。<br />
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)<br />
svn update test.php(更新，于版本库同步。如果在提交的时候提示过期的话，是因为冲突，需要先update，修改文件，然后清除svn resolved，最后再提交commit)<br />
简写：svn up<br />
6、查看文件或者目录状态<br />
1）svn status path（目录下的文件和子目录的状态，正常状态不显示）<br />
【?：不在svn的控制中；M：内容被修改；C：发生冲突；A：预定加入到版本库；K：被锁定】<br />
2）svn status -v path(显示文件和子目录状态)<br />
第一列保持相同，第二列显示工作版本号，第三和第四列显示最后一次修改的版本号和修改人。<br />
注：svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的，原因是svn在本地的.svn中保留了本地版本的原始拷贝。<br />
简写：svn st<br />
7、删除文件<br />
svn delete path -m “delete test fle“<br />
例如：svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”<br />
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘，推荐使用这种<br />
简写：svn (del, remove, rm)<br />
8、查看日志<br />
svn log path<br />
例如：svn log test.php 显示这个文件的所有修改记录，及其版本号的变化<br />
9、查看文件详细信息<br />
svn info path<br />
例如：svn info test.php<br />
10、比较差异<br />
svn diff path(将修改的文件与基础版本比较)<br />
例如：svn diff test.php<br />
svn diff -r m:n path(对版本m和版本n比较差异)<br />
例如：svn diff -r 200:201 test.php<br />
简写：svn di<br />
11、将两个版本之间的差异合并到当前文件<br />
svn merge -r m:n path<br />
例如：svn merge -r 200:205 test.php（将版本200与205之间的差异合并到当前文件，但是一般都会产生冲突，需要处理一下）<br />
12、SVN 帮助<br />
svn help<br />
svn help ci<br />
——————————————————————————<br />
以上是常用命令，下面写几个不经常用的<br />
——————————————————————————<br />
13、版本库下的文件和目录列表<br />
svn list path<br />
显示path目录下的所有属于版本库的文件和目录<br />
简写：svn ls<br />
14、创建纳入版本控制下的新目录<br />
svn mkdir: 创建纳入版本控制下的新目录。<br />
用法: 1、mkdir PATH…<br />
2、mkdir URL…<br />
创建版本控制的目录。<br />
1、每一个以工作副本 PATH 指定的目录，都会创建在本地端，并且加入新增<br />
调度，以待下一次的提交。<br />
2、每个以URL指定的目录，都会透过立即提交于仓库中创建。<br />
在这两个情况下，所有的中间目录都必须事先存在。<br />
15、恢复本地修改<br />
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:<br />
用法: revert PATH…<br />
注意: 本子命令不会存取网络，并且会解除冲突的状况。但是它不会恢复<br />
被删除的目录<br />
16、代码库URL变更<br />
svn switch (sw): 更新工作副本至不同的URL。<br />
用法: 1、switch URL [PATH]<br />
2、switch –relocate FROM TO [PATH...]<br />
1、更新你的工作副本，映射到一个新的URL，其行为跟“svn update”很像，也会将<br />
服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的<br />
方法。<br />
2、改写工作副本的URL元数据，以反映单纯的URL上的改变。当仓库的根URL变动<br />
(比如方案名或是主机名称变动)，但是工作副本仍旧对映到同一仓库的同一目录时使用<br />
这个命令更新工作副本与仓库的对应关系。<br />
17、解决冲突<br />
svn resolved: 移除工作副本的目录或文件的“冲突”状态。<br />
用法: resolved PATH…<br />
注意: 本子命令不会依语法来解决冲突或是移除冲突标记；它只是移除冲突的<br />
相关文件，然后让 PATH 可以再次提交。<br />
18、输出指定文件或URL的内容。<br />
svn cat 目标[@版本]…如果指定了版本，将从指定的版本开始查找。<br />
svn cat -r PREV filename &gt; filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/104/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINUX启动服务详解</title>
		<link>http://www.gzv8.com/archives/102</link>
		<comments>http://www.gzv8.com/archives/102#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:33:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=102</guid>
		<description><![CDATA[做为RED HAT LINUX的启动来说,如果只是个人使用的话,只需要启用以下服务,如果还在精减的话,只启用Network就可,这是Fedora core 2启动服务.
acpid：提供高级电源管理。
cpuspeed：可以提高系统运行效率。
crond：执行例行性程序。
Iptables： 防火墙。
Kudzu：自动检测硬件的变更。
Network： 激活网络接口。
Random：加快系统的启动。
Readahead和Readahead_early：加快系统的启动。
Syslog：把各类事件写入日志。
acpid 配置文件：/proc/acpi/event
预设端口：无
说明：Advanced Configuration and Power Interface，为替代传统的APM电源管理标准而推出的新型电源管理标准。
是否需要启动：如果你需要对电源进行管理，那就需要启动。
anacron 配置文件：/etc/anacron
预设端口：无
说明：一个自动化运行任务。Red Hat Linux 随带四个自动化任务的工具：cron、 anacron、at、和 batc。当你的Linux主机并不是全天候开机，这个anacron就可以帮你执行在”crontab”设定的时间内没有执行的工作。举例来说，当你的主机在晚上12:00会自动关闭，但是偏偏crontab这个例行性工作是在4:00工作，这个时候例行性工作就不能起作用了。不过利用anacron就能做到。
是否需要启动：如果主机已经24小时开机，而且运行了cron，那么这个守护程序就不需要启动了。
apmd 配置文件：/etc/sysconfig/apmd
预设端口：无
说明：Advanced Power Management，高级电源管理。传统的电源管理标准。一般系统都会同时支持APM和APMD两种标志，但系统加载时只需加载一个即可。对于笔记本电脑比较有用，可以了解系统的”电池电量”。
是否需要启动：如果我们使用的是台式电脑或一直开机的机型，就不需要使用这个守护程序。
atd 配置文件：/etc/at.allow，/etc/at.deny
预设端口：无
说明：一个自动化运行任务。
是否需要启动：通常需要启动。不过如果你一直使用cron，那么也可以不启动。
autofs 配置文件：/etc/rc.d/init.d/autofs
预设端口：无
说明：实现光盘、软盘的自动加载。
是否需要启动：一般不需要启动。
chargen
chargen-udp 预设端口：TCP/UDP 19
说明：Character Generator Protocol，一种网络服务，主要功能是提供类似远程打字的功能。
更多细节：http://www.networksorcery.com/enp/RFC/Rfc864.txt
是否需要启动：为安全起见，尽量关闭这个服务。
cpuspeed 说明：监测系统空闲百分比，降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小，而在系统繁忙时最大化加快系统执行速度。
更多细节：
http://altlinux.org/index.php?module=sisyphus&#38;package=cpuspeed
是否需要启动：需要启动。
crond 配置文件：/etc/crontab
预设端口：无
说明：用来执行例行性命令的守护程序。
是否需要启动：必须启动。
cups 配置文件：
CUPS服务器配置文件：/etc/cups/cupsd.conf
CUPS客户端配置文件：/etc/cups/client.conf
CUPS打印机配置文件：/etc/cups/printers.conf
CUPS中类（class）配置文件：/etc/cups/classes.conf
说明：Common UNIX Printing System，公共UNIX打印支持，为Linux提供打印功能。
是否需要启动：如果不安装打印机，就不需要启动。
cups-lpd 预设端口：无
说明：CUPS Line Printer Daemon (”LPD”)，提供打印功能。
是否需要启动：如果不安装打印机，就不需要启动。
daytime
daytime-udp 预设端口：TCP 13
说明：Daytime协议（RFC867）是一个简单的协议，为客户机实现从远程服务器获取日期和时间的功能。
是否需要启动：不用启动。
echo
echo-udp 预设端口：7
说明：服务器回显客户数据服务。
是否需要启动：不用启动。
gpm 配置文件：/etc/sysconfig/mouse
预设端口：无
说明：General Purpose Mouse Daemon ，gpm为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标 的拷贝，粘贴操作以及弹出式菜单。
是否需要启动：没必要的话，建议不要启动。
iptables 说明：防火墙。
是否需要启动：必须启动。
irda Infrared Data Association，是一个实现红外无线数据传输的工业标准。
irqbalance 对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。
是否需要启动：如果你只安装了一个CPU，就不需要加载这个守护程序。
isdn Integrated Services [...]]]></description>
			<content:encoded><![CDATA[<p>做为RED HAT LINUX的启动来说,如果只是个人使用的话,只需要启用以下服务,如果还在精减的话,只启用Network就可,这是Fedora core 2启动服务.<br />
acpid：提供高级电源管理。<br />
cpuspeed：可以提高系统运行效率。<br />
crond：执行例行性程序。<br />
Iptables： 防火墙。<br />
Kudzu：自动检测硬件的变更。<br />
Network： 激活网络接口。<br />
Random：加快系统的启动。<br />
Readahead和Readahead_early：加快系统的启动。<br />
Syslog：把各类事件写入日志。</p>
<p>acpid 配置文件：/proc/acpi/event<br />
预设端口：无<br />
说明：Advanced Configuration and Power Interface，为替代传统的APM电源管理标准而推出的新型电源管理标准。<br />
是否需要启动：如果你需要对电源进行管理，那就需要启动。<br />
anacron 配置文件：/etc/anacron<br />
预设端口：无<br />
说明：一个自动化运行任务。Red Hat Linux 随带四个自动化任务的工具：cron、 anacron、at、和 batc。当你的Linux主机并不是全天候开机，这个anacron就可以帮你执行在”crontab”设定的时间内没有执行的工作。举例来说，当你的主机在晚上12:00会自动关闭，但是偏偏crontab这个例行性工作是在4:00工作，这个时候例行性工作就不能起作用了。不过利用anacron就能做到。<br />
是否需要启动：如果主机已经24小时开机，而且运行了cron，那么这个守护程序就不需要启动了。<br />
apmd 配置文件：/etc/sysconfig/apmd<br />
预设端口：无<br />
说明：Advanced Power Management，高级电源管理。传统的电源管理标准。一般系统都会同时支持APM和APMD两种标志，但系统加载时只需加载一个即可。对于笔记本电脑比较有用，可以了解系统的”电池电量”。<br />
是否需要启动：如果我们使用的是台式电脑或一直开机的机型，就不需要使用这个守护程序。<br />
atd 配置文件：/etc/at.allow，/etc/at.deny<br />
预设端口：无<br />
说明：一个自动化运行任务。<br />
是否需要启动：通常需要启动。不过如果你一直使用cron，那么也可以不启动。<br />
autofs 配置文件：/etc/rc.d/init.d/autofs<br />
预设端口：无<br />
说明：实现光盘、软盘的自动加载。<br />
是否需要启动：一般不需要启动。<br />
chargen<br />
chargen-udp 预设端口：TCP/UDP 19<br />
说明：Character Generator Protocol，一种网络服务，主要功能是提供类似远程打字的功能。<br />
更多细节：http://www.networksorcery.com/enp/RFC/Rfc864.txt<br />
是否需要启动：为安全起见，尽量关闭这个服务。<br />
cpuspeed 说明：监测系统空闲百分比，降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小，而在系统繁忙时最大化加快系统执行速度。<br />
更多细节：<br />
<a href="http://altlinux.org/index.php?module=sisyphus&amp;package=cpuspeed">http://altlinux.org/index.php?module=sisyphus&amp;package=cpuspeed</a><br />
是否需要启动：需要启动。<br />
crond 配置文件：/etc/crontab<br />
预设端口：无<br />
说明：用来执行例行性命令的守护程序。<br />
是否需要启动：必须启动。<br />
cups 配置文件：<br />
CUPS服务器配置文件：/etc/cups/cupsd.conf<br />
CUPS客户端配置文件：/etc/cups/client.conf<br />
CUPS打印机配置文件：/etc/cups/printers.conf<br />
CUPS中类（class）配置文件：/etc/cups/classes.conf<br />
说明：Common UNIX Printing System，公共UNIX打印支持，为Linux提供打印功能。<br />
是否需要启动：如果不安装打印机，就不需要启动。<br />
cups-lpd 预设端口：无<br />
说明：CUPS Line Printer Daemon (”LPD”)，提供打印功能。<br />
是否需要启动：如果不安装打印机，就不需要启动。<br />
daytime<br />
daytime-udp 预设端口：TCP 13<br />
说明：Daytime协议（RFC867）是一个简单的协议，为客户机实现从远程服务器获取日期和时间的功能。<br />
是否需要启动：不用启动。<br />
echo<br />
echo-udp 预设端口：7<br />
说明：服务器回显客户数据服务。<br />
是否需要启动：不用启动。<br />
gpm 配置文件：/etc/sysconfig/mouse<br />
预设端口：无<br />
说明：General Purpose Mouse Daemon ，gpm为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标 的拷贝，粘贴操作以及弹出式菜单。<br />
是否需要启动：没必要的话，建议不要启动。<br />
iptables 说明：防火墙。<br />
是否需要启动：必须启动。<br />
irda Infrared Data Association，是一个实现红外无线数据传输的工业标准。<br />
irqbalance 对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。<br />
是否需要启动：如果你只安装了一个CPU，就不需要加载这个守护程序。<br />
isdn Integrated Services Digital Network，综合数字服务网络。提供对isdn设备的支持。<br />
kudzu 配置文件：<br />
/etc/sysconfig/hwconf<br />
/etc/sysconfig/kudzu<br />
说明：硬件自动检测程序，会自动检测硬件是否发生变动，并相应进行硬件的添加、删除工作。当系统启动时，kudzu会对当前的硬件进行检测，并且和存储在 /etc/sysconfig/hwconf中的硬件信息进行一一对照，如果某个硬件从系统中被添加或者删除时，那么kudzu就会察觉到，并且通知用户是否进行相关配置，然后修改/etc/sysconfig/hwconf，使硬件资料与系统保持同步。如果/etc/sysconfig/hwconf这个文件不存在，那么kudzu将会从/etc/modprobe.conf，/etc/sysconfig/network-scripts/和 /etc/X11/XF86Config中探测已经存在的硬件。<br />
是否需要启动：如果启动kudzu，则每次启动系统，都会检查新硬件（checking new hardware），会延长系统启动的时间。如果你不打算增加新硬件，那么就可以关闭这个启动服务，以加快系统启动时间。<br />
mdmonitor 与RAID设备相关的守护程序。<br />
mdmpd 与RAID设备相关的守护程序。<br />
messagebus D-BUS是一个库，为两个或两个以上的应用程序提供一对一的通讯。<br />
dbus-daemon-1是一个应用程序，它使用这个库来实现messagebus守护程序。多个应用程序通过连接messagebus守护程序可以实现与其他程序交换信息。<br />
更多细节：<br />
<a href="http://www.freedesktop.org/software/dbus/doc/dbus-daemon-1.1.html">http://www.freedesktop.org/software/dbus/doc/dbus-daemon-1.1.html </a><br />
microcode_ctl 可以编码以及发送新的微代码到kernel以更新Intel IA32系列处理器（Pentium Pro，PII，PIII，Pentium 4，Celeron, Xeon 等等 &#8211; 全部 P6 以及更高,不包括 pentium classics）。<br />
更多细节：<br />
<a href="http://www.urbanmyth.org/microcode/">http://www.urbanmyth.org/microcode/ </a><br />
<a href="http://microcodes.sourceforge.net/">http://microcodes.sourceforge.net/ </a><br />
netdump News Backup Dump Server，远程备份服务器。<br />
netfs Network Filesystem Mounter，安装和卸载NFS、SAMBA和NCP网络文件系统。<br />
netplugd 配置文件：<br />
/etc/netplug/netplugd.conf<br />
/etc/netplug.d/netplug<br />
说明：network cable hotplug management daemon，netplugd是一个守护程序，可以监控一个或多个网络接口的状态，当某些事件触发时运行一个外部脚本程序。<br />
更多细节：http://people.debian.org/~enrico/netplugd.html<br />
network 在系统启动时激活所有的网络接口。<br />
nfs 网络文件系统。<br />
nfslock NFS是一个流行的通过TCP/IP网络共享文件的协议，此服务提供了NFS文件锁定功能。<br />
ntpd 配置文件：/etc/ntp.conf<br />
说明：Network time Protocol daemon，网络时间校正协议。简单的说,NTP是用来使系统和一个精确的时间源保持时间同步的协议。<br />
推荐大家看一篇文章：《NTP－让网络里的电脑时间精确到毫秒》<br />
发表在2004年12月份的《在线技术》杂志第63页<br />
pcmcia Pcmcia卡，支持笔记本电脑的PCMCIA 设备，如调制解调器, 网络适配器, SCSI卡等等。<br />
portmap Portmap守护程序为RPC服务，如NIS和NFS提供动态端口的分配。<br />
psacct 包括几个工具用来监控进程活动的工具，包括ac,lastcomm, accton 和sa。<br />
random 说明：快速的将系统的状态在随机的时间内存到景象档案中，对于系统相当重要。因为在开机之后，系统会迅速的恢复到开机之前的状态。<br />
是否需要启动：必须启动。<br />
rawdevices 在使用集群文件系统时用于加载raw设备的守护程序。<br />
readahead<br />
readahead_early 配置文件：/etc/readahead.early.files /etc/readahead.files<br />
说明：readahead和readahead_early是在Fedora core 2中最新推出的两个后台运行的守护程序。其作用是在启动系统期间，将启动系统所要用到的文件首先读取到内存中，然后在内存中进行执行，以加快系统的启动速度。而上面两个配置文件就保存着将要读取到内存的文件列表。<br />
rhnsd Red Hat 网络服务。通知你有关官方的安全信息以及为你的系统打补丁。<br />
rpcgssd<br />
rpcidmapd<br />
rpcsrcgssd 说明：gestion NFS v4，是Linux 2.6内核新添的功能。<br />
是否需要启动：不需要启动。<br />
rsync remote sync，远程数据备份工具。<br />
saslauthd 使用SASL的认证守护程序。<br />
sendmail 邮件服务器。<br />
services 一个内部xinetd服务，用于监听活动的服务。<br />
sgi-fam 实现实时数据镜像。监控文件的变更，提供一个应用程序API接口用来当指定的文件火目录改变时及时通知。<br />
smartd Self Monitor Analysis and Reporting Technology System，监控你的硬盘是否出现故障。<br />
sshd 配置文件：<br />
OpenSSH服务器配置文件：/etc/ssh/sshd_config<br />
OpenSSH客户端配置文件：/etc/ssh/ssh_config<br />
预设端口：22<br />
说明：Secure Shell Protocol，实现安全地远程登陆管理主机。<br />
是否需要启动：如果想实现远程管理，就需要启动。<br />
syslog 配置文件：/etc/syslog.conf<br />
说明：记录所有的系统行为。<br />
是否需要启动：必须启动。<br />
time 从远程主机获取时间和日期，采用TCP协议。<br />
time-udp 从远程主机获取时间和日期，采用UDP协议。<br />
vncserver VNC （Virtual Network Computing，虚拟网络计算），它提供了一种在本地系统上显示远程计算机整个”桌面”的轻量型协议。<br />
更多细节：http://www.realvnc.com/<br />
xfs 预设端口：TCP 7100<br />
说明：x font server，X Window字型服务器，为本地和远程X服务器提供字型集。<br />
是否需要启动：如果使用run-level为5的图形界面，那么就需要启动。<br />
xinetd 配置文件：/etc/xinetd.conf<br />
说明：xinetd作为inetd的后续版本，负责管理系统中不频繁使用的服务，这些服务程序在有请求时才由xinetd服务负责启动运行，一旦完成服务请求服务程序结束运行，这样可以有效地减少对系统资源的占用率。通常，xinetd管理的程序有telnet、ftp、rsh和rlogin。关闭 inetd也就关闭了这些由它管理的服务。<br />
更多细节：http://www.xinetd.org/<br />
是否需要启动：必须启动。<br />
yum 配置文件：/etc/yum.conf<br />
说明：Yellow Dog UpdaterModified，是一个自动更新、安装和删除RPM软件包的管理程序，它会自动计算软件包的管理程序，并判断哪些软件应该安装，哪些软件则不必安装。<br />
更多细节： http://linux.duke.edu/projects/yum/<br />
是否需要启动：以系统管理策略而决定是否启动。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/102/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>分享一段命令，用于删除一个目录下存在超过指定时间的文件</title>
		<link>http://www.gzv8.com/archives/96</link>
		<comments>http://www.gzv8.com/archives/96#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:29:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[find]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=96</guid>
		<description><![CDATA[例如你的Web站点有个供用户 upload 目录。
然而该目录所在的磁盘空间不足了，或者你打算清理一下旧内容。
又或者你需要定时删除备份文件。
这么以下命令可以帮助你
# find /data/web/upload -daystart -type f -mtime +600 -name &#8216;*.gif&#8217; -exec rm -Rf &#8216;{}&#8217; &#8216;;&#8217;
解析：
/data/web/upload &#8211;设置查找的目录；(这里要万分小心! 弄错了可会出大祸的)
-mtime +600 &#8211;设置时间为600天前；
-type f &#8211;设置查找的类型为文件；
-name &#8216;*.gif&#8217; &#8211;设置文件名称, 所有 gif 文件。
-exec rm -f &#8211;查找完毕后执行删除操作；
]]></description>
			<content:encoded><![CDATA[<p>例如你的Web站点有个供用户 upload 目录。<br />
然而该目录所在的磁盘空间不足了，或者你打算清理一下旧内容。</p>
<p>又或者你需要定时删除备份文件。</p>
<p>这么以下命令可以帮助你</p>
<p># find /data/web/upload -daystart -type f -mtime +600 -name &#8216;*.gif&#8217; -exec rm -Rf &#8216;{}&#8217; &#8216;;&#8217;</p>
<p>解析：</p>
<p>/data/web/upload &#8211;设置查找的目录；(这里要万分小心! 弄错了可会出大祸的)<br />
-mtime +600 &#8211;设置时间为600天前；<br />
-type f &#8211;设置查找的类型为文件；<br />
-name &#8216;*.gif&#8217; &#8211;设置文件名称, 所有 gif 文件。<br />
-exec rm -f &#8211;查找完毕后执行删除操作；</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/96/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

