[英]How to setup cronjob with automated emails in linux?
我一直在努力創建一個腳本來掃描 linux 服務器上的一系列郵箱,找到郵箱中有超過 250 封電子郵件的郵箱,然后發送一個 email,其中包含這些郵箱的名稱以及每個郵箱的郵件量有。
這是我的郵箱計數器腳本來執行該操作:
ls /path to mailboxes/ -lR | grep rw | awk '{count[$3]++} END {for (word in count) if (count[word] > 250) print word, count[word]}'
然后我嘗試創建一個 cronjob,以便定期發送一個 email,其中包含符合腳本條件的郵箱。 出於測試目的,我現在將其設置為每 5 分鍾運行一次。
這是那個 cronjob:
*/5 * * * * /usr/sbin/sendmail name@email.com < <( bash /path/mailboxcounter.sh ) >/dev/null 2>&1
我第一次運行 cronjob 時,它運行完美,但在第一封之后它再也沒有發送過任何其他電子郵件,更不用說每 5 分鍾一次了。 此外,我嘗試添加一些字符串來清理我的原始腳本,如下所示:
ls /path to mailboxes/ -lR | grep rw | awk '{count[$3]++} END {for (word in count) if (count[word] > 25) print "Name: " word",", "emails in mailbox: " count[word]}'
但是有了這些添加的字符串,cronjob 將不再發送任何電子郵件。
我試過使用 mail 命令並確認服務器上安裝了 mailx,但它似乎根本不起作用,所以我一直堅持使用 sendmail。
我在這里缺少什么,我該如何解決它,以便 cronjob 定期發送電子郵件,同時向我的原始腳本添加更具描述性的字符串,而不會發送電子郵件失敗? 我覺得我很接近,但一直在反復試驗中失敗。 任何幫助都將不勝感激。
從手冊頁
Sendmail 不打算用作用戶界面例程; 其他程序提供用戶友好的前端; sendmail 僅用於傳遞預先格式化的消息
所以你可以重新格式化你的消息或者更好地使用mail
, mailx
, mutt
等。
可以在https://www.linuxjournal.com/content/sending-emailssend-them-linux-terminal找到一些使用這些命令的示例
我能夠使用 mailx 而不是 sendmail 來解決這個問題。
解決方案 cronjob 示例:
20 8 * * wed . ~/.bash_profile && cd /path | /path/mailboxcounter.sh | mail -s "Mailbox Counts" example@email.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.