AIX文件系統/var空間100%的問題


一、問題說明
/var/spool/mqueue目錄下出現了多個df打頭的文件,導致/var空間最終100%


EBANK_P570_MAIN/var/spool/mqueue#ls -l

total 8732656

-rw-r--r-- 1root system 571 Aug 20 2012 Qfq7JGw5K21643126

-rw-r--r-- 1root system 569 Aug 23 2012 Qfq7MGvxch987418

-rw-r--r-- 1root system 572 Jun 25 02:00 Qfs5OHxF6d1339552

-rw-r--r-- 1root system 570 Jul 04 01:59 Qfs63HwefO1359972

-rw-r--r-- 1root system 773 Jul 04 02:02 Qfs63I1DfN1790554

-rw-r--r-- 1root system 570 Jul 06 02:00 Qfs65Hx5Vq1315640

-rw-r--r-- 1root system 773 Jul 06 02:02 Qfs65I16Vp1483544

-rw------- 1root system 760 Jul 06 02:39 Qfs65IaKdR1397376

-rw-r--r-- 1root system 573 Jul 07 00:58 Qfs66GvJMf1332120

-rw-r--r-- 1root system 0 Aug 23 2012 dfq7JGw5K21643126

-rw-r--r-- 1root system 0 Aug 23 2012 dfq7MGvxch987418

-rw-r--r-- 1root system 1153011528 Jul 06 02:00 dfs65Hx5Vq1315640

-rw-r--r-- 1root system 1153012885 Jul 06 02:02 dfs65I16Vp1483544

-rw------- 1root system 1153012885 Jul 06 02:39 dfs65IaKdR1397376

-rw-r--r-- 1root system 1011801454 Jul 07 00:58 dfs66GvJMf1332120
二、原因分析:
1、查詢資料:/var/spool/mqueue目錄包含與隊列中的每條消息關聯的臨時文件。即發送郵件前存放郵件的臨時目錄,每個定時任務執行時的輸出結果都會以郵件的形式通知用戶,郵件隊列目錄是/var/spool/mqueue,郵郵件隊列包含四類郵件隊列文件:數據文件、控制文件、臨時文件和抄本文件。文件的格式如下:

dfAA00312     數據文件

qfAA00312     控制文件

tfAA00312     臨時文件

xfAA00312     抄本文件

 

2、進一步查看文件的內容,是crontab執行/ora_backup/rep/repsj/imp.sh腳本生產了大的mail郵件,導致/var空間滿

EBANK_P570_MAIN/var/spool/mqueue#more dfs66HxcE51216754

Cron Environment:

SHELL =/usr/bin/sh

PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin

CRONDIR=/var/spool/cron/crontabs

ATDIR=/var/spool/cron/atjobs

LOGNAME=oracle

HOME=/oracle


Your "cron" job executed on EBANK_P570_MAIN onMon Jul 7 00:40:00 BEIST 201

exportBATCH_AUTO_RUN=Y; . ./.profile; sh /ora_backup/rep/repsj/imp.sh


produced the following output:


20140423

20140706

。。。。。


 

3、原因確認:由於crontab中的腳本輸出內容過多,導致mail過大,最終/var空間滿,因此解決方法如下

a,腳本的輸出重定向到/dev/null,由於腳本不再有輸出,也就不會有郵件發出

   * * * * * a.sh> /dev/null 2>&1.

b,crontab的前面添加MAILTO=""

$ crontab -e

At the top of the file, enter:

MAILTO=""

 

4、補充確認,通過監控系統趨勢圖確認原因

最近系統/var的利用率圖可以看出,

1),最近/var空間的利用率一直在緩慢增長,6月26日左右有一個突然增長,但最近才出現了100%的問題

2),每晚其實都有個利用率的高峰,但是到了6點鍾,利用率就下降為正常了,這是因為6點鍾定時任務清空了oracle用戶的mail

EBANK_P570_MAIN/#crontab -l oracle

0 6 * * *   cat/dev/null > /var/spool/mail/oracle

3),為什么大文件會出現在/var/spool/mqueue目錄?

通過在測試機測試,

a, crontab生產的輸出最先放在/tmp目錄下,(對應圖2 /tmp0:30開始空間利用率不斷增加)

b, crontab命令執行結束后,mv到/var/spool/mqueue目錄下准備發送郵件給oracle用戶,(此時/var空間突然增長)

c, 正常情況下oracle用戶接受,放在/var/spool/mail/oracle文件中

d, 6點執行的定時任務情況oracle的mail郵件,對應圖1的/var突然下降

 

4,今日凌晨為什么沒出問題?

由於/var昨日清理的比較徹底,mqueue目錄能夠保存了需要發送的郵件,空間從9%增加到42%,然后6點鍾被清空

 

 

圖1:/var空間利用率圖

 

 

 

圖2 、/tmp文件系統利用率

 

 

圖3、今天/var利用率

 

三、解決方案
1、臨時解決方法:

快速清理方案,轉移大數據文件到/backup/目錄下

mv /var/spool/mqueue/df* /backup/

 

2、永久解決方案,因此也建議腳本的書寫要重定向,特別是有大量結果輸出的執行腳本

         腳本重定向到/dev/null,防止出現大日志文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM