Go to top

Trang chủ  » Thiết kế website giá rẻ

Các lệnh hay dùng với Postfix

Giả sử bạn đang quản trị máy chủ mail MDaemon trên Windows trong công ty. Vì lý do bản quyền hay bị virus nhiều quá, máy mail bị đứng liên tục không nối lên mạng được, không gởi/nhận mail được, bạn nghe lời bạn bè giới thiệu qua dùng postfix. Thấy nó chạy đã quá nhưng vì công ty còn xài modem để gởi/nhận mail, nhiều lúc mail nằm trong queue chờ gởi đi mà không biết phải xử lý thế nào...thì xin đọc tiếp.

Tất cả các thông điệp ra/vào đều đi qua queue và chúng được quản lý bởi queue manager hay nói rõ hơn chương trình/lệnh qmgr. Có 5 loại queue trên postfix. Đó là active, bounce, corrupt, deferred, hold. Và tất cả đều nằm trong /var/spool/postfix

Người quản trị mail hay dùng 2 lệnh postsuperpostqueue để quản lý thông điệp nằm trong queue. Thông điệp gởi đi sẽ nằm lại trong deferred queue nếu bị trục trặc nhỏ, ví dụ, không thể tìm thấy host vì hiện tại mạng chưa kết nối, hay vì máy host bên kia đang tạm thời bị sự cố. Những thông điệp nào bị từ chối bởi người nhận hay bị lỗi trầm trọng do máy chủ mail chưa thiết lập đúng thì sẽ bị trả về người gởi ngay lập tức nghĩa là những thông điệp này sẽ không nằm trong queue. Thông điệp nào nằm trong queue sẽ được postfix gởi đi mỗi 17 phút (1000 giây) cho đến khi chúng đã được gởi đi thành công. Bạn có thể thay đổi thời gian postfix kiểm tra thông điệp trong queue (thay vì 1000 giây một lần) bằng cách khai báo/thay đổi giá trị của queue_run_delay trong /etc/postfix/main.cf, postfix sẽ tiếp tục cố gắng gởi đi những thông điệp trong queue trong vòng 5 ngày (5d), sau đó sẽ trả lại người gởi vì lý do gì đó mà thông điệp không gởi được. Bạn có thể thay đổi thời gian postfix giữ thông điệp trong queue bằng cách thay đổi giá trị của maximal_queue_lifetime Để xem giá trị hiện tại (5d), gõ dòng lệnh

[root@proxy kdlc]# postconf | grep maximal_queue_lifetime

maximal_queue_lifetime = 5d

