📄 00000016.htm
字号:
<BR> #linuxconf <BR> <BR> <BR> <BR> <BR> 图9.3 配置quota <BR> <BR> 选择File system下面的Access local drive选项,设置文件系统: <BR> <BR> <BR> <BR> 图9.4 配置quota(2) <BR> <BR> 选择你准备使用quota的文件系统,按下回车键,在options栏目中可以找到user quo <BR>ta和group qouta选项: <BR> <BR> <BR> <BR> 图9.5 配置quota(3) <BR> <BR> 选中Accept回到主选单,再选择File Systems下面的set quota defaults选项,就可 <BR>以设置缺省的quota参数: <BR> <BR> <BR> <BR> 图9.6 配置quota(4) <BR> <BR> 可以设置缺省的用户quota,组quota和quota的计时时间。利用这个方法,很容易设置 <BR>各种缺省参数,注意在这个配置程序中每个可以使用quota(在/etc/fstab中设置为usrq <BR>uota)的文件系统都会有自己的缺省quota值。 <BR> <BR> 设置了缺省值之后,就可以用edquota程序修改每个用户的quota值了。 <BR> <BR> 在进行例行管理的时候,你可能想要了解每个用户使用的磁盘空间,这可以用repquo <BR>ta命令实现: <BR> <BR> # repquota -a |more <BR> <BR> Block limits File limits <BR> <BR> User used soft hard grace used soft hard grace <BR> <BR> root -- 235880 0 0 12873 0 0 <BR> <BR> adm -- 8 0 0 2 0 0 <BR> <BR> news -- 220 0 0 26 0 0 <BR> <BR> ……………………… <BR> <BR> 如果你只想了解某个特定分区被使用的信息,使用repquota [设备名],如repquota <BR>/dev/hda1。 <BR> <BR> 9.3.2 回收磁盘空间 <BR> <BR> 磁盘空间总是在不断地减少。无论你有多少硬盘空间,它总是不够用。对于UNIX来说 <BR>,由于磁盘限额的存在,某个恶意的用户用垃圾文件塞满硬盘的情况不太可能发生。但 <BR>是即使在正常的情况下,各种程序的记录文件(比如/var/log/messages,/var/log/wt <BR>mp等等)也在不断增长。你必须定期清理这些文件,免得它们增长到太大而对系统产生 <BR>威胁。当然,对于硬盘动辄以数十GB论的Linux服务器,/var分区被塞满导致系统崩溃的 <BR>情况不太可能发生。在早期的Sun系统中,由于缺省的/var分区太小,系统管理员们发现 <BR>他们每天的主要任务是按照一张表删除记录文件,当然,在某些单位,这对系统管理员 <BR>申请加薪颇有好处。 <BR> <BR> 对于这些记录文件,必须知道的是你不能随便删除这些文件,由于许多程序的愚蠢实 <BR>现,它们在对应的文件不存在的时候不是去创建这些文件而是简单地抱怨文件不存在并 <BR>且退出。对于这些文件,你必须在删除之后建立一个空的同名文件以免应用程序发生错 <BR>误。 <BR> <BR> 举个例子来说,一个增长的极其迅速的文件是/var/log/httpd/access_log。通常它在 <BR>几天之内就可以有上兆的增长。我们需要定期删除这个文件,apache是一个比较正常的 <BR>程序,所以我们可以简单地删除这个文件: <BR> <BR> #rm –rf /var/log/httpd/access_log <BR> <BR> 另一个增长迅速的文件是/var/log/wtmp,我们同样需要定期删除这个文件,但是许多 <BR>程序依赖于它的存在,因此我们用下面的方法清空这个文件: <BR> <BR> #cat /dev/null > /var/log/wtmp <BR> <BR> /dev/null是一个“空”设备,它没有任何内容,因此这样的重定向命令将导致/var/ <BR>log/wtmp文件被一个长度为0的空文件取代。 <BR> <BR> 更复杂的情况是syslogd使用的记录文件,例如/var/log/messages文件。我们不能直 <BR>接修改这样的文件,否则可能会扰乱syslogd的行为,因此我们使用下面的指令组: <BR> <BR> #killall syslogd <BR> <BR> #cat /dev/null > /var/log/messages <BR> <BR> #/sbin/syslogd <BR> <BR> 除此之外,各种莫名其妙的应用软件,用户上传的图片等等都会惊人地消耗硬盘空间 <BR>。一般来说,你需要了解每个硬盘上还有多少空间,以及消耗的磁盘空间都是谁在使用 <BR>,用来干什么。前面讲的repquota命令可以显示各个用户使用的磁盘空间,另外两种知 <BR>识可以通过df和du命令实现: <BR> <BR> df命令显示每个分区消耗了多少空间: <BR> <BR> $df <BR> <BR> Filesystem 1k-blocks Used Available Use% Mounted on <BR> <BR> /dev/hda1 1011928 415388 545136 43% / <BR> <BR> /dev/hda5 11598524 7793364 3215980 71% /ftp <BR> <BR> /dev/hda7 2016016 743696 1169908 39% /home <BR> <BR> /dev/hda8 2016016 87664 1825940 5% /home/httpd <BR> <BR> /dev/hda9 2016016 20 1913584 0% /temp <BR> <BR> /dev/hda10 2016016 1536592 377012 80% /usr <BR> <BR> /dev/hda6 6048320 504848 5236232 9% /var <BR> <BR> 显然,在我们的情况中,/ftp分区已经用了7G的空间,这很正常,因为我们允许用户 <BR>向这个分区上上传文件。 <BR> <BR> du命令可以显示某个目录下的文件一共占据了多少空间,例如: <BR> <BR> $du /var/spool/mail <BR> <BR> /var/spool/mail <BR> <BR> 单位是块数,每块1KB。 <BR> <BR> 如果某个目录有子目录,那么du会逐个测试所有子目录: <BR> <BR> $du /var/run <BR> <BR> 4 /var/run/netreport <BR> <BR> 4 /var/run/news <BR> <BR> 84 /var/run <BR> <BR> 如果你不喜欢这样,可以用-s选项让du程序显示某个目录的综述: <BR> <BR> $du -s /ftp <BR> <BR> 7793364 /ftp <BR> <BR> 缺省的时候,du输出的信息以块(block)为单位,每块是1KB,也可以设置它以字节 <BR>或者MB为单位,只要使用-b和-m开关,例如: <BR> <BR> $du -s -m /ftp <BR> <BR> 7611 /ftp <BR> <BR> 在发现了硬盘占用的主要原因之后,你就可以采取相应的步骤解决问题,如删除某些 <BR>程序,压缩某些数据文件等等。 <BR> <BR> 9.3.3 fsck程序 <BR> <BR> 当系统意外掉电或者类似的原因导致硬盘发生错误的时候,系统再次重启就会调用fs <BR>ck程序对硬盘进行检查。通常这个检查过程是自动的,但是如果检查中发现的错误太多 <BR>,或者出现了无法自动解决的问题,那么系统将提示你输入超级用户口令并且启动一个 <BR>单用户shell,让你手工运行fsck解决问题。 <BR> <BR> 另外一种需要手工运行fsck的情况是系统启动了足够多的次数,系统希望你进行例行 <BR>的硬盘检查。这时系统在引导过程中提示你输入超级用户口令进入系统维护,或者直接 <BR>按下^D组合键继续正常的引导。 <BR> <BR> 无论哪一种情况,在你决定进行fsck检测之后,你都会进入一个单用户shell。当然, <BR>也存在另外的情况:纯粹出于好奇心,你想对某个硬盘进行检查。 <BR> <BR> 在讨论fsck之前,你必须记住,原则上你不应该在一个已经连接的文件系统上使用fs <BR>ck,相反,你应该把它拆卸下来再做检查。当你试图fsck一个已经连接的文件系统的时 <BR>候,你会得到这样的提示: <BR> <BR> $fsck /dev/hda5 <BR> <BR> Parallelizing fsck version 1.15 (18-Jul-1999) <BR> <BR> e2fsck 1.15, 18-Jul-1999 for EXT2 FS 0.5b, 95/08/09 <BR> <BR> /dev/hda5 is mounted. <BR> <BR> <BR> WARNING!!! Running e2fsck on a mounted
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -