데몬 프로세스로서의 inotify-wait 관련 문제

데몬 프로세스로서의 inotify-wait 관련 문제

저는 byobu의 ftp 서버에서 inotify-wait를 실행하여 폴더를 모니터링하고, 데이터를 이동하고, 몇 달 동안 아무 문제 없이 이메일 알림을 보냈습니다. 이 작업을 시작한 이후로 모니터링할 폴더를 3개 더 추가했으며 byobu 세션이 아닌 데몬으로 inotify-wait 실행을 시작하고 싶습니다. 하나의 변수를 더 쉽게 변경하고 데몬으로 실행할 수 있도록 스크립트를 수정했습니다. 불행하게도 지금은 아무것도 하지 않습니다. 경험이 있는 사람이 살펴보고 무엇이 잘못되었는지 말해 줄 수 있기를 바랍니다.

#!/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와 같은 더 나은 언어로 다시 구현됩니다).

관련 정보