백업 파일이 저장되기를 기다리는 디렉터리를 모니터링하는 영구 inotifywait 세션(-m 스위치 사용)을 시작한 다음 해당 파일을 관리할 수 있는 다른 디렉터리로 이동하는 스크립트가 있습니다. 스크립트는 다음과 같습니다.
dir=/home/userid/drop/
target=/home/userid/current/
inotifywait -m "$dir" --format '%w%f' -e create |
while read file; do
mv "$file" "$target"
find /home/userid/current -maxdepth 1 -type f -name "*.sql.gz" -print0 | xargs -r0 ls -t | tail -n +5 | tr '\n' '\0' | xargs -r0 rm
done
위 스크립트는 파일이 삭제되자마자 파일을 이동한 다음 대상 디렉터리를 마지막 4개 파일까지 지웁니다. 이것은 잘 작동하며 crontab 항목(아마 오전 1시 30분쯤)에서 시작하도록 설정할 수 있습니다.
그러나 23시간 45분 후에는 영구 inotifywait 프로세스를 종료하고 다시 시작하기 전에 다른 유지 관리를 수행할 수 있어야 합니다. 따라서 실행 중인 inotifywait 프로세스를 종료하고 다른 유지 관리를 수행한 다음 종료하기 위해 다른 스크립트를 호출하는 다른 crontab 항목을 갖고 싶습니다. 이렇게 하면 첫 번째 crontab 항목에서 디렉터리 모니터링을 다시 시작할 수 있습니다.
터미널 세션에 로그인하지 않고도 무인으로 실행하려면 이것이 필요합니다. 가능합니까? 그렇다면 다른 스크립트에 의해 시작된 inotifywait 세션을 중지하기 위해 유지 관리 스크립트에서 어떤 명령을 사용해야 합니까?
어떤 지침이라도 대단히 감사하겠습니다.