NASデバイスで次のcronジョブコマンドを1日1回実行しています。
find /nfs/rpiggott/complete -mtime +45 -exec rm {} \;
リストをパイプ処理して、削除するファイルや発生したエラーを示す電子メールをcronから送信する方法があるかどうか疑問に思っています。
この目的のために、システムは電子メールを送信できる必要があります。したがって、をインストールしてpostfix
を設定できます。
Sudo apt install postfix
一般的なタイプのメール設定には、 Internet Site を選択します。次のコマンドを使用して、より詳細な構成を行います。
Sudo dpkg-reconfigure postfix
この段階で、Cronは電子メールの送信を開始します。すべてのエラーメッセージを含め、通常、STDOUTに出力されるすべてのもの(コマンドラインでコマンドを実行する場合) 、Cronjobを実行するユーザーのローカルメールボックスに送信されます。
ローカルユーザーのメールボックスのデフォルトの場所は/var/mail/
です。コマンドラインメールクライアントmutt
をインストールして、便利な方法でコマンドラインからユーザーのメールボックスを読み取ることができます。
Sudo apt install mutt
mutt
のインストールプロセスには、postfix
のインストールと構成が含まれます(以前に行われていない場合)。Cronjobの定義の前に、MAILTO
内のenvvar crontab
の値を変更することにより、デフォルトの宛先メールボックスを変更できます。
注:メールの送信設定でSSL/TLS証明書を有効にしていない限り、ほとんどのパブリックメールサーバーは何らかの方法でメールを無視します。たとえば、mail.google.com
はそれらをスパムに入れます。これがサーバーインスタンスであり、プライマリドメインのSSL/TLS証明書を既に持っている場合は、 このニースのマニュアル に従ってPostfixに添付してください。
システムが電子メールを送信できるようになったら、Cronjobをより詳細にする(たとえば、rm
コマンドに-v
を追加する)およびMAILTO
の適切な値を設定する必要があります。したがって、crontab
は次のようになります。
MAILTO="[email protected]"
* * * * * find /nfs/rpiggott/complete -mtime +45 -exec rm -v {} \;
別のアプローチは、コマンドを含み、crontab
、mail
、mutt
、またはssmtp
を使用してメールを送信するスクリプト(sendmail
を介して実行されます)を作成することです。詳細については、リファレンスの下部をご覧ください。
参考資料と詳細資料:
cron
を取得してメールを送信するには、かなり簡単な方法を使用しました: GmailへのLinux構成、スクリプト、ドキュメントのバックアップ 。
ssmtpを使用して電子メールアラートを送信 から、端末またはスクリプトから自動化された電子メールを送信する最も簡単な方法を見つけます。インストール手順は簡単です。
Sudo apt install ssmtp
Sudo nano /etc/ssmtp/ssmtp.conf
# Change "MyEmailAddress" and "MyPassword" to your own.
言及されていないステップが1つあります。 Googleは、「安全性の低い」アプリケーションがアカウントでメールを送信できるようにすることを確認するメールを送信します。
大量のメールを受け取るのは面倒です。たとえば、Sudo
パスワードを間違って入力するたびに、メールが届きます。 悪いSudoパスワードの試行をメールで送信するのをやめる