
drwxr-xr-x 2 smmsp smmsp 4.0K May 6 23:31 mqueue
drwxrws--- 2 smmsp smmsp 29M May 8 10:40 mqueue-client
Wie Sie sehen, mqueue-client
sind 29 Megabyte nicht gesendeter E-Mails darin enthalten. Dies scheint wahrscheinlich auf eine interne Funktion zurückzuführen zu sein, die Mails an den lokalen Host sendet und dabei fehlschlägt.
Ich habe zahlreiche Versuche unternommen, die Warteschlange zu leeren, aber keiner hatte Erfolg. Das Ergebnis ist ein Prozess, der erhebliche CPU-Ressourcen verbraucht:
16287 smmsp 20 0 50212 44m 2416 R 85 4.4 965:35.45 sendmail-msp
Ich habe versucht, den Prozess zu beenden, den Sendmail-Dienst anzuhalten, den Inhalt des Mqueue-Clients zu löschen und sogar zum SMMSP-Benutzer zu wechseln. Aber nichts davon hat funktioniert. rm
Beim Versuch, die E-Mail zu entfernen, bleibt es hängen.
Wie kann ich diese Warteschlange leeren?
Sobald ich das getan habe, werde ich alles zu Postfix verschieben.
Antwort1
Wie von Janne in den Kommentaren vorgeschlagen, habe ich meine durchgesehen syslog
und festgestellt, dass beim Senden vieler E-Mails Fehler aufgetreten sind, die dazu geführt haben, dass sie zurückgestellt wurden und sich somit im Ordner gestapelt haben mqueue-client
.
Nach einigen Nachforschungen stellt sich herauscrontabist so eingestellt, dass bei Abschluss/Hinweisen/Warnungen/Fehlern E-Mails an den Root gesendet werden. Durch das Ausgeben crontab -e
und Hinzufügen MAILTO=""
oben in der Konfiguration werden keine weiteren E-Mails mehr versendet, Problem behoben!
Jetzt lösche ich die rund 1,5 Millionen fehlerhaften E-Mails mithilfe mqueue-client
dieses Bash-Skripts:
#!/usr/bin/env bash
cd mqueue-client
deleted=0
for i in `ls`
do
rm -f $i
percentage=$(bc <<< "scale=2; ($deleted / 1035435) * 100")
((deleted++))
echo "Deleted $i. Files deleted $deleted. $percentage% complete."
done
Ausführen von /var/spool mit./filename
Aktualisieren
Leider wurde die Mail-Warteschlange nach dem Ausführen dieses Skripts die ganze Nacht über nicht wesentlich reduziert. Das lag daran, dass ich die CRON-Ausführung nicht deaktiviert hatte, die eigentlich die Warteschlange leeren sollte, aber den Rückstand vergrößerte. Hoffentlich sollte jetzt, da dies deaktiviert ist, alles gelöscht werden.