Pages

Thursday, September 25, 2014

Purge sendmail

Problem description:

Somehow your sendmail outgoing message queue got flooded by e.g. a job and you want to remove all of the messages to be delivered.


Problem resolution:

Outgoing messages in the sendmail queue are stored in /var/spool/mqueue. In order to get an overview of the messages you could execute the following sendmail command:
1
sendmail -bp

As your sendmail queue got flooded with a lot of messages, this command might take forever. So instead of querying all of the stored messages you can also check the files directly:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@server01 mqueue]# pwd
/var/spool/mqueue
[root@server01 mqueue]#
[root@server01 mqueue]# ls -al
...
-rw-------  1 root smmsp    1285 18. Mai 10:35 qfr4I8ZSBn009790
-rw-------  1 root smmsp    1242 18. Mai 10:35 qfr4I8ZSu1009786
-rw-------  1 root smmsp    1233 18. Mai 10:35 qfr4I8ZumY009830
-rw-------  1 root smmsp    1253 18. Mai 10:35 qfr4I8ZUOF009794
-rw-------  1 root smmsp    1257 18. Mai 10:35 qfr4I8ZXPu009798
-rw-------  1 root smmsp    1253 18. Mai 10:35 qfr4I8ZZhj009802
...
[root@server01 mqueue]#
[root@server01 mqueue]# ls -al | wc -l
34439
[root@server01 mqueue]#

There is no explicit command for removing all messages. You can directly delete them with “rm”. In order to remove all messages, we just delete the queued files:
1
2
3
4
5
6
7
8
9
10
11
12
[root@server01 mqueue]# pwd
/var/spool/mqueue
[root@server01 mqueue]#
[root@server01 mqueue]# rm -f *
[root@server01 mqueue]#
[root@server01 mqueue]# ls -al
insgesamt 1128
drwx------  2 root mail 1138688 20. Mai 11:06 .
drwxr-xr-x 16 root root    4096 11. Mai 2011  ..
[root@server01 mqueue]#

“sendmail -bq” should now report an empty mail queue:
1
2
3
4
[root@server01 mqueue]# sendmail -bp
/var/spool/mqueue is empty
          Total requests: 0
[root@server01 mqueue]#
source : http://kb.initso.at/2013/05/how-to-remove-all-messages-from-a-sendmail-mail-queue/

No comments:

Post a Comment