一、问题说明
/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,防止出现大日志文件

AIX文件系统/var空间100%的问题的更多相关文章

  1. (转)清理AIX的/var文件系统大小

    在ROOTVG空间有限,且/var文件系统的空间已经足够大的情况下,/var文件系统空间快满了,这种情况怎么处理?IBM给了一个很好的处理流程: 使用find 命令检查在/var目录中所有大于1MB的 ...

  2. AIX文件系统和存储部署(转)

    文件系统和存储部署 文件系统的管理是AIX存储结构中的最后一环.定义完lv后,可采用如下两种方式使用lv: a.作为裸设备(raw)使用,一般是数据库型的应用 b.在lv上定义文件系统,并提供文件和数 ...

  3. 诡异的磁盘空间100%报警分析得出df -h与du -sh的根本性差别

    前言:早晨磁盘报警刚清空完tomcat和nginx日志,使用的命令是类似echo "" > show_web-error.log或者> show_web-debug.l ...

  4. df - 报告文件系统磁盘空间的使用情况

    总览 df [OPTION]... [FILE]... POSIX 选项: [-kP] GNU 选项 (最短方式): [-ahHiklmPv] [-t fstype] [-x fstype] [--b ...

  5. Linux 文件系统磁盘空间与连接文件

    磁盘与目录的容量 我们知道磁盘的整体数据hi在superblock块中,但是各文件的容量则在inode中记载. df:列出文件系统的整体磁盘使用量 由于df主要读取的数据几乎都是针对整个文件系统,因此 ...

  6. J S 脚本语言 if() { if { } else { } } var a =100; switch { case ( ) break ; } 基础详解 , 最下面有例子

    注释语法 注释语法// 多行注释/ JS输出语句 JS样式尽量靠最下面写 <script type="text/javascript">//嵌入JS开始代码 //ale ...

  7. AIX扩展文件系统的大小

    由于AIX系统空间不够需要增加硬盘,希望增加文件系统的空间,折腾了好几天怎么都不能扩展文件系统的空间,原来是把硬盘加错了卷组 首先,确定文件系统所在的LV /dev/datalv      270.0 ...

  8. AIX smit下创建逻辑卷、添加文件系统并挂载

    --AIX smit下创建逻辑卷,添加文件系统并挂载------------------------------------------2013/10/15 首先创建逻辑卷smit lv ,这里没多大 ...

  9. AIX 5.3下创建逻辑卷、添加文件系统并挂载

    首先创建逻辑卷smit lv ,这里没多大问题就不细述了. 输入要创建的逻辑卷名.所属卷组.分配多少个LP.创建在哪块磁盘上等,另外还可以设置镜像,默认是只有一份镜像的,即不做mirror. 到此LV ...

随机推荐

  1. 【破解APP抓包限制】Xposed+JustTrustMe关闭SSL证书验证!

    转载:https://www.jianshu.com/p/310d930dd62f 1 前言 这篇文章主要想解决的问题是,在对安卓手机APP抓包时,出现的HTTPS报文通过MITM代理后证书不被信任的 ...

  2. 安装最新docker-ce失败解决

    报错 下载 检查本地是否已经安装 rpm -qa |grep containerd.io 如果有低版本的,卸载即可. 安装新版的containerd.io软件包 wget https://downlo ...

  3. nexus私服库被误删如何恢复

    恢复步骤: 1,登录nexus服务器,找到nexus安装目录(默认/usr/local/下): 2,找到sonatype-work/nexus/trash 下找到你删除的库: 3,copy到指定的so ...

  4. Vuex模块:开启命名空间

    模块开启命名空间后,享有独自的命名空间. { "模块1":{ state:{}, getters:{}, mutations:{}, actions:{} }, "模块2 ...

  5. 逻辑回归(Logistic Regression)二分类原理及python实现

    本文目录: 1. sigmoid function (logistic function) 2. 逻辑回归二分类模型 3. 神经网络做二分类问题 4. python实现神经网络做二分类问题 1. si ...

  6. linux 自定义函数

    用别人的车子出行,总感觉别扭,那怎么自定义自己的车轮子呢? 通过上面的求两个参数的和例子,我们可以学到定义一个函数基本的步骤, function getSum(){  SUM=$[$n1+$n2]  ...

  7. DAY 吐

    今天所学: 一,Linux的文件和目录管理 #1 cd( 变更用户所在目录)直接运行cd会进入root的/root下,后面跟目录名,会进入指定目录下( 后面只能是目录名,不能跟文件名). #2 pwd ...

  8. Redis二进制反转算法分析

    在 redis 源码中 dictScan 算法中用到了用到了非常经典的二进制反转算法,该算法对二进制的反转高效而实用,同时对于理解位运算也有非常大的帮助.先呈现源码: /* Function to r ...

  9. 分库分表之后,id 主键如何处理

    基于数据库的实现方案 数据库自增 id 这个就是说你的系统里每次得到一个 id,都是往一个库的一个表里插入一条没什么业务含义的数据,然后获取一个数据库自增的一个 id.拿到这个 id 之后再往对应的分 ...

  10. hdoj1011(树上分组背包)

    题目链接:https://vjudge.net/problem/HDU-1011 题意:给定一颗树,每个结点有两个属性,即花费V和价值w,并且选择子结点时必须选择父结点,求总花费不超过m的最大价值. ...