アイデア/実装を改善するのに助けが必要です。シナリオは小規模ローカルISPです。ユーザーアカウントはfreeradius / mysqlに保存されます。割り当てられたクォータの80%を消費したユーザーに電子メールを送信することです。
ダウンロードしたユーザーのmysqlテーブルを確認するために、1時間ごとに実行するようにスケジュールされたbashスクリプトを設定しました。75%クォータを確認し、ユーザー名と電子メールをファイルに追加します。/tmp/overquotauser.txtこのように
user1 [email protected]
user2 [email protected]
user3 [email protected]
ユーザーのアカウントが更新されると、そのユーザーの名前がアカウントから削除されます。/tmp/overquotauser.txt
今私が望むのは、これらのユーザーに電子メールを送信することです。これは簡単ですが、私が望むのは、毎時間ユーザーに電子メールを繰り返すのを防ぐことです。たとえば、ユーザーの使用率が80%の場合、毎時間ではなくユーザーに1つの電子メールを送信する必要があります。これを行う方法を知っていますか?
ベストアンサー1
次の 2 つの方法のいずれかを使用できます。
I)1時間ごとにファイルを生成します。/tmp/overquotausernew.txtこのファイルを古いファイルと比較してください。/tmp/overquotausernew.txt。新しく作成されたファイルで新しいユーザーが見つかった場合は、そのユーザーにのみ電子メールを送信し、新しく作成されたファイルを比較します。/tmp/overquotauser.txt
これにより、電子メールが送信されるすべてのユーザー名を含む1つのファイルのみが保持されます。スクリプトは、メールが送信されていない新しいユーザーを確認します。
II) メールが送信者であることを確認するためにメールを送信するスクリプトを作成できます。/tmp/overquotauser.txt過去24時間以内に送信されました。メッセージが過去24時間以内に送信された場合、スクリプトは他の操作を行わずにそのユーザーにメッセージを送信します。