很突然,线上有一台服务器,突然报表不存在。所有的项目只要涉及到数据库的,都直接报表不存在。SSH到服务器上一看,进程也活着,目录下的文件也存在着,怎么就表不存在了呢?
当时也没有注意,觉得可能是程序出错了。就restart了一下数据库,结果,这回出大事了,数据库无法启动。再启动,仍然是这个问题。连忙看了一下日志,发现报错原因居然是磁盘满了。这,不科学啊。df -h 看一下,果然,系统盘自带的20G,剩余空间为0。
怎么办?先清一下apt-cache,发现多出100多M的空间,尝试启动了一下,果然数据库启动了。再检查到底是谁占了?直接du -sh /var/log。居然只有200M,那是怎么回事呢?
继续 找,du -sh 一个目录一个目录的看。发现居然是mail目录写满了,一个mail文件。17G,用tail -n 1000 看了一下。文件居然都来自crontab ,再打开crontab -l,才发现,原来是有一个5年前的svn的勾子在运行。这个勾子,每5秒一次,就这样辛苦的运行了5年,终于通过邮件,硬生生的将磁盘写满了。
知道问题所在就简单了。关闭crontab (因为已经不用了)。同时清空邮件文件。再df -h,发现多出17G空间。好嗨森