Email

後綴隊列為空時斷開調製解調器

  • November 7, 2011

在 /etc/ppp/ip-up.d/script 我有以下執行 fetchmail 當 ppp0 介面啟動(連接)並且當它完成時調製解調器自動結束網際網路連接。

#!/bin/sh
/usr/bin/fetchmail -v -f /etc/fetchmailrc -L /var/log/fetchmail.log
killall wvdial

這完美地工作。現在我需要在 fetchmail 命令執行下面的腳本中添加一些東西,檢查 postfix 的郵件隊列是否完全為空,如果為真,則執行命令 killall wvdial 以掛斷調製解調器。

理論上我知道我可以使用 if、else、do、while、until 等來做一些事情,但實際上我不知道如何開發它。我希望你們幫助我程式和完成這個腳本以正常工作。我很欣賞這些評論。

我不是 bash 方面的專家,但經過一些快速 研究後,我認為這可以滿足您的要求:

while [ `find /var/spool/postfix/{deferred,active,maildrop}/ -type f | wc -l` -gt 0 ]; do
   sleep 5
done

這應該每 5 秒循環一次,直到後綴隊列為空。相應地調整後綴文件的路徑。

您可能希望將該deferred部分排除在find命令之外,否則任何導致電子郵件延遲的臨時發送錯誤都會使調製解調器連接保持打開狀態,直到它重試。

引用自:https://serverfault.com/questions/328549