• ベストアンサー

メール通知するシェルスクリプトについて

h271015の回答

  • ベストアンサー
  • h271015
  • ベストアンサー率71% (62/87)
回答No.2

Linuxのbashであれば、例えば、直近60分以内に更新があったファイルのうち、該当文字を含むファイルの数を抽出してその件数を保持し、件数分だけfor文でメールを送信する処理を繰り返すようなスクリプトを作成し、cronなどのスケジューラで1時間に一度そのスクリプトを実行するように登録しておく、といったやり方を思いつきました。 === #!/bin/bash CNT=$(find $TARGET_DIR -type f -mmin -60 -name "*test*" | wc -l) for i in $CNT do mail xxx # メール送信処理 done === もし実行間隔を5分にしたいのであれば、findの-mminオプションの引数を5にして、cronで5分おきにスクリプトを実行するようにスケジュールします。

関連するQ&A

  • 【初心者】シェルスクリプトの引数に関して

    現在、シェルスクリプトを作成しようと奮闘中です。 そこで引数に関してお伺いさせてください。 以下が実施したい内容になります。 (1)./test.sh ⇒引数を指定していないため、「引数を指定してください。」と出力し処理終了 (2)./test.sh daily⇒引数で指定した[daily]の処理を実行 (3)./test.sh weekly⇒引数で指定した[weekly]の処理を実行 (1)~(3)の条件を含んだシェルスクリプトを作成するには、 どのような実行処理が必要かご教授お願いします。 ※処理内容に関しては特に指定はございません。 例: daily=特定ディレクトリのコピー weekly=dailyで処理したディレクトリをtarで圧縮し別のディレクトリへ移動 など分かりやすい内容だと幸いです。 また、情報に不備などがありましたらご指摘おねがいします。

  • シェルについて

    シェルの作成方法がわかりませんので教えてください。 シェルを実行することにより、 secureログファイルの「disconnect」という文字列を待ちます。 「disconnect」という文字列が出力されたら、 別のシェルを実行するというシェルを作成したいと考えています。 1.このようなシェルは作成することが可能でしょうか?   もし、可能でしたら例文を書いて頂ければ幸いです。 2.別のシェルを実行した後、   当初の「disconnect」という文字列を待つ状態に戻りと思いますが、可能でしょうか?   もし、可能でしたら例文を書いて頂ければ幸いです。 どうぞよろしくお願いします。

  • ディレクトリ監視シェルスクリプト

    お世話になっております。 現在、特定のディレクトリを監視するという仕事をしております。 そこで、監視を人ではなく、シェル(ツール)化しようと考えております。そこでご相談があります。 以下の手順ができるようなシェルを作成しようと考えております。 ---------------------------------------------------------------- 例) /home配下にディレクトリまたはファイルが追加された場合。 以下の対話処理が走り、yを押すとhoge-serverのサービスが 再起動され、n(y以外)を押すと何もしない。 ↓ echo"/home配下にhogeディレクトリが作成されました。" echo"サービスを再起動しますか?(y/n)" read lm if [ $lm -eq y ]; then /sbin/service hoge-service restart ---------------------------------------------------------------- 肝心の/home配下の監視という部分がよくわかりませんでした。 どなたかわかる方がいたら教えて下さい。 宜しくお願いします。

  • Linux シェルスクリプト

    シェルスクリプトを作る際に、汎用スクリプトを作るのが上手くいきません。 例として以下の2つのシェルの作成例を教えてください。 1、スクリプト名をrei1として platex T1.tex dvipdfmx T1.dvi xdvi T1.dvi & wc -c T1.tex T1.dvi T1.pdf ではT1.tex専用なので これを $ ./rei1.sh ファイル名 と打ちこむことでどのファイルにでも適応できるようにする 2、スクリプト名をrei2.shとして 後から指定した文字列を含む (例えばaak ak aab aba naaの5つがあった時、「aa」と指定することでaak,aab,naaの3つを選ぶ) ファイルを選び出し、それを指定したディレクトリ(このディレクトリも可能なら後から指定したい) に移動する。という動作をするシェルスクリプト。

  • Bシェルで、ファイル内にある文字列があるかどうかチェックする方法

    Bシェルプログラムで、指定したディレクトリ内の全てのファイル内に、ある文字列があった場合、そのファイルを別のあるディレクトリに移動させる。というプログラムを作成したいのです。 指定したディレクトリ内のファイル名を取るとこまではわかったのですが、文字列を検索する術がよくわかりません。 ヒントでも何でも教えてください。 よろしくおねがいします。

  • バックアップのメール通知について

    教えてください。 Linux環境下でバックアップファイルがあるディレクトリに毎日生成されています。 バックアップの確認をメールで通知するように設定したいです。 前日よりも新しいファイルが生成されていたら成功という内容の 通知を行い、 失敗したらエラーの内容を通知するようにしたいです。 シェルスクリプトでどのように書けばいいか教えていただけますでしょうか?

  • UNIX シェルスクリプト

    UNIXのシェルスクリプトを使用してテキストファイルのある列にある 特定の文字列を条件としてその行を出力するということをやりたいのですが どのようにすればできるでしょうか? 例えば,以下のようなテキストファイルがあって,2列目がYAHOOの行を 主力したいというようなことです。 AAA SOFTBANK BBB YAHOO YAHOO TEST CCC QUICK DDD YAHOO ↓ BBB YAHOO DDD YAHOO

  • シェルスクリプトで標準出力を捕捉

    お世話になります。 bashで作成したシェルスクリプトからjavaを実行して、標準出力にログが表示され続けるのですが、 このログから特定の文字列を捕捉して、その文字列が表示された場合に 実行を止めたいといった処理を行うにはどうすればよいのでしょうか。 ずっと流れ続ける標準出力から特定の文字列を捕捉できるかというのが質問になります。 パイプを使えば実現できるのでしょうか。 わかりにくい質問ですみませんがお願いいたします。

  • シェルスクリプト

    2月14日頃質問のあった”UNIXのシェルスクリプトを使用してテキストファイルのある列にある特定の文字列を条件としてその行を出力するということをやりたい”を下記のように作ってみました。問題ないか逆質問の形で投稿します。(ルール違反かもしれませんが質問が締め切られているので・・・) #!/bin/bash CAT=YAHOO while read LINE do echo $LINE > tmp.txt DOG=`cut -d" " -f2 tmp.txt` if [ "$CAT" = "$DOG" ] then echo "$LINE" fi done < catalog.file

  • シェルスクリプトの作成方法

    以下の要件で自動実行できるようにしたいと考えてます。 バッチファール?シェルスクリプト?の作成方法を教えてください。 ■最終目的 USBメモリなどのUSB記憶デバイスをLinuxにつなげて、バッチファイルを実行すると、機器IDの表示と記録、FAT32でのフォーマット、乱数書き込み、を行い、最後にxxx.infというディレクトリを作成して終了 1、前提条件。Windows XP 搭載パソコンをLive CD(Ubuntu8.04)で起動しておく 2、USBを差し込む 3、バッチファール?シェルスクリプト?の実行 4、USBメモリフォーマット # sudo mkfs.vfat -v -c -F 32 /dev/XXX 5、USBメモリのID表示、IDの記録をWIndows側のHDDの指定場所に記録(※二つめ以降は追記になるように) # udevinfo -a -p /block/sdc # "表示して、指定ディレクトリに記録するコマンドがわかりません" 6、記憶装置に乱数書き込み # shred -n 3 /dev/XXX 7、記録装置内にxxx.infのディレクトリの作成 # vi /dev/XXX xxx.inf ここまでを自動で行うパッチもしくはシェルスクリプトを組みたいです。 ご存知の方いらっしゃいましたら、ご教授ください。 よろしくお願いいたします。