我的服务器存储空间快满了。如果我在 Centos 上运行 df -h
命令,它会显示我的 /var
目录位于磁盘容量的边缘,如下所示:
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/sda3 205G 23G 172G 12% /
/dev/sda2 243G 225G 5,0G 98% /var
/dev/sda1 289M 23M 251M 9% /boot
tmpfs 1,8G 0 1,8G 0% /dev/shm
none 1,8G 104K 1,8G 1% /var/lib/xenstored
如果我使用 du -chs
检查 /var
中文件的总大小,它会显示:
5,3G .
5,3G total
我假设MySQL正在使用剩余的220G,所以我执行下一个查询来检查数据库的总大小:
SELECT SUM((data_length+index_length)/POWER(1024,3)) tablesize_gb FROM information_schema.tables
输出是下一个:
+-------------------+
| tablesize_gb |
+-------------------+
| 0.748469822108746 |
+-------------------+
1 row in set (0.05 sec)
我真的不知道我在这里错过了什么——有人能帮助我吗?
从du -s /var/* | sort -n
开始,看看哪个文件夹中的内容最多。 然后从那里开始处理文件系统。 很可能有一组日志文件已经失控。 当你找到这些文件时,你必须决定如何处理它们。 删除和压缩是两个选项 - 通常,删除更有效,并且您很可能不需要这些文件。 您可能需要 root 权限才能查看某些目录的内部。
除了 mysql 之外,还有其他使用/var 的软件包,并且有两种可能的情况会导致/var 目录上的空间太小:
- 几个大文件占用了/var 空间的很大一部分
- 大量小文件共同占用了/var 空间的很大一部分
这里列出了一些不错的建议,例如交互式磁盘使用情况分析器 ncdu。您可以从 epel 存储库下载 ncdu。