Paieška


print PDF
/ skirsnio perpildymas dėl Qmail eilės

DĖMESIO: Šis vadovas taikomas tik OVH RELEASE 1! Nesinaudokite juo, jeigu naudojate plesk valdymo sąsają!

Kaip tai pastebėti?


Jūsų el. paštas užsiblokavęs, kai kurios paslaugos nepasileidžia (pvz., Apache).

Pasekmės


Pilnas sisteminis skirsnis (žr. Perpildytas sisteminis skirsnis). El. pašto eilė per didelė, qmail nesuvaldo proceso.

Priežastys

Blogai valdėte /etc/tcp.smtp ir jūsų serveris pradėtas naudoti SPAM siuntimui. Diskas pilnas. Siuntimo eilėje daug laiškų ir jums tėra viena išeitis: pradėti ją vykdyti iš naujo.

Sprendimas

Dėmesio! Ši intervencija labai delikati ir dėl jos pašto serveris gali nustoti veikti!

Prisijunkite per SSH ir atlikite šiuos veiksmus:

# tail -f /var/log/qmail/current
@400000003f883c8c05961f54 alert: unable to append to bounce message; HELP! sleeping...
@400000003f883c96062e9a7c alert: unable to append to bounce message; HELP! sleeping...
@400000003f883ca006c73cb4 alert: unable to append to bounce message; HELP! sleeping...
# /var/qmail/bin/qmail-qstat
messages in queue: 12001
messages in queue but not yet preprocessed: 117
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 2016016 1913988 0 100% /
/dev/hda2 36977736 8967660 26131676 26% /home
none 257272 0 257272 0% /dev/shm


Turite ištrinti katalogą ir pradėti nuo pradžių. Prieš tai sustabdome qmail:

# /etc/rc.d/init.d/qmail stop
stopping qmail [OK ]
# cd /var/qmail/
# ls -l
total 32
drwxr-sr-x 2 alias qmail 4096 jui 16 20:25 alias
drwxr-xr-x 2 root qmail 4096 jui 16 20:25 bin
drwxr-xr-x 2 root qmail 4096 jui 16 20:25 boot
drwxr-xr-x 2 root qmail 4096 oct 11 00:39 control
drwxr-xr-x 3 root qmail 4096 jui 16 20:25 doc
drwxr-xr-x 10 root qmail 4096 jui 16 20:25 man
drwxr-x
11 qmailq qmail 4096 jui 16 20:25 queue
drwxr-xr-x 2 root qmail 4096 oct 11 00:39 users
# rm -rf queue
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 2016016 834556 1079048 44% /
/dev/hda2 36977736 8967664 26131672 26% /home
none 257272 0 257272 0% /dev/sh


Naujai eilei sudaryti naudojame:
ftp://ftp.netmeridian.com/queue-fix.tar.gz
arba
http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz

Naudokime, pavyzdžiui, qmail-repair. Pradėsime atkurdami ir išarchyvuodami programinę įrangą:

[root@julien root]# mkdir /temp


[root@julien root]# cd /temp/


[root@julien temp]# wget http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz
--17:37:05-- http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz
=> `queue-repair-0.9.0.tar.gz'
Connection to pyropus.ca:80...Connected!
request HTTP, awaiting for a response...200 OK
Length: 13,913 [application/x-tar]

0K .......... ... 100% @ 23.47 KB/s

17:37:06 (23.47 KB/s) - `queue-repair-0.9.0.tar.gz' saved[13913/13913]

[root@julien temp]# tar xfz queue-repair-0.9.0.tar.gz

[root@julien temp]# cd queue-repair-0.9.0



Prieš viską pradėdami patikriname keitimus darbiniame kataloge (kad atkurtume saugią el. pašto eilę):

[root@julien queue-repair-0.9.0]# ./queue_repair.py -c -s 23 --no-bigtodo .



Jeigu viskas gerai, patikriname, ar teisingai atkurta eilė:

[root@julien queue-repair-0.9.0]# ls -l queue
total 36
drwx------ 2 qmails qmail 4096 tue 25 17:39 bounce
drwx------ 25 qmails qmail 4096 tue 25 17:39 info
drwx------ 2 qmailq qmail 4096 tue 25 17:39 intd
drwx------ 25 qmails qmail 4096 tue 25 17:39 local
drwxr-x--- 2 qmailq qmail 4096 tue 25 17:39 lock
drwxr-x--- 25 qmailq qmail 4096 tue 25 17:39 mess
drwx------ 2 qmailq qmail 4096 tue 25 17:39 pid
drwx------ 25 qmails qmail 4096 tue 25 17:39 remote
drwxr-x--- 2 qmailq qmail 4096 tue 25 17:39 todo



Dabar galima veikti, t.y. iš tikro sukurti pašto serverio naudojamą eilę, o po to patikrinti, ar viskas gerai.


[root@julien queue-repair-0.9.0] ./queue_repair.py -c -s 23 --no-bigtodo /var/qmail

[root@julien queue-repair-0.9.0]# ls -l /var/qmail/


Dabar reikia perkrauti qmail (nepamirškite nustatyti /).


# cd /
# /etc/rc.d/init.d/qmail start
Starting: qmail pop smtp
# echo test | mail oles@ovh.net
# tail -f /var/log/qmail/current
@400000003f883ce426b52c0c alert: unable to append to bounce message; HELP! sleeping...
@400000003f8840a31f2624dc alert: cannot start: unable to switch to queue directory
@400000003f88425517b081ac status: local 0/10 remote 0/20
@400000003f88426f0748a59c new msg 100179
@400000003f88426f074b1e6c info msg 100179: bytes 207 from qp 15605 uid 0
@400000003f88426f097eb3c4 starting delivery 1: msg 100179 to remote oles@ovh.net
@400000003f88426f0980da8c status: local 0/10 remote 1/20
@400000003f88426f1a6fd85c delivery 1: success: 213.186.33.73_accepted_message./Remote_host_said:_250_ok_1065894524_qp_30276/
@400000003f88426f1a7717d4 status: local 0/10 remote 0/20
@400000003f88426f1a7c4fc4 end msg 100179


Viskas vėl normalu.