Linux主机需要定时清理日志文件腾出空间,但有时候清理完日志文件后发现硬盘空间还是爆满,这个时候就需要手动查找出无用大文件进行清理。这里记录下常用的查看磁盘大小的命令以及一些问题。
du:用于列出每个文件或文件夹的大小
du是我们平常使用最多的查看磁盘容量的命令,常用的几个用法如下
du -sch,查询当前目录总占用空间,后面也可以跟指定文件
具体后面的参数含义,可以使用 man du 进行查看,这里不列举了。
df:显示目前系统上文件磁盘的使用情况
这个命令一般用于查看整个系统的磁盘使用情况,常用的有
df -h 目录路径,查看指定目录所在磁盘使用空间
菜鸟教程上的图。具体参数含义使用 man命令查看一下就好,这里的-h代表已可读的方式显示。上面每列的具体含义都有相应的英文,就不一个个说了。
du和df命令的区别:
既然二者都是列出系统容量,那么二者的区别在哪里呢?
du:通过搜索文件来计算每个文件的大小然后累加
df:通过文件系统获取空间大小
若用户删除了一个正在运行的应用程序所打开的文件,那么du返回的值为减去了该文件后的大小,df返回的则是不减去该文件的大小,因为文件句柄还在使用,直到应用程序释放句柄df才不会将其统计在内。
注意
为了防止使用不同命令出现不同的结果,我们删除日志文件的时候避免直接使用 rm- rf xxx,可以采用将该文件清空的方式,比如 echo “” > xxx.log,配合shell脚本定时执行效果更佳。
然而假如不小心使用了rm,我们需要定位出哪些文件的句柄没有被释放,即已经被删除且正在被使用的文件。使用“lsof | grep deleted” 命令找出处于删除状态下的文件,若其所在进程暂时没用,可以使用 “kill -9 pid”直接杀掉。
参考:58沈剑老师的一篇文章--具体啥名忘记了。。。
网友评论