磁盘空间清理
起因
想在服务器上安装一些软件,然后发现有许多乱起八糟的以前尝试使用的软件残留。所以决定进行一次全方位的清理。首先是进行软件的卸载,这个不多赘述。接下来就是磁盘空间的释放。
第一步:查看磁盘信息
输入命令:df –lh /df -Th查看磁盘信息
如下图:

如何解决空间占用呢:删文件
- 问:删除什么文件?
- 答:删除占用磁盘空间大,但又无用的文件。
- 问:什么是无用的文件?
- 答:如果对系统不熟悉的话,日志可能是你第一的下手目标。
第二步:定位最大文件
输入命令: cd / 进入根目录
输入命令:du -h --max-depth=1/du -sh *寻找当前目录下哪个文件夹占用空间最大

以上两个命令之后,可以看到 /usr 此路径占用较大磁盘空间,占用了 21G。
==注意==:最后一项显示 24G,它表示当前目录所有文件占用磁盘空间总和容量是 24G。经过几番判断后,最后定位到 tomcat 的日志文件。

由上图可以判断,17G 文件在当前目录文件中。
输入命令:ll -ihS 将文件以从大到小顺序展现

最终定位文件为:catalina.out 这个日志文件。
使用工具GDU定位大文件
Github:dundee/gdu: Fast disk usage analyzer with console interface written in Go (github.com)
下载
找到最新的TAG,下载 gdu_linux_amd64.tgz
然后上传到服务器上
配置使用
# 授权
chmod +x gdu_linux_amd64
# 重命名并使其能够在任意目录调用
mv gdu_linux_amd64 /usr/bin/gdu
# 基本使用
gdu

在选定的目录中点击回车就可以进入目录中查看文件的大小情况了。
第三步:删除文件
删除命令:rm –f catalina.out,删除之前最好确认下是否要下载来提供给开发人员分析日志。
成功删除文件后输入命令:df –lh,发现磁盘空间仍是满的状态。跟图一完全没有区别。
难道说是需要重启系统吗?LINUS 会这么不友好么?
谷歌一下,发现了这么一段话:
在 Linux 或者 Unix 系统中,通过 rm 或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink),然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
输入命令:/usr/sbin/lsof| grep deleted,确认删除文件是否被占用

确实被占用。根据第二列提供的pid,输入命令:kill -9 13117 杀掉进程。
再次输入命令:df –lh
如此,磁盘空间就被释放了。
其他日志清理指导
- systemd-journald 日志清理:https://blog.csdn.net/GX_1_11_real/article/details/100974324
- mongodb 日志清理:https://blog.csdn.net/csdnhsh/article/details/91059645