如果发现某一个Linux站点的磁盘空间实际使用值和系统报告的不一致。


可能是两种情况:


1. 在用户目录之外的其他地方还有和该用户同一系统用户的其他文件或目录;


2. 系统quota信息不同步。


判断具体是哪种情况的方法:


a) 找出该站点对应的系统用户名,可以通过察看/etc/passwd或/usr/prima/etc/usermap文件找到


b) 察看系统quota报告的该用户的使用量:


quota user_XXXXXXXX



du -sk /www/users/domain.com


比较。


b) 执行find /www -xdev -user user_XXXXXXXX,看在除了用户空间/www/users/domain.com之外的地方有没有属于这个系统


用户的文件/目录,如果有看这些文件的大小,是不是足以弥补差额。如果发现是这种情况,最好将其他的文件的属主改掉。


(以上假设/www是独立的分区。如果没有独立的/www分区,则需要在/区查找:find / -xdev -user user_XXXXXXXX。)


c) 如果find的结果表明的确该用户的磁盘用量和quota报告的不一致,则说明系统quota的信息不准确,需要用quotacheck命令重新检查:


quotaoff /www


quotacheck -m /www


quotaon /www


检查完成之后,再用quota user_XXXXXXXX命令看一下quota信息是否已经准确。


[注意]

如果quotacheck -m /www报错,说明quota信息文件已经已经损坏,只能用

quotacheck -mc /www

来重建quota信息文件,之后需要从主控执行检测与修复,加上“同时更新正常站点” ,才能重新设置空间限制的信息。



产生系统quota不准确的原因


系统quota信息不准确的情况,可能会在系统非正常重启时发生,在使用软raid的时候也偶见这种情况发生。




quotacheck命令的使用


在执行quotacheck之前,一定要先把该分区的quota选项关闭,所以要先执行quotaoff。-m参数是告诉quotacheck不要将该分区自动remount为只读模式,而是在读/写模式下检查。当然,这样检查出来的结果可能是不准确的,但是如果不加-m参数,在quotacheck运行期间,该分区将不能写,会影响用户的使用。一般而言quotacheck -m的运行时间不会很长。


在系统安装的时候,也会用到quotacheck,那时加的参数是-mc,-c参数的意思是根本不看现在存在的aquota.user文件里的内容,直接重新检查,并重新创建aquota.user文件。如果使用这个参数检查,会丢失以前所设的各用户磁盘配额限制的信息,必须随后从主控运行检测与修复(同时更新正常站点)才能重建磁盘配额限制信息。在没有-c参数的情况下,quotacheck会保留以前的限制信息,只是重新检查用量信息,如果不一致则更新之。在aquota.user文件完全被破坏的情况下,才会用到-c参数。


quotacheck的详细使用方法请用man quotacheck察看

收藏于 2009-04-13