最近有台系统盘才10G的服务器咔咔报警,一共才10G的空间,运维还设置了80%的报警阈值,实在难顶。为了清理硬盘里的垃圾,敲了不少命令,怕以后忘了,记录一下。
首先输入df -h
查看一下硬盘空间占用情况,可以看到已使用80%,为了不让他报警烦我,要找点东西出来清理一下。
第一步先看看,是不是存了什么占地方的大家伙
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr
很可惜,在这台服务器没存大文件,不然删一个文件就能解除报警了。猜想是有大量的小文件占地方,于是调低筛选值,100M
改成5M
看看,发现/var
目录下好多小文件,还是.log
结尾的,一看就很适合删的样子。
第二步来到目标目录下,不仅限/var
哦,还可以是/run, /usr
啥的,敲个命令,看下各个文件夹的大小。
du -sh *
可以看到这个local
大的很,然后进去翻了又翻,发现没啥能删的。。。再想想办法。
我的系统是centos的,突然想到yum可能会缓存一点垃圾,进入目录一看,200多M,那好办了
yum clean all
200多M搞定。
清完yum已经解除报警了,但是来都来了,删点日志再走吧,进入/var/log/journal
,最简单的方法自然是rm -f *
,但那是粗人行径,难登大雅之堂,我们可以优雅的清理日志。
稍微优雅点,可以echo '' > yourlogfile.log
,这种方法可以避免之后因随意删除导致的日志写入失败等异常问题。
顺带解决未来问题的话,可以配置一下journalctl --vacuum-time=1w
,这是只保留1周日志的意思,journalctl --vacuum-size=50M
,这是只保留50M日志的意思,这样就不用以后频繁的跑来人工操作了。
才疏学浅,就这么三板斧了,没了。