Linux-Postfix&Extmail郵件隊列問題及日常維護
Postsuper:postsuper命令是postfix隊列維護作業。該命令的使用僅限於超級用戶。
默認情況下,postsuper執行在所有Postfix隊列目錄中使用-s和-p命令行選項所請求的操作,這包括帶有郵件文件的傳入,活動和 延遲目錄以及反彈, 延遲,跟蹤和刷新目錄與日誌文件。
Postsuper語法格式:
postsuper [-psSv] [-c config_dir] [-d queue_id] [-h queue_id] [-H queue_id] [-r queue_id] [directory ...]
參考鏈接:
http://www.tutorialspoint.com/unix_commands/postsuper.htm
http://www.postfix.org/postsuper.1.html
Mailq語法:mailq [-q]
mailq可列出待寄郵件的清單,包括郵件ID,郵件大小,郵件保存時間,寄信人,收信人,以及郵件無法寄出的原因,提供管理員參考的信息。mailq實際上是執行sendmail -bp指令。參數: -v 顯示較詳細的信息。
1.查詢郵件列表:
postqueue -p
mailq
postqueue -p |tail
postqueue -p | wc -l
2. 顯示郵件內容:postcat -q Queue_ID
2.刪除隊列:
刪除隊列中所有退信郵件:postsuper -d ALL deferred
刪除某ID郵件:postsuper -d Queue_ID
清空某用戶郵箱隊列所有郵件
mailq | awk "/[email protected]/ {print $1}" | tr -d "*" | xargs -n 1 postsuper -d
全部刪除(該操作會刪除所有隊列信息,請三思):postsuper -d ALL
刪除郵件隊列
mailq | tail +2 | awk 'BEGIN { RS = "" } / xxx@example\.org$/ { print $1 }' | tr -d '*!' | postsuper -d
postsuper -d ALL hold/deffered... 刪除某個隊列裏所有郵件
postqueue -f (全部)
postqueue -s 主機名稱(個別對象)
清除單個用戶的郵件隊列postquene
#!/bin/bash cd /tmp /usr/sbin/postqueue -p|egrep '[email protected]'|awk '{print $1}' > spam_queue.txt for i in `cat /tmp/spam_queue.txt` do /usr/sbin/postsuper -d $i done
3.其他操作:
扣住郵件:postsuper -h Queue_ID
回復某郵件:postsuper -H Queue_ID
重新排程:
postsuper -r Queue_ID
postsuper -r ALL
立即投遞隊列中所有郵件(慎用):postfix flush
查看隊列郵件:postqueue -p
服務相關:
Postfix啟動:postfix start
Postfix停止:postfix stop
重新加載postfix配置文件:/usr/sbin/postfix
查看mailq和postsuper用法修復隊列等:postfix check
postmap 檢查語法錯誤,或使文件立即生效。
Postmap mail.c 文件中有語句錯誤,
Postmap virtual 是加密生效
Postalias /etc/alias 使郵件別名文件立刻生效
日誌相關:
郵件日誌:tail -f /var/log/maillog
系統日誌:tail -f /var/log/messages
Clamd相關:tail -f /var/log/clamav/clamd.log tail -f /var/log/clamav/freshclam.log
maildrop相關:tail -f /var/log/maildrop.log
Eg.tail -f /var/log/maillog -n 10
Postfix及Extmail日常使用相關筆記信息。
Linux-Postfix&Extmail郵件隊列問題及日常維護