grep & 統計 & 排列 常用指令

cat /var/log/maillog #讀取郵件紀錄

#以 relay= 為分隔點, 列出"relay="以後
| awk '{FS="relay=";print $2}'

#以 ] 為分隔點, 列出"relay="以前
| awk '{FS="]";print $1}'

#由0-9 & a-z 作排序
| sort

#統計相同資料的數量
| uniq -c

#將統計的數量遞減排序
| sort -r

grep 搜尋含有字串的該行資料
| grep "Sep 4"
| grep "unknown"

grep 搜尋不含"User unknown"的該行資料
| grep -v "User unknown"

bzcat 寫法如下 :
#bzcat maillog.* | awk '{FS="relay=";print $2}' | awk '{FS="]";print $1}' | sort | uniq -c | sort -r

引用:4wei-diary

Posted in 標籤: | 0 意見

Sendmail 指令發監控信

直接發信指令
/bin/df -h | /usr/bin/mail -s "server capacity" yourname@yourdomain

下完指令,可以直接看maillog是否有發信紀錄即可。
tail -f /var/log/maillog

Posted in 標籤: | 0 意見

Sendmail 設定 queue time & MaxRecipients

1、設定郵件在 queue 的時間
當郵件寄不到對方時,郵件會停留在 queue & 重複嘗試重送,sendmail 預設值是 5 天才會放棄重送並把郵件從 queue 中刪除。

將修改這個時間,vi /etc/mail/sendmail.cf,裡面有一行:

“O Timeout.queuereturn=5d”

5d 代表 5 天,我只想發送失敗的郵件,停留在 queue 裡面 24小時,可以改成:

“O Timeout.queuereturn=24h”

然後重新啟動 sendmail 即可。

2、限制每封郵件收件者數量
Sendmail 預設沒有限制每封郵件的收件者數量,要限制收件者人數,vi /etc/mail/sendmail.cf,裡面有一行是:

#O MaxRecipientsPerMessage=100

將第一個 “#” 刪除,然後重新啟動 sendmail 即可。

Posted in 標籤: | 0 意見