问题

系统中的定时任务,过一段时间之后,不能运行。通过系统命令查看到系统有大量sendmail进程,导致文件描述符耗尽。以下主要通过分析整个处理过程,供大家参考。

处理过程

根据以上问题,分析步骤如下:

1、首先手动执行了一下定时任务,结果执行失败,通过错误判断是文件描述符被用光了。具体报错如下:

"cannot open

shared object file: Too many open files in system"

2、查看定时任务是否堆积,ps -ef | grep

没有发现任何任务在跑。猜测应该是其他问题导致,具体是什么,不清楚。

3、通过系统命令top看到有多个sendmail进程,然后ps -ef | grep

sendmail,发现大量进程。初步定位应该是sendmail的问题。首先将所有sendmail进程kill掉,然后定时任务可以执行了。一段时间后,重新查看进程,发现又有了一些sendmail进程,进一步定位问题。

/usr/sbin/sendmail

-FCronDaemon -i -odi -oem -oi -t -f root

4、通过pstree发现,sendmail进程是有crond守护进程启动的。crontab怎么会启动sendmail进程?原来crond在执行脚本时会将脚本输出信息以邮件的形式发送给crond用户,但是sendmail进程堆积的原因是什么呢?

init───2*[bash]

├─crond──102*[crond─┬─sendmail]

│└─sh───sh]

5、查看sendmail日志,发现大量的warning告警信息。经查原来是环境的postfix没有正常运行,导致大量sendmail进程阻塞。

postfix/postdrop[23110]:

warning: mail_queue_enter: create file maildrop/749274.23110: No

such file or directory

6、根据博文[1]中的方法,将crontab的第一行添加:MAILTO=””,然后查看确实没有了sendmail进程。

本以为解决了问题,但是过了几天发现系统负载升高,同样的方式查看,发现有了大量的postdrop进程,pstree发现发生了变化,原来postdrop进程是sendmail进程产生的,也就是说sendmail并没有完全解决掉。

init───2*[bash]

|-crond---125*[crond---sendmail---postdrop]

││└─sh───sh]

7、查看sendmail日志(/var/log/maillog),发现大量的warning告警信息,错误显示是权限问题,那么首先查看maildrop目录的权限(/var/spool/postfix/maildrop/),修改权限后,查看没有了该warning信息。

告警信息如下:

postfix/postdrop[21235]:

warning: mail_queue_enter: create file maildrop/577217.21235:

Permission denied

执行命令如下:

chown postfix.postdrop

/var/spool/postfix/public -R

chown postfix.postdrop

/var/spool/postfix/maildrop -R

chmod 777

/var/spool/postfix/maildrop -R(仅修改以上两步时,仍然有告警。)

8、基于稳妥考虑,将/etc/crontab的MAILTO设为"",这样保证crontab不发送日志,也就不会产生sendmail进程了。

9、通过pstree检查进程树状态,crond守护进程不会调用sendmail了,具体如下所示:

init───2*[bash]

├─crond

除此之外,在查看sendmail日志的时候,发现以下告警信息较多,应该是系统设置上有些问题。经查是由于/etc/postfix/main.cf配置文件中,inet_protocols

= all的原因。修改配置为inet_protocols = ipv4后,warning信息没有了。

postfix/postdrop[17405]:

warning: inet_protocols: IPv6 support is disabled: Address family

not supported by protocol

postfix/postdrop[17405]:

warning: inet_protocols: configuring for IPv4 support

only

参考

