簡體   English   中英

如何在 linux 中使用自動電子郵件設置 cronjob?

[英]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 僅用於傳遞預先格式化的消息

所以你可以重新格式化你的消息或者更好地使用mailmailxmutt等。

更新

可以在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM