• 締切済み

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

お世話になっております。 現在、特定のディレクトリを監視するという仕事をしております。 そこで、監視を人ではなく、シェル(ツール)化しようと考えております。そこでご相談があります。 以下の手順ができるようなシェルを作成しようと考えております。 ---------------------------------------------------------------- 例) /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配下の監視という部分がよくわかりませんでした。 どなたかわかる方がいたら教えて下さい。 宜しくお願いします。

みんなの回答

  • u-kid
  • ベストアンサー率50% (34/67)
回答No.3

Linux系カテゴリーでのご質問なので、Linux(それも新しめのディストリビューションですが)での解です。 inotify-toolsにinotifywaitというコマンドがあります。これはkernelのinotify APIを使って、指定したディレクトリ、ファイルの変更を監視し、変化が有れば標準出力に変化のあったファイル、ディレクトリと変化の内容を出力しますので、その結果を使うようにすれば良いと思います。 hoge=`inotifywait -e create /home` echo -n $hoge echo ", Do you want to start a service?" ... という感じでしょうか。$hogeには /home CREATE test.msg のような文字が入ります。

参考URL:
http://inotify-tools.sourceforge.net/
回答No.2

ls -a を wc -l で数えるとか

  • Ceren
  • ベストアンサー率49% (90/183)
回答No.1

> /home配下にディレクトリまたはファイルが追加された場合。 であれば、「findを実行して前回との差分を取る」とかではダメですか?

関連するQ&A

専門家に質問してみよう