两个命令常用于计算/查看磁盘使用率:
df: 查看文件系统空间使用率.
du: 常用于查看一个目录下的文件占用磁盘空间大小。
今天一同事,在Solaris 10上做数据库升级遇到问题,把ORACLE_HOME空间不够了,赶紧df看一下,8G的空间使用了95%,但有点疑惑的是,整个Oracle数据库软件,不可能占用8G空间的呀?肯定里面的某个或几个不相关文件占用了比较大的空间,跑到ORACLE_HOME目录下 du -sk,屏幕显示的是2G,这个跟df的结果相差太远了。难道du计策有误,没有统计到相关的目录? 还是自己写段bash shell来处理,检查ORACLE_HOME下的每个目录占用空间情况:
#!/bin/bash
for i in `find ${ORACLE_HOME} -type d -print `
do
du $i | awk '{if ($1>1000000) {print $1,$2}}'
done
跑一下这段代码,问题来了,在目录.patch_storage(隐藏目录)占用了5个多G,这个目录真是藏污纳诟呀,把多次opatch跑时的相关备份都存在这里。一,两年前打补丁的备份也在那里。opatch之所以可以rollback,看来就是从这里把相关的文件restore回去的。
从这里可以看出的是,du不会把隐藏目录纳入计算的,在空间使用计算时,要注意这点。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/45188/viewspace-1022672/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/45188/viewspace-1022672/