電子書籍の厳選無料作品が豊富!

お世話になっております。

現在、特定のディレクトリを監視するという仕事をしております。
そこで、監視を人ではなく、シェル(ツール)化しようと考えております。そこでご相談があります。

以下の手順ができるようなシェルを作成しようと考えております。
----------------------------------------------------------------
例)
/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配下の監視という部分がよくわかりませんでした。
どなたかわかる方がいたら教えて下さい。
宜しくお願いします。

A 回答 (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/
    • good
    • 0

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

    • good
    • 0

> /home配下にディレクトリまたはファイルが追加された場合。


であれば、「findを実行して前回との差分を取る」とかではダメですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!