如何快速的、大量的清理Linux系统废物文件

相信大家在用久服务器后肯定会发现自己的服务器系统盘非常容易膨胀

服务器的磁盘占用

就像这样

虽然你可能只是有恐惧症罢了

这该如何解决?

花钱扩容硬盘?但是你既然都看到了这篇文章你应该不会使用这个方法吧
如果你要阅读这篇文章,你需要掌握的

  • 正确连接到 ssh 服务器,在客户端使用 ssh root@<server_ip>
  • 正确使用 cd <d> 来进入一个文件夹
  • 正确使用 ls 列出服务器文件
  • 正确使用 rm [] <d/f> 删除文件及重要参数例如 r 和 f

实践

Warn & Info

一般的 web 服务器,有 nginxphpmysqldockerpma,我们清理 Linux 系统就从这些方面入手,假设你使用的是 Ubuntu 22.04 ,其他系统不一定能用,但是应该是通用的,只不过包含 apt 的命令是执行不了的

一定要先备份文件!!!避免重要文件被误删!!!
笼统的办法


这个办法非常通用,但是清理的效果不一定明显

日志文件

网站日志

日志文件应该没有什么人没看到他,这里一般包含 nginx 的访问日志,包括站点的访问日志,如果你的操作系统中,安装了宝塔,日志文件一般在 /www/wwwlogs 这个文件中,所以我们可以使用以下命令删除

1
2
3
cd /www # 进入 /www 目录
rm -rf /www/wwwlogs # 强制递归删除 /www/wwwlogs
mkdir wwwlogs # 再建立 wwwlogs 文件夹

系统日志

然后再入手系统日志,就是包括维护信息啥的,他在 /var/log ,同样删除

1
2
3
cd /var 
rm -rf /var/log
mkdir log

systemctl 日志

然后删除 systemctl 的日志,但是这里使用 journalctl  ,使用以下命令删除

1
journalctl --vacuum-time=7d # 清理 7 天前的 systemctl 日志

apt-get 日志

然后再清理 apt-get 的日志

1
apt-get clean -y # -y 用于强制确认

缓存

Windows 中缓存位置位于 %temp% ,但是 linux 中是 /tmp/ 所以直接删除即可

1
rm -rf /tmp/* # 强制递归删除 /tmp/ 目录下的所有文件(夹)

不需要的软件包

使用 apt-get 清理不需要的软件包,也是可以的,但是有风险,这一般会删掉没有依赖或者废弃的软件包

1
rm -rf /tmp/* # 强制递归删除 /tmp/ 目录下的所有文件(夹)

更适用于自己的办法


这种方法就比较零散了,一般是人工/机械地产生大文件,需要你进行手动查找和删除,一般没什么作用

手动定位大文件

定位根目录下的大文件

1
du -h --max-depth=1 / # 最大文件深度为 1 ,查找根目录下的,推荐设置为 1 ,然后再进

我这边查找到了根目录的每一个文件夹的大小

我这边发现 /home 目录似乎占用了过多的硬盘空间,为了演示,在 /home 目录里面查找大文件

定位二级目录的大文件

使用 cd 进入你怀疑有大文件的目录

然后再使用 df 查找,但是查找的目录要改成 rt

1
du -h --max-depth=1 / # 最大文件深度为 1 ,查找根目录下的,推荐设置为 1 ,然后再进

手动查找大文件

如果你还想定位,那你继续定位

查找指定特点的大文件

合理使用 find 命令

1
find / -type f -size +1G 2>/dev/null

用find查找大文件

/ 根目录
-type f 查找选项为 file 文件并非文件夹
-size +1G 查找大于 1G 的文件
2>/dev/null 把权限错误的文件的输出放到 /dev/null

查找到手动删除即可