﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-zeroone0-文章分类-Linux</title><link>http://www.blogjava.net/zeroone0/category/9532.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:39:27 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:39:27 GMT</pubDate><ttl>60</ttl><item><title>cron的使用</title><link>http://www.blogjava.net/zeroone0/articles/39805.html</link><dc:creator>zeroone0</dc:creator><author>zeroone0</author><pubDate>Fri, 07 Apr 2006 05:44:00 GMT</pubDate><guid>http://www.blogjava.net/zeroone0/articles/39805.html</guid><wfw:comment>http://www.blogjava.net/zeroone0/comments/39805.html</wfw:comment><comments>http://www.blogjava.net/zeroone0/articles/39805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zeroone0/comments/commentRss/39805.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zeroone0/services/trackbacks/39805.html</trackback:ping><description><![CDATA[cron是一个linux下的定时执行工具，可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务，但它不自动起来，可以用以下的方法启动、关闭这个服务:<br /><br />　　/sbin/service crond start //启动服务<br /><br />　　/sbin/service crond stop //关闭服务<br /><br />　　/sbin/service crond restart //重启服务<br /><br />　　/sbin/service crond reload //重新载入配置<br /><br />　　也可以将这个服务在系统启动的时候自动启动:<br /><br />　　在/etc/rc.d/rc.local这个脚本的末尾加上:<br /><br />　　/sbin/service crond start<br /><br />　　现在Cron这个服务已经在进程里面了，就可以用这个服务了，Cron服务提供以下几种接口供大家使用:<br /><br />　　1.直接用crontab命令编辑<br /><br />　　cron服务提供crontab命令来设定cron服务的，以下是这个命令的一些参数与说明:<br /><br />　　crontab -u //设定某个用户的cron服务，一般root用户在执行这个命令的时候需要此参数<br /><br />　　crontab -l //列出某个用户cron服务的详细内容<br /><br />　　crontab -r //删除没个用户的cron服务<br /><br />　　crontab -e //编辑某个用户的cron服务<br /><br />　　比如说root查看自己的cron设置:crontab -u root -l<br /><br />　　再例如，root想删除fred的cron设置:crontab -u fred -r<br /><br />　　在编辑cron服务时，编辑的内容有一些格式和约定，输入:crontab -u root -e<br /><br />　　进入vi编辑模式，编辑的内容一定要符合下面的格式:*/1 * * * * ls &gt;&gt; /tmp/ls.txt<br />这个格式的前一部分是对时间的设定，后面一部分是要执行的命令，如果要执行的命令太多，可以把这些命令写到一个脚本里面，然后在这里直接调用这个脚本就可以了，调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定，前面五个*号代表五个数字，数字的取值范围和含义如下:<br /><br />　　分钟　(0-59)<br /><br />　　小時　(0-23)<br /><br />　　日期　(1-31)<br /><br />　　月份　(1-12)<br /><br />　　星期　(0-6)//0代表星期天<br /><br />　　除了数字还有几个个特殊的符号就是"*"、"/"和"-"、","，*代表所有的取值范围内的数字，"/"代表每的意思,"*/5"表示每5个单位，"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:<br /><br />　　每天早上6点<br /><br />　　0 6 * * * echo "Good morning." &gt;&gt; /tmp/test.txt //注意单纯echo，从屏幕上看不到任何输出，因为cron把任何输出都email到root的信箱了。<br /><br />　　每两个小时<br /><br />　　0 */2 * * * echo "Have a break now." &gt;&gt; /tmp/test.txt<br /><br />　　晚上11点到早上8点之间每两个小时，早上八点<br /><br />　　0 23-7/2，8 * * * echo "Have a good dream:)" &gt;&gt; /tmp/test.txt<br /><br />　　每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点<br /><br />　　0 11 4 * 1-3 command line<br /><br />　　1月1日早上4点<br /><br />　　0 4 1 1 * command line<br /><br />　　每次编辑完某个用户的cron设置后，cron自动在/var/spool/cron下生成一个与此用户同名的文件，此用户的cron信息都记录在这个文件中，这个文件是不可以直接编辑的，只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件，检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。<br /><br />　　2.编辑/etc/crontab 文件配置cron<br /><br />　　cron服务每分钟不仅要读一次/var/spool/cron内的所有文件，还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的，而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:<br /><br />　　SHELL=/bin/bash<br /><br />　　PATH=/sbin:/bin:/usr/sbin:/usr/bin<br /><br />　　MAILTO=root //如果出现错误，或者有数据输出，数据作为邮件发给这个帐号<br /><br />　　HOME=/ //使用者运行的路径,这里是根目录<br /><br />　　# run-parts<br /><br />　　01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本<br /><br />　　02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本<br /><br />　　22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本<br /><br />　　42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本<br /><br />　　注意"run-parts"这个参数，如果去掉这个参数的话，后面就可以写要运行的某个脚本名，而不是文件夹名了。<br /><br />from: <a href="http://www.linuxdiyf.com/viewarticle.php?id=6800">http://www.linuxdiyf.com/viewarticle.php?id=6800</a><img src ="http://www.blogjava.net/zeroone0/aggbug/39805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zeroone0/" target="_blank">zeroone0</a> 2006-04-07 13:44 <a href="http://www.blogjava.net/zeroone0/articles/39805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NFS</title><link>http://www.blogjava.net/zeroone0/articles/39372.html</link><dc:creator>zeroone0</dc:creator><author>zeroone0</author><pubDate>Wed, 05 Apr 2006 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/zeroone0/articles/39372.html</guid><wfw:comment>http://www.blogjava.net/zeroone0/comments/39372.html</wfw:comment><comments>http://www.blogjava.net/zeroone0/articles/39372.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zeroone0/comments/commentRss/39372.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zeroone0/services/trackbacks/39372.html</trackback:ping><description><![CDATA[NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中，在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。 <br />NFS协议从诞生到现在为止，已经有多个版本，如NFS V2（rfc1094）,NFS V3（rfc1813）（最新的版本是V4（rfc3010）。 <br />二、各NFS协议版本的主要区别 <br />V3相对V2的主要区别： <br />1、文件尺寸 <br />V2最大只支持32BIT的文件大小(4G),而NFS V3新增加了支持64BIT文件大小的技术。 <br />2、文件传输尺寸 <br />V3没有限定传输尺寸，V2最多只能设定为8k，可以使用-rsize and -wsize 来进行设定。 <br />3、完整的信息返回 <br />V3增加和完善了许多错误和成功信息的返回，对于服务器的设置和管理能带来很大好处。 <br />4、增加了对TCP传输协议的支持 <br />V2只提供了对UDP协议的支持，在一些高要求的网络环境中有很大限制，V3增加了对TCP协议的支持 <br />*5、异步写入特性 <br />6、改进了SERVER的mount性能 <br />7、有更好的I/O WRITES 性能。 <br />9、更强网络运行效能，使得网络运作更为有效。 <br />10、更强的灾难恢复功能。 <br /><br />异步写入特性（v3新增加）介绍： <br />NFS V3 能否使用异步写入，这是可选择的一种特性。NFS V3客户端发发送一个异步写入请求到服务器，在给客户端答复之前服务器并不是必须要将数据写入到存储器中（稳定的）。服务器能确定何时去写入数据或者将多个写入请求聚合到一起并加以处理，然后写入。客户端能保持一个数据的copy以防万一服务器不能完整的将数据写入。当客户端希望释放这个copy的时候，它会向服务器通过这个操作过程，以确保每个操作步骤的完整。异步写入能够使服务器去确定最好的同步数据的策略。使数据能尽可能的同步的提交何到达。与V2比较来看，这样的机制能更好的实现数据缓冲和更多的平行（平衡）。而NFS V2的SERVER在将数据写入存储器之前不能再相应任何的写入请求。 <br /><br />V4相对V3的改进： <br />1：改进了INTERNET上的存取和执行效能 <br />2：在协议中增强了安全方面的特性 <br />3：增强的跨平台特性 <br />三、CLIENT和SERVER的具体操作和设置 <br />在讲NFS SERVER的运作之前先来看一些与NFS SERVER有关的东西： <br />RPC（Remote Procedure Call） <br />NFS 本身是没有提供信息传输的协议和功能的，但NFS却能让我们通过网络进行资料的分享，这是因为NFS使用了一些其它的传输协议。而这些传输协议勇士用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER.所以只要用到NFS的地方都要启动RPC服务，不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系：NFS是一个文件系统，而RPC是负责负责信息的传输。 <br /><br />NFS需要启动的DAEMONS <br />pc.nfsd:主要复杂登陆权限检测等。 <br />rpc.mountd：负责NFS的档案系统，当CLIENT端通过rpc.nfsd登陆SERVER后，对clinet存取server的文件进行一系列的管理 <br />NFS SERVER在REDHAT LINUX平台下一共需要两个套件：nfs-utils和PORTMAP <br />nfs-utils：提供rpc.nfsd 及 rpc.mountd这两个NFS DAEMONS的套件 <br />portmap: NFS其实可以被看作是一个RPC SERVER PROGRAM,而要启动一个RPC SERVER PROGRAM，都要做好PORT的对应工作，而且这样的任务就是由PORTMAP来完成的。通俗的说PortMap就是用来做PORT的mapping的。 <br /><br />一：服务器端的设定（以LINUX为例） <br />服务器端的设定都是在/etc/exports这个文件中进行设定的，设定格式如下： <br />欲分享出去的目录 主机名称1或者IP1(参数1，参数2） 主机名称2或者IP2（参数3，参数4） <br />上面这个格式表示，同一个目录分享给两个不同的主机，但提供给这两台主机的权限和参数是不同的，所以分别设定两个主机得到的权限。 <br />可以设定的参数主要有以下这些： <br />rw：可读写的权限； <br />ro：只读的权限； <br />no_root_squash：登入到NFS主机的用户如果是ROOT用户，他就拥有ROOT的权限，此参数很不安全，建议不要使用。 <br />root_squash：在登入 NFS 主?C使用分享之目?的使用者如果是 root ?r，那????使用者的?嘞?⒈?嚎s成?槟涿褂谜撸ǔＫ?UID ? GID 都??成 nobody 那??身份； <br />all_squash：不管登陆NFS主机的用户是什么都会被重新设定为nobody。 <br />anonuid：将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。 <br />anongid：同 anonuid ，但是?成 group ID 就是了！ <br />sync：资料同步写入存储器中。 <br />async：资料会先暂时存放在内存中，不会直接写入硬盘。 <br />insecure 允许从这台机器过来的非授权访问。 <br /><br />例如可以编辑/etc/exports为： <br />/tmp　　　　　*(rw,no_root_squash) <br />/home/public　192.168.0.*(rw)　　 *(ro) <br />/home/test　　192.168.0.100(rw) <br />/home/linux　 *.the9.com(rw,all_squash,anonuid=40,anongid=40) <br />设定好后可以使用以下命令启动NFS: <br />/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的） <br />/etc/rc.d/init.d/nfs start <br /><br />exportfs命令： <br />如果我们在启动了NFS之后又修改了/etc/exports，是不是还要重新启动nfs呢？这个时候我们就可以用exportfs命令来使改动立刻生效，该命令格式如下： <br />exportfs [-aruv] <br />-a ：全部mount或者unmount /etc/exports中的内容 <br />-r ：重新mount /etc/exports中分享出来的目录 <br />-u ：umount 目录 <br />-v ：在 export 的?r候，将详细的信息输出到屏幕上。 <br />具体例子： <br />[root @test root]# exportfs -rv &lt;==全部重新 export 一次！ <br />exporting 192.168.0.100:/home/test <br />exporting 192.168.0.*:/home/public <br />exporting *.the9.com:/home/linux <br />exporting *:/home/public <br />exporting *:/tmp <br />reexporting 192.168.0.100:/home/test to kernel <br /><br />exportfs -au &lt;==全部都卸载了。 <br /><br /><br /><br />客户段的操作： <br />1、showmout命令对于NFS的操作和查错有很大的帮助，所以我们先来看一下showmount的用法 <br />showmout <br />-a ：这个参数是一般在NFS SERVER上使用，是用来显示已经mount上本机nfs目录的cline机器。 <br />-e ：显示指定的NFS SERVER上export出来的目录。 <br />例如： <br />showmount -e 192.168.0.30 <br />Export list for localhost: <br />/tmp * <br />/home/linux *.linux.org <br />/home/public (everyone) <br />/home/test 192.168.0.100 <br />2、mount nfs目录的方法： <br />mount -t nfs hostname(orIP):/directory /mount/point <br />具体例子： <br />Linux: mount -t nfs 192.168.0.1:/tmp /mnt/nfs <br />Solaris:mount -F nfs 192.168.0.1:/tmp /mnt/nfs <br />BSD: mount 192.168.0.1:/tmp /mnt/nfs <br /><br />3、mount nfs的其它可选参数： <br />HARD mount和SOFT MOUNT： <br />HARD: NFS CLIENT会不断的尝试与SERVER的连接（在后台，不会给出任何提示信息,在LINUX下有的版本仍然会给出一些提示），直到MOUNT上。 <br />SOFT:会在前台尝试与SERVER的连接，是默认的连接方式。当收到错误信息后终止mount尝试，并给出相关信息。 <br />例如：mount -F nfs -o hard 192.168.0.10:/nfs /nfs <br />对于到底是使用hard还是soft的问题，这主要取决于你访问什么信息有关。例如你是想通过NFS来运行X PROGRAM的话，你绝对不会希望由于一些意外的情况（如网络速度一下子变的很慢，插拔了一下网卡插头等）而使系统输出大量的错误信息，如果此时你用的是HARD方式的话，系统就会等待，直到能够重新与NFS SERVER建立连接传输信息。另外如果是非关键数据的话也可以使用SOFT方式，如FTP数据等，这样在远程机器暂时连接不上或关闭时就不会挂起你的会话过程。 <br /><br />rsize和wsize： <br />文件传输尺寸设定：V3没有限定传输尺寸，V2最多只能设定为8k，可以使用-rsize and -wsize 来进行设定。这两个参数的设定对于NFS的执行效能有较大的影响 <br />bg：在执行mount时如果无法顺利mount上时，系统会将mount的操作转移到后台并继续尝试mount，直到mount成功为止。（通常在设定/etc/fstab文件时都应该使用bg，以避免可能的mount不上而影响启动速度） <br />fg：和bg正好相反，是默认的参数 <br />nfsvers＝n:设定要使用的NFS版本，默认是使用2，这个选项的设定还要取决于server端是否支持NFS VER 3 <br />mountport：设定mount的端口 <br />port：根据server端export出的端口设定，例如如果server使用5555端口输出NFS,那客户端就需要使用这个参数进行同样的设定 <br />timeo =n:设置超时时间，当数据传输遇到问题时，会根据这个参数尝试进行重新传输。默认值是7/10妙（0.7秒）。如果网络连接不是很稳定的话就要加大这个数值，并且推荐使用HARD MOUNT方式，同时最好也加上INTR参数，这样你就可以终止任何挂起的文件访问。 <br />intr 允许通知中断一个NFS调用。当服务器没有应答需要放弃的时候有用处。 <br />udp：使用udp作为nfs的传输协议（NFS V2只支持UDP) <br />tcp：使用tcp作为nfs的传输协议 <br />namlen=n：设定远程服务器所允许的最长文件名。这个值的默认是255 <br />acregmin=n：设定最小的在文件更新之前cache时间，默认是3 <br />acregmax=n：设定最大的在文件更新之前cache时间，默认是60 <br />acdirmin=n：设定最小的在目录更新之前cache时间，默认是30 <br />acdirmax=n：设定最大的在目录更新之前cache时间，默认是60 <br />actimeo=n：将acregmin、acregmax、acdirmin、acdirmax设定为同一个数值，默认是没有启用。 <br />retry=n：设定当网络传输出现故障的时候，尝试重新连接多少时间后不再尝试。默认的数值是10000 minutes <br />noac:关闭cache机制。 <br />同时使用多个参数的方法：mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs <br />请注意，NFS客户机和服务器的选项并不一定完全相同，而且有的时候会有冲突。比如说服务器以只读的方式导出，客户端却以可写的方式mount,虽然可以成功mount上，但尝试写入的时候就会发生错误。一般服务器和客户端配置冲突的时候，会以服务器的配置为准。 <br /><br /><br />4、/etc/fstab的设定方法 <br />/etc/fstab的格式如下： <br />fs_spec　　　fs_file　　fs_type　　　fs_options　　fs_dump　fs_pass　 <br />fs_spec:该字段定义希望加载的文件系统所在的设备或远程文件系统,对于nfs这个参数一般设置为这样：192.168.0.1:/NFS <br />fs_file:本地的挂载点 <br />fs_type：对于NFS来说这个字段只要设置成nfs就可以了 <br />fs_options:挂载的参数，可以使用的参数可以参考上面的mount参数。 <br />fs_dump　-　该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储，若不需要转储就设置该字段为0 <br />fs_pass　-　该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序，根文件系统"/"对应该字段的值应该为1，其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0 。 <br /><br />5、与NFS有关的一些命令介绍 <br />nfsstat: <br />查看NFS的运行状态，对于调整NFS的运行有很大帮助 <br />rpcinfo： <br />查看rpc执行信息，可以用于检测rpc运行情况的工具。 <br /><br /><br /><br />四、NFS调优 <br />调优的步骤： <br />1、测量当前网络、服务器和每个客户端的执行效率。 <br />2、分析收集来的数据并画出图表。查找出特殊情况，例如很高的磁盘和CPU占用、已经高的磁盘使用时间 <br />3、调整服务器 <br />4、重复第一到第三步直到达到你渴望的性能 <br /><br /><br />与NFS性能有关的问题有很多，通常可以要考虑的有以下这些选择： <br /><br />WSIZE,RSIZE参数来优化NFS的执行效能 <br />WSIZE、RSIZE对于NFS的效能有很大的影响。 <br />wsize和rsize设定了SERVER和CLIENT之间往来数据块的大小，这两个参数的合理设定与很多方面有关，不仅是软件方面也有硬件方面的因素会影响这两个参数的设定（例如LINUX KERNEL、网卡，交换机等等）。 <br />下面这个命令可以测试NFS的执行效能，读和写的效能可以分别测试，分别找到合适的参数。对于要测试分散的大量的数据的读写可以通过编写脚本来进行测试。在每次测试的时候最好能重复的执行一次MOUNT和unmount。 <br />time dd if=/dev/zero of=/mnt/home/testfile bs=16k count=16384 <br />用于测试的WSIZE,RSIZE最好是1024的倍数，对于NFS V2来说8192是RSIZE和WSIZE的最大数值，如果使用的是NFS V3则可以尝试的最大数值是32768。 <br />如果设置的值比较大的时候，应该最好在CLIENT上进入mount上的目录中，进行一些常规操作（LS,VI等等），看看有没有错误信息出现。有可能出现的典型问题有LS的时候文件不能完整的列出或者是出现错误信息，不同的操作系统有不同的最佳数值，所以对于不同的操作系统都要进行测试。 <br /><br />设定最佳的NFSD的COPY数目。 <br />linux中的NFSD的COPY数目是在/etc/rc.d/init.d/nfs这个启动文件中设置的，默认是8个NFSD,对于这个参数的设置一般是要根据可能的CLIENT数目来进行设定的，和WSIZE、RSIZE一样也是要通过测试来找到最近的数值。 <br /><br />UDP and TCP <br />可以手动进行设置，也可以自动进行选择。 <br />mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR <br />UDP 有着传输速度快，非连接传输的便捷特性，但是UDP在传输上没有TCP来的稳定，当网络不稳定或者黑客入侵的时候很容易使NFS的 Performance 大幅降低甚至使网络瘫痪。所以对于不同情况的网络要有针对的选择传输协议。nfs over tcp比较稳定， nfs over udp速度较快。在机器较少网络状况较好的情况下使用UDP协议能带来较好的性能，当机器较多，网络情况复杂时推荐使用TCP协议（V2只支持UDP协议）。在局域网中使用UDP协议较好，因为局域网有比较稳定的网络保证，使用UDP可以带来更好的性能，在广域网中推荐使用TCP协议，TCP协议能让NFS在复杂的网络环境中保持最好的传输稳定性。可以参考这篇文章：http: //www.hp.com.tw/ssn/unix/0212/unix021204.asp <br /><br />版本的选择 <br />V3作为默认的选择（RED HAT 8默认使用V2,SOLARIS 8以上默认使用V3），可以通过vers= mount option来进行选择。 <br />LINUX通过mount option的nfsvers=n进行选择。 <br /><br />五、NFS故障解决 <br />1、NFSD没有启动起来 <br />首先要确认 NFS 输出列表存在，否则 nfsd 不会启动。可用 exportfs 命令来检查，如果 exportfs 命令没有结果返回或返回不正确，则需要检查 /etc/exports 文件。 <br />2、mountd 进程没有启动 <br />mountd 进程是一个远程过程调用 (RPC) ，其作用是对客户端要求安装（mount）文件系统的申请作出响应。mountd进程通过查找 /etc/xtab 文件来获知哪些文件系统可以被远程客户端使用。另外，通过mountd进程，用户可以知道目前有哪些文件系统已被远程文件系统装配，并得知远程客户端的列表。查看mountd是否正常启动起来可以使用命令rpcinfo进行查看，在正常情况下在输出的列表中应该象这样的行： <br />100005 1 udp 1039 mountd <br />100005 1 tcp 1113 mountd <br />100005 2 udp 1039 mountd <br />100005 2 tcp 1113 mountd <br />100005 3 udp 1039 mountd <br />100005 3 tcp 1113 mountd <br />如果没有起来的话可以检查是否安装了PORTMAP组件。 <br />rpm -qa|grep portmap <br />3、fs type nfs no supported by kernel <br />kernel不支持nfs文件系统，重新编译一下KERNEL就可以解决。 <br />4、can't contact portmapper: RPC: Remote system error - Connection refused <br />出现这个错误信息是由于SEVER端的PORTMAP没有启动。 <br />5、mount clntudp_create: RPC: Program not registered <br />NFS没有启动起来，可以用showmout -e host命令来检查NFS SERVER是否正常启动起来。 <br />6、mount: localhost:/home/test failed, reason given by server: Permission denied <br />这个提示是当client要mount nfs server时可能出现的提示，意思是说本机没有权限去mount nfs server上的目录。解决方法当然是去修改NFS SERVER咯。 <br />7、被防火墙阻挡 <br />这个原因很多人都忽视了，在有严格要求的网络环境中，我们一般会关闭linux上的所有端口，当需要使用哪个端口的时候才会去打开。而NFS默认是使用111端口，所以我们先要检测是否打开了这个端口，另外也要检查TCP_Wrappers的设定。 <br /><br /><br />六、NFS安全 <br />NFS的不安全性主要体现于以下4个方面: <br /><br />1、新手对NFS的访问控制机制难于做到得心应手,控制目标的精确性难以实现 <br />2、NFS没有真正的用户验证机制,而只有对RPC/Mount请求的过程验证机制 <br />3、较早的NFS可以使未授权用户获得有效的文件句柄 <br />4、在RPC远程调用中,一个SUID的程序就具有超级用户权限. <br /><br />加强NFS安全的方法： <br />1、合理的设定/etc/exports中共享出去的目录，最好能使用anonuid，anongid以使MOUNT到NFS SERVER的CLIENT仅仅有最小的权限，最好不要使用root_squash。 <br />2、使用IPTABLE防火墙限制能够连接到NFS SERVER的机器范围 <br />iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT <br />iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT <br />iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT <br />iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT <br />3、为了防止可能的Dos攻击，需要合理设定NFSD 的COPY数目。 <br />4、修改/etc/hosts.allow和/etc/hosts.deny达到限制CLIENT的目的 <br />/etc/hosts.allow <br />portmap: 192.168.0.0/255.255.255.0 : allow <br />portmap: 140.116.44.125 : allow <br /><br />/etc/hosts.deny <br />portmap: ALL : deny <br />5、改变默认的NFS 端口 <br />NFS默认使用的是111端口，但同时你也可以使用port参数来改变这个端口，这样就可以在一定程度上增强安全性。 <br />6、使用Kerberos V5作为登陆验证系统<br /><br /><br />FROM: <a href="http://soft.yesky.com/os/lin/436/2248936_3.shtml">http://soft.yesky.com/os/lin/436/2248936_3.shtml</a><img src ="http://www.blogjava.net/zeroone0/aggbug/39372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zeroone0/" target="_blank">zeroone0</a> 2006-04-05 13:58 <a href="http://www.blogjava.net/zeroone0/articles/39372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>