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沈剑老师的一篇文章--具体啥名忘记了。。。

更多推荐

linux点亮硬盘灯命令 简书,Linux关于磁盘空间相关命令