Hur raderar jag vissa mail från mailkön i sendmail?


Om du har sendmail på din linux- eller UNIX-server och vill få bort vissa men inte alla mail från mailkön kan det vara lite tricksigt.

 

Som du kanske känner till så ligger varje mail som är uppköat i en folder, tex /var/spool/mqueue/

 

Varje mail ligger enskilt både som en fil för själva mailet och en fil för informationen om processningen av mailet i mailkön. Vanligtvis med ett prefix på q och ett annat prefix som börjar på d innan filnamnet. Resten av filnamnet är vanligtvis samma tecken så det är ganska enkelt att identifiera ett visst mail.

 

Men om du har väldigt många mail som är uppköade till en och samma mottagare och om denna mottagares epostserver har ett tillfälligt problem kan det vara skönt att tillfälligt flytta alla dessa mail. Att göra det för hand är dock väldigt tidskrävande.

 

Detta kommando är enklare att köra:

 

find . -exec grep -l search_pattern {} \;|  xargs ls -la

 

..om vi bryter ned det så kommer find leta i den aktuella katalogen (.) och leta efter search_pattern, därefter skickas resultatet till xargs.

 

Xargs klarar väldigt mycket input så har du många mail är det perfekt, den tar en rad itaget.

 

Byt ut ls -lah mot mv eller rm efter vad du vill göra. Testkör alltid med ls först så du inte av misstag råkar radera fel mail. Det finns inget sätt att få tillbaks filerna när du raderat dem. Börja med mv kanske?

 

Lycka till.

 

 

Taggar: sendmail
Senast uppdaterad:
2017-04-20 11:21
Av: :
compartment AB
Ny version:
1.0
Resultat av röstning:0 (0 röster)

Du kan inte kommentera den här frågan

Chuck Norris has counted to infinity. Twice.

bannerbyte.eu