linux开了多个sendmail,Linux中的Sendmail问题及其解决办法相关推荐

  1. (linux vm虚拟机网络连接失败,重启网卡失败原因及解决办法)

    linux vm虚拟机网络连接失败,重启网卡失败原因及解决办法 0 .vm虚拟机下的网络三种连接方式详解 1. vm虚拟机以及宿主机没有vmnet1 vmnet8 网卡 2 网卡配置文件出错 测试网络 ...

  2. linux系统出现BUG:softlockup- CPU#7 STUCK FOR 22s 等字样的解决办法并永久生效

    linux系统出现BUG:softlockup- CPU#7 STUCK FOR 22s 等字样的解决办法并永久生效 厂家上门维护发现主板坏了,更换新的主板后,发现操作系统登陆不了, 临时解决方案 在 ...

  3. 【报错解决】linux网络编程报错storage size of ‘serv_addr’ isn’t known解决办法

    linux网络编程报错storage size of 'serv_addr' isn't known解决办法 报错如下: server.c:18:21: error: storage size of ...

  4. [Linux]使用宝塔面板做负载均衡时遇到的问题和解决办法

    [Linux]使用宝塔面板做负载均衡时遇到的问题和解决办法 参考文章: (1)[Linux]使用宝塔面板做负载均衡时遇到的问题和解决办法 (2)https://www.cnblogs.com/guan ...

  5. linux vi 按键删除键出现字母A,B,C,D 等字母解决办法

    linux vi  按键删除键出现字母A,B,C,D  等字母解决办法 使用root用户登录系统 使用命令修改vi配置文件     vi /etc/vim/vimrc.tiny 把set compat ...

  6. redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法

    redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法 事情的经过是这样的 记得以前曾经在VMware 5.5.3 上装过redhat 估计是9吧 当初我选的是图形 ...

  7. Python 爬虫中国知网论文过程中遇到的坑及解决办法

    假期,老师给布置了 Python 爬虫中国知网论文的任务,目前实现了登录和搜索功能,先写一下遇到的坑和解决办法吧. Python 爬虫中国知网论文过程中遇到的坑及解决办法 一. selenium 模块 ...

  8. GDI+中发生一般性错误的解决办法 from http://www.cnblogs.com/winzheng/archive/2008/12/23/1360440.html...

    GDI+中发生一般性错误的解决办法 这个错误经常发生,代码如下:    private  static  byte[] GetBytes (Image image)         {         ...

  9. Jupyter中打印所有结果的解决办法

    学习笔记,仅供参考 Jupyter中打印所有结果的解决办法 我们都知道,在Jupyter中,除非加上print,每个cell只会显示最后一个输出结果,这里,我们通过加上如下代码,使之打印所有的交互式输 ...

  10. ubuntu18.0.4 不能下载 libgd2-dev(ubuntu 20.04 安装perl 中GD 模块失败的解决办法)

    ubuntu18.0.4 不能下载 libgd2-dev 一.错误信息: Unable to locate package libgd2-dev 二.原因 没有对应源 到 https://packag ...

最新文章

  1. 谜题81:烧焦到无法识别
  2. python查询结果写入excel_python实现查询的数据写入到excel
  3. eyoucms问答 百度权重是什么
  4. mysql 文件组织_数据库如何组织数据?
  5. centos6 dns转发_CentOS6 配置DNS服务器
  6. VMware Fusion虚拟机的低分辨率问题(亲测有效)
  7. Jsp+Servlet+MYSQL注册登录案例(界面难看,ε=(´ο`*)))唉)
  8. cf1562D Two Hundred Twenty One
  9. 高效管理ASP.NET的JavaScript库
  10. python决策树逻辑回归_百面机器学习(逻辑回归以及决策树,leetcode)
  11. 海龟绘图两小时上手C语言 - 1 绘制直线
  12. 腾讯还在提高围棋AI绝艺的棋力,柯洁说已经超过当年AlphaGo
  13. 计算机组成原理微课版(谭志虎主编)预习笔记
  14. [BZOJ 5339] 教科书般的亵渎
  15. 班级量化考核系统php代码,班级管理量化考核及评分细则
  16. android http下载限速,安卓手机端两种让网盘不限速下载方法介绍
  17. 第一部分 知己知彼
  18. 六、DOM(上) - 章节课后练习题及答案
  19. 分布式锁-Redis解决方案和Redisson解决方案
  20. 02-赵志勇机器学习-Logistics_Regression-test(转载)

热门文章

  1. Python递归实现快速排序
  2. 找不到org.springframework.dao.support.DaoSupport的类文件
  3. opencv与两个摄像头实现双目标定与测距
  4. oracle查询一个字符串所在表
  5. 2021高考东莞高中成绩查询,东莞2021高考成绩查询系统入口
  6. 64位oracle客户端_开发小记-golang连接Oracle数据库配置
  7. mysql覆盖数据_理解MySQL数据库覆盖索引
  8. 微信拦截URL,使用自己内置的web组件打开URL,为什么没人声讨?
  9. 算出当前系统后某个月的日期_Python3.7知其然知其所以然-第十八章 日期函数
  10. unity获取脚本组件_Unity3D【脚本】获取游戏物体的Animator组件,并且修改动画属性 | 学步园...