




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、linux系统管理员工具包 : 监视磁盘空间和使用情况本书网络下载内容丰富,分享给大家学习。研究确定跨多个unix 系统的磁盘使用情况以及如何创建一个简单的警告系统对潜在问题发出警告的方法。关注您的文件系统,确保它们没有填满,这虽然是个小事,但在unix 系统的日常管理工作中是至关重要的过程。在本文中,您将了解到监视磁盘空间、发现究竟是哪些文件、用户或应用程序占用了大部分的空间、以及如何使用配额和其他解决方案查找需要的信息的方法。关于本系列通常, unix 管理员都拥有一套常用的辅助进程管理的实用工具、技巧和系统。本文提供了各种用于简化各个过程的关键实用工具、命令行链和脚本。这些工具中的一部分
2、来自于操作系统,而大部分的技巧则来源于长期的经验积累和减轻系统管理员的工作压力的要求。 本系列文章主要专注于最大限度地利用各种unix 环境中可用的工具,包括简化异类环境中的管理任务的方法。入门:使用df监视磁盘空间是unix 管理员的工作中很重要的一部分。本文向您介绍一些完成管理工作所需的工具,包括df、du、find 的使用,甚至配额的使用。让我们先来看看df 的强大功能。对于许多管理员来说,使用df 工具可能有点像断续的神经运动,因为它通过一个命令提供了所有文件系统中已使用的和可用的存储空间的快照视图。根据您的unix 环境的不同, df 的缺省输出可能包含各种不同的信息。大部分现代的d
3、f 变种都可以显示磁盘空间、使用情况和可用性,通常还包括装入点 (有时包括设备) 。例如,基于 bsd 的 mac os x 显示如清单1 所示的信息。清单 1. mac os x 的缺省磁盘空间信息1.filesystem 512-blocks used avail capacity mounted on 2./dev/disk0s2 268435456 119741344 148182112 45% / 3.devfs 195 195 0 100% /dev 4.fdesc 2 2 0 100% /dev 5. 1024 1024 0 100% /.vol 6./dev/disk0s3 4
4、3474520 7251448 36223072 17% /volumes/untitled 复制代码请注意,所显示的大小是以512 字节块为单位,而不是千字节。缺省情况下,几乎所有传统的unix 操作系统都以512 字节块为单位报告大小,而不是千字节。要获得以1k 块为单位的信息,可以使用-k 命令行选项,如清单2 所示。清单 2. 使用带-k 选项的df 命令1.$ df -k 2.filesystem 1k-blocks used avail capacity mounted on 3./dev/disk0s2 134217728 59870704 74091024 45% / 4.de
5、vfs 97 97 0 100% /dev 5.fdesc 1 1 0 100% /dev 6. 512 512 0 100% /.vol 7./dev/disk0s3 21737260 3625724 18111536 17% /volumes/untitled 复制代码有些变种可能还支持可选的块大小,如兆字节(使用 -m)和千兆字节 (使用 -g),如清单3 所示。清单 3. 使用带-g 选项的df 命令1.$ df -g 2.filesystem 1g-blocks used avail capacity mounted on 3./dev/disk0s2 128 57 70 45% /
6、 4.devfs 0 0 0 100% /dev 5.fdesc 0 0 0 100% /dev 6. 0 0 0 100% /.vol 7./dev/disk0s3 20 3 17 17% /volumes/untitled 复制代码很显然,在增大显示的块大小的同时,信息中的详细级别也开始降低,但使用可选的大小是一种快速监视磁盘,特别是超大容量磁盘的很有用的方法。其他版本的df 工具(特别是solaris ),缺省情况下将报告空块和文件可用性信息。大部分文件系统都具有能够存储文件的上限数值(该数值很大,以至于通常不会达到该上限),所以有可能整个系统填满了文件,还有可用磁盘容量但却不能再存储任
7、何文件了。您可以在清单4 中看到 solaris 的缺省输出示例。清单 4. solaris 的缺省输出1.$ df 2./ (/dev/dsk/c0t0d0s0 ):14877208 blocks 914042 files 3./devices (/devices ): 0 blocks 0 files 4./system/contract (ctfs ): 0 blocks 2147483618 files 5./proc (proc ): 0 blocks 16109 files 6./etc/mnttab (mnttab ): 0 blocks 0 files 7./etc/svc/v
8、olatile (swap ): 5737216 blocks 147177 files 8./system/object (objfs ): 0 blocks 2147483532 files 9./usr (/dev/dsk/c0t0d0s3 ): 9076010 blocks 863695 files 10. /dev/fd (fd ): 0 blocks 0 files 11. /var (/dev/dsk/c0t0d0s4 ): 8110796 blocks 483714 files 12. /tmp (swap ): 5737216 blocks 147177 files 13.
9、/var/run (swap ): 5737216 blocks 147177 files 14. /export/home (/dev/dsk/c0t0d0s7 ):69362510 blocks 4272812 files 复制代码使用 -k 命令行选项可以将显示内容切换为与前面的示例类似的格式,其中对数据进行了摘要处理,得到更加便于阅读的格式(请参见清单5)。清单 5. 使用 -k 选项1.$ df -k 2.filesystem kbytes used avail capacity mounted on 3./dev/dsk/c0t0d0s0 7644629 206026 736215
10、7 3% / 4./devices 0 0 0 0% /devices 5.ctfs 0 0 0 0% /system/contract 6.proc 0 0 0 0% /proc 7.mnttab 0 0 0 0% /etc/mnttab 8.swap 2868600 1016 2867584 1% /etc/svc/volatile 9.objfs 0 0 0 0% /system/object 10. /dev/dsk/c0t0d0s3 8261237 3723232 4455393 46% /usr 11. fd 0 0 0 0% /dev/fd 12. /dev/dsk/c0t0d0
11、s4 4130238 74849 4014087 2% /var 13. swap 2867584 0 2867584 0% /tmp 14. swap 2867624 40 2867584 1% /var/run 15. /dev/dsk/c0t0d0s7 35611388 930133 34325142 3% /export/home 复制代码所有的df 变种都接受一个目录或路径,然后显示包含该路径的文件系统的磁盘空间信息。例如,下面显示了应该如何获得根文件系统的空间信息:1.$ df -k / 2.filesystem kbytes used avail capacity mounted
12、 on 3./dev/dsk/c0t0d0s0 7644629 206026 7362157 3% / 复制代码或者,下面使用df 显示了一个用户的home 目录的空间信息:1.$ df -k mc 2.filesystem kbytes used avail capacity mounted on 3./dev/dsk/c0t0d0s7 35611388 930133 34325142 3% /export/home 复制代码使用 df 的输出df 工具实际上是disk free 的缩写,并且这也正是该工具所显示的内容。如果再次查看某个示例输出,您可以从中提取一些特别重要的元素:filesy
13、stem kbytes used avail capacity mounted on /dev/dsk/c0t0d0s7 35611388 930133 34325142 3% /export/home 第一列通常具有与块大小数据相对应的标题,它显示了磁盘的总大小。used 列显示了该文件系统或设备上已使用的块数。avail 列显示了该文件系统上尚未使用的(可用的)块数。capacity 列提供了总大小中已使用的磁盘空间所占的百分比。这个信息本身可以提供关于可用空间的直观指示。缺省情况下, unix 所创建的文件系统中百分之九十的容量可用于存放用户数据。剩下的百分之十由系统保留,以便root
14、用户执行紧急维护工作。如果用户试图添加或创建超出该限制的文件,那么将返回一个错误(超出文件系统空间)。有了这个紧急维护空间,就可以利用它对一块已满的磁盘进行恢复。例如,作为管理员,您可以使用这个空间来创建快速备份,或对现有的数据进行压缩而无需为达到该目的使用辅助文件系统。您可以使用tunefs 工具或在创建文件系统时,调整保留的空闲空间的大小。对于大容量磁盘来说,这是至关重要的,因为其中百分之十的缓冲区可能等于许多个gb 的潜在空间。通常好的做法是至少保留百分之一的空间,以便在完全用尽存储空间之前,提供最低限度的缓冲区空间。在深入研究这个问题之前,特别是如果已经使用了大量的磁盘空间,您需要确定
15、到底是谁使用了所有的这些空间。使用 dudu 命令并不是显示磁盘的空闲空间,而是显示磁盘使用情况的信息。du 工具用于确定文件和目录的磁盘使用情况。要使用这个工具,改变到一个目录,然后运行该工具(请参见清单6)。清单 6. du 命令1.$ cd /var 2.$ du 3.16 ./lost+found 4.4 ./sadm/install/admin 5.22 ./sadm/install/logs 6.28448 ./sadm/install 7.4 ./sadm/pkg/sunwocfd/install 8.4 ./sadm/pkg/sunwocfd/save/pspool/sunwo
16、cfd/install 9.16 ./sadm/pkg/sunwocfd/save/pspool/sunwocfd 10. 18 ./sadm/pkg/sunwocfd/save/pspool 11. 20 ./sadm/pkg/sunwocfd/save 12. 28 ./sadm/pkg/sunwocfd 13. 4 ./sadm/pkg/sunwcsu/inst 14. . 复制代码上面的清单6 中显示的输出,经过了适当的调整。缺省情况下,du 将显示当前或指定的目录下每个文件和目录的文件使用情况。得到的值是文件的大小,单位为该系统中的缺省块大小, 与 df 所使用的单位相同。 可能是也
17、可能不是1k,而使用-k 命令行选项,您可以强制以1k 块为单位进行显示。您可能需要根据所查看的顶级文件或目录对信息进行摘要。使用-s 选项以打开摘要视图。下面是solaris 安装中的一个摘要版本在/var 目录中的显示:1.$ du -sk 2.70818 . 复制代码请注意,它显示了当前目录(.) 的摘要信息。要获得所有文件和目录的摘要信息,可以使用* 通配符(请参见清单7)。清单 7. 使用 * 通配符获得摘要信息1.$ du -sk * 2.382 adm 3.950 apache 4.683 apache2 5.6837 appserver 6.1 audit 7.162 cach
18、e 8.3 cc-ccr 9.2 crash 10. 4 cron 11. 31 dmi 12. 22 dt 13. 6 fm 14. 2 imq 15. 1 inet 16. 3 krb5 17. 4 ld 18. 1 ldap 19. 937 lib 20. 6 log 21. 8 lost+found 22. 2 lp 23. 2 mail 24. 1 mysql 25. 1 news 26. 3 nfs 27. 38 nis 28. 2 ntp 29. 10034 opt 30. 1 preserve 31. 96 run 32. 49687 sadm 33. 15 saf 34. 3
19、 samba 35. 2 sma_snmp 36. 131 snmp 37. 39 spool 38. 4 statmon 39. 663 svc 40. 14 tmp 41. 10 uucp 42. 24 yp 复制代码使用该工具时,特别是在用户目录中使用该工具时,请特别小心,因为所显示的信息中不包含隐藏文件,换句话说, 具有单点号前缀的那些文件和目录。您可能希望使用下面的代码行,在用户目录中获得所有的摘要信息:1.$ du -sk * .a-za-z0-9* 复制代码du 命令的最后一个非常有用的选项是-d,该选项可以防止du 命令超过文件系统边界。例如,要确定根文件系统而不是任何其他的文
20、件系统的磁盘使用情况,您可以使用-d 选项:1.$ du -dsk / 复制代码有些系统没有这个选项,但是有-x 命令行选项,该选项仅包含与您所指定的路径相同的设备或文件系统中的文件使用情况。查找一个特定用户的磁盘使用情况要查找某个用户所使用的磁盘空间,在使用find 命令的同时,您需要结合使用du 命令以仅报告特定用户的磁盘使用情况。1.$ find . -user mc -type f -exec du -k ; 复制代码-user 选项允许您指定find 将仅报告属于特定用户的文件。-type 选项强制find 仅返回特定类型(在本示例中是文件)项目的路径,这样可以防止du 包含目录,因
21、为这些目录可能属于某个用户,但其中却包含了许多用户的文件。然后,对于查找到的每个路径,执行du 命令以报告磁盘使用情况。要获得摘要信息, 换句话说,即某个特定用户所使用的总空间,您可以使用awk 对该信息进行总计,并打印出最后的值:1.$ find . -user mc -type f -exec du -k ;|awk s = 2. s+$1 end print total used: ,s 3.total used: 123721 复制代码对于组,您可以根据相同的原则对find 使用-group 选项:1.$ find . -group mcslp -type f -exec du -k
22、;|awk s = s+$1 end print 2.total used: ,s 3.total used: 542485 复制代码然而,如果启用了磁盘配额,那么就有一种更简单的方法。使用配额配额系统以文件系统为单位,自动监视该文件系统中各个用户的磁盘使用情况。配额环境不仅允许您监视磁盘的使用情况,而且还允许设置相应的使用限制,在超过使用限制时提供警告或者更直接地禁止用户使用超过所分配的配额值的磁盘空间。下限(发出警告) 称为软限制, 而上限(禁止创建超过该限制的文件)称为硬限制。有些系统可能还允许您控制每个用户所拥有的文件的数目。在您的计算机上启动配额的确切方法取决于您所使用的操作系统。大
23、多数unix 系统在缺省情况下都包含配额的支持。linux® 系统可能需要构建新的包含配额支持的内核。然而,通常大多数操作系统为每个文件系统使用一个称为quotas 的文件,其中包含了对每个用户的空间使用限制。要启用配额,您首先需要创建该文件, 并确保仅有root 用户可以编辑该配额文件:1.$ touch /export/home/quotas 2.$ chmod 600 /export/home/quotas 复制代码然后,使用quotaon 命令启用配额功能:1.$ quotaon /export/home 复制代码最后,您必须为每个用户编辑适当的配额。可以使用edquo
24、ta 命令并指定相应的用户来完成这项任务:1.$ edquota mc 复制代码这将打开缺省的编辑器(或者vi,如果您没有设置可选的编辑器),其中包含一个用来设置配额值的简单表格。在下面您可以看到, 已为用户home 目录文件系统启用了配额,并且软限制为200,000kb ,硬限制为400,000kb 。文件限制的设置为零,这表示没有设置限制,用户可以设置并创建任意数目的文件。fs /export/home blocks (soft = 200000, hard = 400000) inodes (soft = 0, hard = 0) 如果有更多的文件系统具有配额,那么您需要为这些文件系统配
25、置更多的行。如果您需要对多个用户配置配额,那么可以首先为一个用户设置配额,然后对edquota 使用-p 命令行选项。这将使用指定的用户作为基础来创建新的用户。例如,要使用mc 的设置为用户名slp、tw 和 sh 设置配额,请执行下面的命令:1.$ edquota -p mc slp tw sh 复制代码使用配额进行文件限制警告当用户创建一个超过其软限制的文件时,他们将会得到下面的警告:quota_ufs: warning: over disk limit (pid 1738, uid 101, inum 94, fs /export/home) 请注意,留给用户7 天的时间更正该问题,您可
26、以使用edquota -t 来更改这个期限。如果用户试图创建超过硬限制的文件,那么系统将终止写进程并根据相应的限制来截断该文件:1.$ mkfile 210000k overlimit 2.quota_ufs: over hard disk limit (pid 1843, uid 101, inum 130, fs 3./export/home) 4.overlimit: initialized 191873024 of 215040000 bytes: disc quota exceeded 复制代码通过运行quota 命令,任何用户都可以检查他们自己的配额限制和磁盘使用情况:1.$ qu
27、ota 2.over disk quota on /export/home, remove 199993k within 7.0 days 复制代码配额管理使用 quota 命令,系统管理员可以检查任何用户的配额,您应该使用-v 命令行选项以提供关于文件系统、使用情况和限制信息的完整报告(请参见清单8)。清单 8. 使用 -v 选项1.$ quota -v mc 2.disk quotas for mc (uid 101): 3.filesystem usage quota limit timeleft files quota limit 4.timeleft 5./export/home 3
28、99993 200000 400000 6.9 days 151 0 0 复制代码要获得某个文件系统中详细描述所有用户的磁盘和配额使用情况的报告,可以使用repquota 命令,并指定要报告的文件系统(请参见清单9)。清单 9. 使用 repquote 命令1.$ repquota -v /export/home 2./dev/dsk/c0t0d0s7 (/export/home): 3. block limits file limits 4.user used soft hard timeleft used soft hard timeleft 5.mc +- 399993 200000 4
29、00000 6.9 days 151 0 0 复制代码要确保配额信息保持最新,您应该使用quotacheck 命令。这将利用用来报告配额信息的配额信息对文件存储数据进行验证。您应该使用cron 来自动地运行这项任务,每天一次比较合适(因为这个过程是比较耗时的)。配额的技巧和陷井配额系统提供了监视和自动管理的最佳组合,但是您应该注意启用了配额的文件系统以及您所设置的限制,因为它们可能会妨碍用户的工作,而不是控制他们的磁盘使用情况。例如,与您进行的使用配置相比, 程序员可能需要更多的空间来构建一个应用程序。通过提供一个不受限制的编译区域(通过设置一个可选的临时目录),您可以在维持他们的home 目
30、录配额的同时避开这个问题,或者在设置很高的硬限制 (甚至可能是该文件系统的最大容量)的同时,设置合适的软限制。其结果应该是当达到软限制时给出一个警告,而不会真正地实施硬限制。用户应该仍然可以构建和创建临时文件,但是因为在构建的过程中会删除这些文件,所以不应该禁止用户创建他们所需的文件。配额还可以用来帮助完成监视任务,并提醒您关于特殊用户帐户的空间使用情况。我过去曾使用配额来监视web 用户帐户,即所谓的nobody 帐户和其他帐户,以确保它们无法向不应具有访问权限的文件系统中写入文件。要完成这项任务,可以将您需要保护的文件系统和用户的硬限制设置为1kb 。自动监视手动监视磁盘空间使用情况是可行的,但是您并不希望不停地运行df(甚至d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小说情节结构分析试题及答案
- 高职单招职业技能测试题库
- 高职单招语文文学常识篇三
- (高清版)DB12∕T 642-2016 天津市行政许可事项操作规程 举办大型群众性活动安全许可-举办大型群众性活动安全许可
- 个人发展与2024年CPMM的试题及答案
- 感恩演讲稿-感恩老师
- 2025年活动合同模版
- 专升本思政理论的试题及答案检验
- 2025年度智能家居环保住宅商品房预售资金监管与智慧社区服务合同
- 二零二五年度特色小吃餐饮承包经营协议
- 统编版(2025)七年级下册道德与法治第一课《青春正当时》教案(3课时)
- 孤岛交直流混合微电网群分布式低碳控制策略
- 2025年信阳职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 人教版美术八年级下册全册教案
- 隧洞运输车辆安全课件
- 用友软件销售合同(2025年)
- 节能环保新能源燃料项目商业计划书
- 江苏省91job智慧就业平台单位中心操作手册
- 职业生涯规划企业访谈
- 《周易》全文电子版
- 2024年修订版私营学校收购协议
评论
0/150
提交评论