本站承诺永不接任何虚假欺骗、联盟广告、弹窗广告、病毒广告、诱导充值等影响用户体验的广告,广告屏蔽插件会影响本站部分功能,还请不要屏蔽本站广告,感谢支持!

当前位置:首页 / 正文

2021-01-19 | 编程技术 | 1870 次阅读 | 等你评论 | 1 次点赞 | 繁体

发现问题

这两天看到几台服务器比较异常,平常流量跑满,突然就没有了流量,TCP 连接也没了。于是登录上服务器查看,首先想重启 nginx 服务,结果报错,大致意思就是磁盘空间已满。通过 df -h 命令查看,发现各个分区还有很充足的空间,然后 df -i 一看,发现分区 inode 已经满了。

定位问题

第一反应是 /var 目录下的文件导致,于是用下面脚本找出 /var 下各个目录文件数量,逐步定位到 /var/spool/postfix/maildrop

#!/bin/sh
find /var/ -maxdepth 1 -type d | while read dir; do 
    count=$(find "$dir" -type f | wc -l)
    echo "$dir : $count"
done

找到目标,首要就是先杀掉这里面的大量文件,三十多万文件。采用 rsync 同步清除,效率比较快。

在其他分区创建空目录:

// 杀死所有 sendmail 和 postdrop 进程
ps -e | grep sendmail | cut -d ' ' -f2 | xargs kill
ps -e | grep postdrop| cut -d ' ' -f2 | xargs kill

mkdir -p /home/a.test
rsync -av --delete /home/a.test/  /var/spool/postfix/maildrop/

查看其他错误日志,发现都是 crond 引发的 sendmail

du -sh 查看找到了一个巨大的文件 /var/log/mailog 。head、tail 查看内容,发现全是同样的内容行,如下:

May 2 5:29:23 lcha2 postfix/postdrop[1443]: warning: mail_queue_enter: create file maildrop/383480.1443: No such file or directory
May 2 5:29:23 lcha2 postfix/postdrop[1269]: warning: mail_queue_enter: create file maildrop/330426.1269: No such file or directory
May 2 5:29:23 lcha2 postfix/postdrop[1439]: warning: mail_queue_enter: create file maildrop/357169.1439: No such file or directory
May 2 5:29:23 lcha2 postfix/postdrop[1654]: warning: mail_queue_enter: create file maildrop/984222.1654: No such file or directory

解决方法:

1、 修改邮件日志输出条件

vim /etc/rsyslog.conf

找到 mail.*

改成 mail.err

2、 在 crontab 中第一行增加 MAILTO="" 发送为空

MAILTO=""

3、将 /etc/crontab 中的 MAILTO 改为 ""

4、将 /etc/postfix/main.cf 配置文件中,inet_protocols = all 改为 inet_protocols = ipv4

5、 crond 执行的命令最后加上 &> /dev/null

via

crond 引发大量sendmail进程的解决办法 - Yun维攻城狮
http://www.89cool.com/411.html
Crontab导致Linux文件描述符枯竭-king_wangheng-ChinaUnix博客
http://blog.chinaunix.net/uid-26896862-id-3809084.html

标签: linux异常

猜你喜欢
Fail2Ban安装使用及常用配置教程
Fail2Ban安装使用教程因为作为一个 linux 入门级别的小白, 很多人都会把一些 web 面板(比如宝塔面板)作为自己管理 vps 的首选, 而当我一段时间登录宝塔面板之后, 有时就会看...
局域内网的服务器利用个人电脑做跳板机访问互联网
公司内网的服务器均不连公网(互联网),问题来了:现在服务器上需要安装一些软件怎么办?目前一般都是编译安装!先将软件在外网机器上下载好,然后再复制到服务器内,编译安装!这种方式缺点就是比较麻烦,编...
据传宝塔面板后台会上传服务器上运行的网站信息
近期有网友根据 Github 上公开的源代码,发现宝塔面板会收集如下信息(信息真假自辩):(1)收集你所在服务器上的域名,并检查域名是否可用;(2)收集面板操作日志包括时间、用户ip、请求方式、...
如何定位Mysql中CPU占用高的查询语句
今天 mysql 服务器突然 CPU 告警,记录一下问题查找的过程第一步查看具体是哪个线程占用CPU最高1、在 Linux 中使用 top 命令找到 mysql 进程 PID2、指定进程 PID...
新安装Debian系统常用设置
解决 debian 系统没有 sudo 命令的问题刚装机的 debian 系统是没有 sudo 命令的,其实执行下面指令就可以安装:apt-get install sudo然后还需要把当前用户加...
MAC系统制作ubuntu启动U盘教程
最近新买了一台便宜的低功耗小主机惠普 T620,CPU 是 AMD 的 GX-415GA,4G 内存,准备给他刷个 ubuntu 系统,用来做简易的 NAS,并且安装 homeassistant...
树莓派开启Samba共享(smb)
什么是 Samba用简洁易懂的话说就是可以通过局域网,使用 Samba 给树莓派交换文件,具体专业的怎么说并不重要,可以去别的网上搜索,在这里只需要记住 Samba 可以传文件。安装 Samba...
Navicat Premium 15.0.21 破解 Windows64位
Navicat 是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面
mysql8利用CTE特性实现递归查询
递归查询分为父子查询和子父查询。 父子查询: 根据父 id 查询下面所有子节点数据; 子父查询: 根据子 id 查询上面所有父节点数据; 下边就利用 mysql8 新增语
(首次提交评论需审核通过才会显示,请勿重复提交)