今天收到一封报警邮件,内容如下:
------------------------------------
报警内容: Free disk space is less than 15% on volume /var
------------------------------------
报警级别: PROBLEM
------------------------------------
监控项目: Free disk space on /var (percentage):10 %
------------------------------------
报警时间:2015.10.07-09:56:24
这条报警邮件的信息已经很清楚了,是/var目录下的空间不足了,我们来看一看是怎么回事。
首先到目录下查看df -h的时候,空间剩余9%,说明这个空间还在不断的收缩中。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 7.8G 908M 6.5G 13% /
/dev/sda6 7.8G 6.7G 746M 91% /var
/dev/sda5 7.8G 2.0G 5.5G 27% /usr
/dev/sda1 122M 12M 104M 10% /boot
tmpfs 48G 36K 48G 1% /dev/shm
/dev/shm 48G 36K 48G 1% /tmp
/dev/sda7 497G 391G 81G 83% /home
然后在/var/spool/clientmqueue下发现了大量的文件,绝大部分的空间消耗都在这儿。
随便拿出一条来看看到底是什么内容。发现是一个脚本在检查listener的日志。
# more dfs32Ct1KE012443
Start: 20140402205501
checking listener listener ...OK
checking listener listener_1525 ...OK
checking listener listener_1528 ...OK
checking listener listener_1523 ...OK
checking listener listener_1522 ...OK
End: 20140402205516
进一步进行验证,拿出最新的5个文件,查看文件内容也是如此。
clientmqueue]# ls -lrt|tail -5
-rw-rw---- 1 Oracle smmsp 228 Oct 7 10:02 dft97221Lc010415
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:03 qft97231cW026036
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:03 dft97231cW026036
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:04 qft97241rm007778
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:04 dft97241rm007778
clientmqueue]# more dft97241rm007778
Start: 20151007100401
checking listener listener ...OK
checking listener listener_1525 ...OK
checking listener listener_1528 ...OK
checking listener listener_1523 ...OK
checking listener listener_1522 ...OK
End: 20151007100416
说明基本可以说明是因为检查listener的脚本产生了大量的日志文件。
因为这种日志文件对我们确实没有太多的用处,可以考虑删除,当然直接删除还是会报错误的,可以慢慢分批删除 ls|xargs -n 10 rm
删除后空间马上释放出来了。释放了近6G的文件。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 7.8G 908M 6.5G 13% /
/dev/sda6 7.8G 1.1G 6.4G 15% /var
/dev/sda5 7.8G 2.0G 5.5G 27% /usr
/dev/sda1 122M 12M 104M 10% /boot
tmpfs 48G 36K 48G 1% /dev/shm
/dev/shm 48G 36K 48G 1% /tmp
/dev/sda7 497G 391G 81G 83% /home
问题现在解决了,我们来看看问题是怎么回事,对于crontab 中设置的job如果有输出内容,这些内容会以mail的形式发送给对应的cron job用户,如果这个时候sendmail没有启动就会在这个路径下产生这些日志文件。
首先抓取了最新的文件内容。可以看到文件生成的频率很高,几乎是每分钟一个文件。
clientmqueue]# ll
total 64
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:08 dft97281ag005351
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:09 dft97292uQ011260
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:12 dft972C1Xg025752
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:13 dft972D11d025507
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:14 dft972E1IS008404
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:15 dft972F1Oi023669
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:16 dft972G1Xr006590
-rw-rw---- 1 oracle smmsp 228 Oct 7 10:17 dft972H1I8022068
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:08 qft97281ag005351
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:09 qft97292uQ011260
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:12 qft972C1Xg025752
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:13 qft972D11d025507
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:14 qft972E1IS008404
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:15 qft972F1Oi023669
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:16 qft972G1Xr006590
-rw-rw---- 1 oracle smmsp 919 Oct 7 10:17 qft972H1I8022068