frame

Sveiki apsilankę!

Jei forume lankaisi pirmą kartą, kviečiame registruotis ir prisijungti prie diskusijų.

Prisijungti Registruotis

Laiškų eilės išvalymas Linux serveryje

iv_vytenisgiv_vytenisg Super Moderator
edited vasario 18 Į Pašto serveriai
Jeigu Jūsų serveryje buvo vykdomas masinis laiškų siuntimas, Jums turėtų būti aktualus laiškų eilės išvalymas po siuntimo sustabdymo. O galbūt norite ištrinti konkretų gavėją iš eilės tam, kad laiškas nebebūtų siunčiamas? Šiems veiksmams atlikti pateikiame populiariausių pašto tarnybų laiškų eilės atvaizdavimo bei trynimo komandas.


Sendmail


Tam, kad galėtumėte matyti siunčiamų laiškų eilę Sendmail tarnyboje, visų pirma turite sukurti eilės atvaizdavimo failą. Tai atliekama įvykdžius vieną iš komandų:
# mailq# sendmail -bp

Jums bus pateikiamas atsakymas:
/var/spool/mqueue (1 request)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- 
p61J75u5037681 893 Fri Jul 1 14:07 8BITMIME (Deferred: Connection timed out with example.com.)

Total requests: 1

Tada galėsite nueiti į failą /var/spool/mqueue ir ištrinti visus failus:
# cd /var/spool/mqueue# ls# rm *


qtool.pl įrankis

Kadangi SendMail nesuteikia galimybės tiesiogiai pašalinti laiškų iš eilės, galite naudoti qtool.pl skriptą patalpintą Sendmail kodo direktorijoje. Visų pirma atsidarykite laiškų eilę:
# mailq

Gausite atsakymą, kaip pavyzdžiui:
		/var/spool/mqueue (1 request)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
p61J75u5037681      893 Fri Jul  1 14:07 
8BITMIME   (Deferred: Connection timed out with example.com.)
					 
		Total requests: 1

Nusikopijuokite Q-ID reikšmę, šiuo atveju p61J75u5037681, ir paleiskite qtool.pl:
# ./qtool.pl -C /etc/mail/sendmail.cf -d /var/spool/mqueue/p61J75u5037681

Šiame kode:

  • -C /etc/mail/sendmail.cf - nurodomas Sendmail konfigūracijos failas.
  • -d /var/spool/mqueue/p61J75u5037681 - ištrinama žinutė pagal jos konkretų ID numerį. Šiuo atveju pagal Q-ID.
Tam, kad galėtumėte ištrinti visus laiškus pagal siuntėjo domeno pavadinimą, visų pirma turite nustatyti QID numerį, kuris gali būti naudojami pagal grupę arba rankiniu būdu:
# QIDS="qid1 qid2 qidN"

arba:
# QIDS="$(mailq | grep -B1 'domenas.lt' | grep '^[a-z]'  | awk  '{print $1}' | sed  's/\*$//')"

Naudokite bash'ą pasikartojančiam visų laiškų trinimui iš konkretaus domeno:
for q in $QIDS
do
  /usr/local/bin/qtool.pl -C /etc/mail/sendmail.cf -d /var/spool/mqueue/$q
done


PostFix


Norėdami matyti siunčiamų laiškų eilę PostFix tarnyboje, turite naudoti komandą:
# postqueue -p

Norint išvalyti visą laiškų eilę, įvykdykite komandą:
# postsuper -d ALL

Norint išvalyti sustabdytus laiškus, įvykdykite šią komandą:
# postsuper -d ALL deferred


Konkretaus laiško pašalinimui iš eilės turite visų pirmą sužinoti jo ID. Tai galite atlikti naudojantis komanda:
# postqueue -p | grep "pastas@domenas.lt"

Jums bus pateikiamas atsakymas, kaip pavyzdžiui:
# 056CB129FF0    5513 Sun Feb 26 02:26:27  pastas@domenas.lt

Dabar galite ištrinti šį laišką iš eilės su šia komanda:
# postsuper -d 056CB129FF0


EXIM


Laiškų eilės pateikimui naudokite šią komandą:
# exim -bp

Konkretaus laiško trinimui galite naudoti šią komandą:
# exim -Mrm IDnumeris

Visų laiškų išvalymui iš eilės naudokite komandą:
# exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

arba:
# exim -bp | exiqgrep -i | xargs exim -Mrm




Pažymėtos temos:
Norėdami palikti komentarą, turite prisijungti arba registruokis.