1. Cách khắc phục lỗi exim dead but subsys locked
Khi sử dụng Direct Admin quản lý mail nghĩa là bạn đang dựa trên 2 dịch vụ mail
có sẵn của Centost đó là dovecot cổng 110 để nhận mail và exim cổng 25 SMTP để
gửi mail. Một ngày đẹp trời, vào DA bạn phát hiện ra dịch vụ exim bị stop và
không có cách nào để start nó lại.
Login vào command line với user root và dùng lệnh #service exim status bạn nhận
được thông báo như sau:Exim dead but subsys locked.
Để xử lý lỗi này, trước hết bạn cần phải vào thư mục /etc và kiểm tra xem có 2
file eximdisable và exim.conf hay không bằng lệnh như sau:
#cd /etc
#ls exim*
Nếu bạn không thấy có file exim.conf thì chắc chắn không khởi động được exim.
Bạn sẽ có thể tìm thấy file exim.conf.orig, bạn thực hiện lệnh copy như sau
#cp exim.conf.orig exim.conf
Sau đó khởi động lại exim bằng lệnh sau
#/etc/init.d/exim restart
Vậy là xong.
Trường hợp đã có file exim.conf mà vẫn không khởi động lại được exim bạn sẽ
phải thực hiện thêm lệnh đổi tên (hoặc xóa hẳn) file eximdisable rồi khởi động
lại như sau:
# /etc/eximdisable /etc/eximdisable-BAK
# rm -f /etc/eximdisable
# /etc/init.d/exim restart
2. cách kiểm tra và quản lý mail queue của exim
Một trong những nguyên nhân khiến exim có thể bị dừng là do
các mail trong queue quá nhiều. Bạn có thể dùng các lệnh dưới đây để kiểm tra
và giải phóng mail trong queue
1) Kiểm tra mail trong hàng đợi exim dùng một trong 3 lệnh sau
# mailq
#exim -bp
#/usr/sbin/exim -bp
Các queued mail của exim thường nằm trong spool, bạn có thể vào kiểm tra bằng 2
lệnh sau
#cd /var/spool/exim/msglog/
#cd /var/spool/exim/input/
Để xóa các mail trong queue hoặc gửi lại mail các bạn có thể dùng các lệnh sau
#runq hoặc #exim -q để xóa các mail trong hàng đợi mà ko cần gửi lại
Nếu như sau khi xóa, bạn vẫn nhận thấy có một số mail đọng lại thì có thể là do
một flag được đặt cho mail nên nó không được gửi đi và. Bạn dùng lệnh sau gửi
lại các mail và xóa chúng
#exim -qf (Gửi các mail có flag sau đó xóa)
#exim -qff (Gửi lại tất cả các mail kể cả mail không có
flag sau đó xóa)
Lưu ý trong một số trường hợp phải gõ đường dẫn đầy đủ đến file exim như sau
#/usr/sbin/exim -q
#/usr/sbin/exim -qff
Trong một số trường hợp nếu các lệnh exim -q nói trên không có tác dụng, chúng
ta có thể phải dùng đến các lệnh sau:
Xoá một mail đang nằm trong Queue:
#
exim -Mrm (message-id)
Xoá toàn bộ email đang có trong Queue:
Gửi toàn bộ email đang có trong Queue:
Chỉ xem danh sách các email nào đang ở trạng thái Frozen:
#exim
-bpr | grep frozen | wc -l
Xóa toàn bộ email ở trạng thái Frozen:
hoặc
#exiqgrep
-z -i | xargs exim -Mrm
Chỉ xóa những email trạng thái Frozen đã hơn 1 ngày:
#exiqgrep
-zi -o 86400
Login vào command line với user root và dùng lệnh #service exim status bạn nhận được thông báo như sau:Exim dead but subsys locked.
Để xử lý lỗi này, trước hết bạn cần phải vào thư mục /etc và kiểm tra xem có 2 file eximdisable và exim.conf hay không bằng lệnh như sau:
#cd /etc
#ls exim*
Nếu bạn không thấy có file exim.conf thì chắc chắn không khởi động được exim. Bạn sẽ có thể tìm thấy file exim.conf.orig, bạn thực hiện lệnh copy như sau
#cp exim.conf.orig exim.conf
Sau đó khởi động lại exim bằng lệnh sau
#/etc/init.d/exim restart
Vậy là xong.
Trường hợp đã có file exim.conf mà vẫn không khởi động lại được exim bạn sẽ phải thực hiện thêm lệnh đổi tên (hoặc xóa hẳn) file eximdisable rồi khởi động lại như sau:
# /etc/eximdisable /etc/eximdisable-BAK
# rm -f /etc/eximdisable
# /etc/init.d/exim restart
2. cách kiểm tra và quản lý mail queue của exim
1) Kiểm tra mail trong hàng đợi exim dùng một trong 3 lệnh sau
# mailq
#exim -bp
#/usr/sbin/exim -bp
Các queued mail của exim thường nằm trong spool, bạn có thể vào kiểm tra bằng 2 lệnh sau
#cd /var/spool/exim/msglog/
#cd /var/spool/exim/input/
Để xóa các mail trong queue hoặc gửi lại mail các bạn có thể dùng các lệnh sau
#runq hoặc #exim -q để xóa các mail trong hàng đợi mà ko cần gửi lại
Nếu như sau khi xóa, bạn vẫn nhận thấy có một số mail đọng lại thì có thể là do một flag được đặt cho mail nên nó không được gửi đi và. Bạn dùng lệnh sau gửi lại các mail và xóa chúng
#exim -qf (Gửi các mail có flag sau đó xóa)
#exim -qff (Gửi lại tất cả các mail kể cả mail không có flag sau đó xóa)
Lưu ý trong một số trường hợp phải gõ đường dẫn đầy đủ đến file exim như sau
#/usr/sbin/exim -q
#/usr/sbin/exim -qff
Trong một số trường hợp nếu các lệnh exim -q nói trên không có tác dụng, chúng ta có thể phải dùng đến các lệnh sau:
Xoá một mail đang nằm trong Queue:
# exim -Mrm (message-id)
Xoá toàn bộ email đang có trong Queue:
Gửi toàn bộ email đang có trong Queue:
Chỉ xem danh sách các email nào đang ở trạng thái Frozen:
#exim -bpr | grep frozen | wc -l
Xóa toàn bộ email ở trạng thái Frozen:
hoặc
#exiqgrep -z -i | xargs exim -Mrm
Chỉ xóa những email trạng thái Frozen đã hơn 1 ngày:
#exiqgrep -zi -o 86400
0 comments:
Post a Comment