2016-06-20 7 views
1

で電子メール警告を送信します。小さなシェルスクリプトをモックしようとしています。すでに存在するプロセスが存在します(file1またはfile2)。私の目標は、作成されたファイルに応じて電子メール警告を送信できるようにすることです。いずれかのファイルが存在する場合、bashシェルスクリプト

たとえば、file1が存在する場合、file1が作成されたことを示す電子メールをJohn、David、Smithに送信します。 file2が存在する場合、file2が作成されたことを示す電子メールを同じグループの人々(John、David、Smith)に送信します。

私は単純なif-elseを書くとうまくいくが、私が避けようとしているコードの一部を繰り返す必要がある。ここで

#!/bin/bash 
file="file1" 
if [ -f "$file1" ] 
    then 
     send email to three people mentioned 
    else 
     send email to three people mentioned saying file2 was created since it always creates two files 
    fi 
} 

は私がより良い方法でスクリプトを構築しようとしていますし、また、私は繰り返したくない「とメールを送って...」コマンドを3回私は、リスト内に、より多くの人々を追加する必要がありますので、未来。

助けてください。前もって感謝します。

+0

私の頭の中には名前を付けることはできませんが、すでにディレクトリを監視してさまざまな種類のアラートを生成するパッケージが用意されています。あなたは "ディレクトリモニター"のためにインターネットを検索しようとしましたか? –

答えて

0

何か私はオプションのフィールドのコメントを追加しました

#!/bin/bash 

userlist="$HOME/myusers.cfg" # one user per line 

function send_alert { 
    while read -r user comment; do 
     echo "my command to send to ${user}" 
     echo "subject=$1" 
     echo "Content=Hello ${comment}\n$2" 
    done < "${userlist}" 
} 

file="file1" 
if [ -f "$file1" ]; then 
    send_alert "My subject" "Content: ${file1} exists." 
else 
    send_alert "My subject" "Content: ${file2} exists." 
fi 

のような例のいずれかからpeople.Call機能の希望リストにメールを送信する機能ブロックを作成することができますmyusers.cfgので、スペースの後にコメントを追加することができます(名前人、何か)。
アラートを1時間に1回送信したり、夜勤の人以外は勤務時間内にのみ送信したりするなど、より多くのビジネスルールに対してsend_alertを調整できます。

+0

ありがとう。私は私の要求に縛られるかどうかを確認するためにそれを実行します – user3750136

1

あなたは

+0

*ディレクトリモニター* - どのように私はこれで私のニーズを満たすために何かを構築することができますかわからない – user3750136

+0

私はどちらかのケースから呼び出すことができる機能を使用していない恐れがあります。それは私にはそうするのは簡単だろう。ファイル(file1/file2)のどちらかが存在するかどうかによって警告を送信できるテンプレートがありますか?感謝。 – user3750136

関連する問題