使用logwatch监控每日日志,统计分析后发邮件,但是今天没有收到邮件。
排查过程,及解决方法如下:
1. 手动执行每日任务,任务正常运行,正常发邮件,并且没有任何错误:
# test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
2. 查看系统日志(命令: journalctl --system),任务正常执行了,但是postfix把邮件退回了:
报错内容为:to=<kevin@qgbf.rangotec.com>, orig_to=<root>, relay=local, delay=16, delays=15/0/0/0.01, dsn=5.2.2, status=bounced (cannot update mailbox /var/mail/kevin for user kevin. error writing message: File too large)
由于超过了邮箱大小,无法更新kevin用户的邮件, 所以postfix把邮件退回了。
详细日志如下:
Jan 29 06:25:01 qgbf CRON[7259]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))
... 略
Jan 29 06:25:19 qgbf postfix/pickup[1443]: 6B9AE2F20070: uid=0 from=<root>
Jan 29 06:25:19 qgbf postfix/cleanup[7531]: 6B9AE2F20070: message-id=<20260128222519.6B9AE2F20070@qgbf.rangotec.com>
Jan 29 06:25:19 qgbf postfix/qmgr[1444]: 6B9AE2F20070: from=<root@qgbf.rangotec.com>, size=5451, nrcpt=1 (queue active)
Jan 29 06:25:19 qgbf postfix/local[7533]: 6B9AE2F20070: to=<kevin@qgbf.rangotec.com>, orig_to=<root>, relay=local, delay=16, delays=15/0/0/0.01, dsn=5.2.2, status=bounced (cannot update mailbox /var/mail/kevin for user kevin. error writing message: File too large)
Jan 29 06:25:19 qgbf postfix/cleanup[7531]: 72ED42F20073: message-id=<20260128222519.72ED42F20073@qgbf.rangotec.com>
Jan 29 06:25:19 qgbf postfix/bounce[7541]: 6B9AE2F20070: sender non-delivery notification: 72ED42F20073
Jan 29 06:25:19 qgbf postfix/qmgr[1444]: 72ED42F20073: from=<>, size=7527, nrcpt=1 (queue active)
Jan 29 06:25:19 qgbf postfix/qmgr[1444]: 6B9AE2F20070: removed
Jan 29 06:25:19 qgbf CRON[7255]: pam_unix(cron:session): session closed for user root
Jan 29 06:25:19 qgbf postfix/local[7533]: 72ED42F20073: to=<kevin@qgbf.rangotec.com>, orig_to=<root@qgbf.rangotec.com>, relay=local, delay=0.02, delays=0.01/0/0/0.01, dsn=5.2.2, status=bounced (cannot update mailbox /var/mail/kevin for user kevin. error writing message: File too large)
Jan 29 06:25:19 qgbf postfix/qmgr[1444]: 72ED42F20073: removed
3. 查看的kevin用户的邮箱大小。 存储了100M的邮件。
kevin@rangotec:~# du -h --max-depth=1 /var/mail/*
0 /var/mail/root
52M /var/mail/www-data
100M /var/mail/kevin
4. 查看postfix 配置的邮箱大小,可以看到设置的大小为100M
sudo vi /etc/postfix/main.cf
mailbox_size_limit = 104857600 <<<<------------设置的为100M, 刚好超了
5. 解决方法:
不限制邮箱大小,或者指定大小。
mailbox_size_limit = 0
然后重新加载配置文件:
# systemctl reload postfix
验证:手动执行下每日任务,邮件可正常接收。命令见第一步。