bashを介して繰り返し電子メールを送信してユーザーを過度に参照するのを防ぎます。

bashを介して繰り返し電子メールを送信してユーザーを過度に参照するのを防ぎます。

アイデア/実装を改善するのに助けが必要です。シナリオは小規模ローカル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時間以内に送信された場合、スクリプトは他の操作を行わずにそのユーザーにメッセージを送信します。

おすすめ記事