原文地址:https://www.lujun9972.win/blog/2020/05/25/如何批量删除linux-mail中的cron邮件/index.html
我在 cron 中设置了每天定时运行 Linux中国 的选题脚本。然后由于cron会将任务的执行结果通过邮件通知用户,这样一来过了一段时间后我的 mail box 中就充满了 CRON 发来邮箱了。
看了网上的一些资料,我知道可以通过 echo 'd *'|mail
来删除所有 mail box 中的邮件,但是这样会把非 CRON 的邮件也删掉,这不是我想要的。
好在翻阅了一下 man mail
发现 d
命令后面可以通过直接跟 发件人地址
或 /关键字
的方式删除指定发件人的邮件,或删除标题中包含 关键字
的邮件。
由于所有的 CRON
发送的邮件都以 (Cron Daemon)
作为发件人,因此可以通过 echo '"(Cron Daemon)"'|mail
来删除所有 CRON 发出的邮件(这里不要忘了括号外的双引号,因为 ()
在指定邮件的语法中有特殊意义)
那么若我只是想删除某个 CRON 任务发送的邮件又该怎么办呢? CRON
发送的邮件的标题格式一般都是这样的 Cron <主机名> CRON命令
.
echo -n |mail
Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/lujun9972": 11 messages 10 unread >U 1 (Cron Daemon) Mon May 25 15:03 26/964 "Cron <lujun9972@VM_0_8_centos> date" U 2 (Cron Daemon) Mon May 25 15:04 26/964 "Cron <lujun9972@VM_0_8_centos> date" U 3 (Cron Daemon) Mon May 25 15:05 26/964 "Cron <lujun9972@VM_0_8_centos> date" U 4 (Cron Daemon) Mon May 25 15:06 26/964 "Cron <lujun9972@VM_0_8_centos> date" U 5 (Cron Daemon) Mon May 25 15:07 26/964 "Cron <lujun9972@VM_0_8_centos> date" U 6 (Cron Daemon) Mon May 25 15:08 26/964 "Cron <lujun9972@VM_0_8_centos> date" 7 (Cron Daemon)