Thông thường postfix sẽ gởi đi khoảng 5 thông điệp một lần. Tùy vào số thông điệp trong queue mà postfix sẽ tự tăng giá trị này lên. Giá trị ( default_destination_concurrency_limit) tối đa là 20. Bạn không nên thay đổi giá trị này vì rất có thể nó sẽ làm những máy mail bạn gởi thông điệp đến sẽ bị tắt nghẽn/chậm chạp đi vì thông điệp gởi đến nhiều quá. Tuy nhiên bạn có thể hạn chế số lượng thông điệp gởi đi ra ngoài cùng lúc bằng cách thay đổi smtp_destination_concurrency_limit hay sử dụng local_destination_concurrency_limit để hạn chế việc giao (deliver) thông điệp đến người dùng. Thông thường giá trị chuẩn của smtp_destination_concurrency_limit là 20 (tức là bằng với default_destination_concurrency_limit) còn local_destination_concurrency_limit là 2. Làm sao mình biết? Gõ postconf | grep smtp_destination_concurrency_limit postconf | grep local_destination_concurrency_limit thì bạn sẽ thấy.

  • Để xem có bao nhiêu thông điệp trong queue, gõ: postqueue -p (đây là lệnh tương đương với mailq)
  • Để xóa một thông điệp trong queue, gõ: postsuper -d queue_id queue_id là giá trị trong cột đầu tiên khi bạn dùng lệnh postqueue -p
  • Để xóa tất cả các thông điệp trong queue, gõ: postsuper -d ALL Lưu ý: chữ ALL phải viết hoa.
  • Để tạm giữ lại (hold) một thông điệp trong queue, gõ: postsuper -h queue_id Muốn không tạm giữ nữa thì gõ: postsuper -H queue_id Lưu ý: chữ H viết hoa.
  • Để re-queue thông điệp, gõ: postsuper -r queue_id hay postsuper -r ALL Bạn sẽ dùng re-queue trong trường hợp máy chủ mail bạn vừa được điều chỉnh lại với các giá trị hợp lệ và bạn muốn những thông điệp đang nằm trong queue (vì lý do máy chủ đã cấu hình không đúng) nay sẽ được gởi đi với các giá trị hợp lệ sau khi bạn vừa cấu hình lại.
  • Để xem nội dụng của thông điệp trong queue, gõ: postcat -q queue_id
  • Để tống đi (flush) các thông điệp trong queue, gõ: postqueue -f Lưu ý: bạn không nên thực hiện thao tác này mà nên chờ postfix tự gởi lại. Thực hiện thao tác này nhiều lần, có thể làm máy mail của bạn bị trì trệ. Bạn có thể tống đi thông điệp trong queue cho một domain bạn biết bằng cách gõ: postqueue -s domain.com
    Lưu ý: domain.com phải nằm trong biến fast_flush_domains hay relay_domains
    Ví dụ: khai báo fast_flush_domains = $relay_domains domain.com trong /etc/postfix/main.cf.

    domain.com chỉ là một ví dụ, bạn cần thay đổi một tên thật khi sử dụng. Mỗi lần sửa đổi /etc/postfix/main.cf, bạn phải khởi động lại postfix với dòng lệnh /etc/init.d/postfix restart hay service postfix restart

    Hy vọng bài viết trên sẽ giúp đỡ việc quản lý queue trong postfix được hiệu quả hơn. Mọi ý kiến, thắc mắc xin gởi đến larry at vnlinux dot org

  • Các tin tức khác:

    Trojan mới: huỷ diệt ĐTDĐ và hiển thị... đầu lâu

    Phát hiện lỗ hổng nghiêm trọng trong MySQL

    Các DN thuộc VINASA chuẩn bị đi thăm và gây dựng quan hệ hợp tác với Nhật Bản

    'MU Việt Nam' sẽ thoả mãn sự chờ đợi của người hâm mộ

    ICANN nâng mức giá tên miền .net

    Hoa hậu ảnh kỹ thuật số

    Ấn Độ: Công nghệ số về làng trên... xe ba gác

    Internet là phương tiện để lan truyền khủng bố?

    Phát hiện lỗ hổng của Windows 2000

    Hotmail thu tiền dịch vụ nhận mail qua Outlook Express

    Danh mục

    Hãy gọi cho chúng tôi để được tư vấn miễn phí

    0989 722 522

    TRUNG TÂM PHÁT TRIỂN WEBSITE - ỨNG DỤNG - THIẾT BỊ CHUYÊN NGHIỆP TOPSITE

    Địa chỉ: 41/1, Phường Trung Mỹ Tây Quận 12, TP Hồ Chí Minh.
    Email: hotro@topsite.vn - info@topsite.vn Tel: 0978.893.678 - 0938 869 787
    MSDN/GPĐKKD: 19025687954
    MST: 0310368322
    Số TK: 0501000001371 tại Ngân Hàng Vietcombank Chi nhánh Vĩnh Lộc
    © 2004 - 2014 Copyright. All rights reserved. Bản quyền thuộc về công ty thiet ke web ITECHCO CO.,LTD

    Chúng tôi chấp nhận thanh toán qua:

    liberty reservengan luongonepaysoha payvisaweb money1web money2paypalpayone