デーモンプロセスとしてのinotify-wait関連の問題

デーモンプロセスとしてのinotify-wait関連の問題

私はbyobuのftpサーバーでinotify-waitを実行してフォルダを監視し、データを移動し、何ヶ月も問題なく電子メール通知を送信しました。この作業を開始してから監視するフォルダを3つ追加しましたが、byobuセッションではなくデーモンでinotify-waitの実行を開始したいと思います。 1つの変数を簡単に変更し、デーモンとして実行できるようにスクリプトを変更しました。残念ながら、今は何もしません。経験のある人が見て、何が間違っているのか教えてくれることを願っています。

#!/usr/bin/env bash

user=testuser
dir=/ftp/"$user"/upload/
log=/ftp/"$user"/log/"$user.log"
archive=/ftp/"$user"/archive/
target=/ftp/FTPDATA/"$user"/

inotifywait -q\
-d "$dir" \
-o "$log" \
-e close_write --format %f . | while IFS= read -r file; do
cp -p "$file" "$target"
/scripts/"$user-notify.sh"
mv "$file" "$archive""$(date +%F-%T)"
done

ベストアンサー1

どのバージョンを使用していますかinotifywait? ~によるとこのmanページ -dデーモンとして実行することを指定しますが、引数値("$dir")を受け入れません。また、-o "$log"出力を標準出力に送信するのではなく、ログファイルに保存します。inotifywaitスクリプトを続行する前に、有効なコマンドがあることを確認してください。テスト一時ディレクトリの一部のファイルを監視します(またはJava、Python、Rubyなどのより良い言語で再実装されます)。

おすすめ記事