나는 우리 회사를 위한 특별 프로그램을 작성하고 있습니다.
inotify-tools의 Inotifywait를 사용하여 특정 폴더에서 새 항목을 모니터링하고 있으며 새 파일이 나타나면 gpg를 사용하여 암호화하고 추가 처리를 위해 다른 폴더로 이동합니다.
단일 파일의 경우에는 잘 작동하지만 문제가 있음을 발견했습니다. 다른 파일이 처리되는 동안 새 파일이 들어오면 해당 파일은 무시되고 intotifywait는 해당 파일을 처리하지 않으므로 해당 폴더에 갇히게 됩니다. 여러 파일을 동시에 처리할 수 있는 방법이 있나요?
이것은 지금까지 내 코드입니다.
출처=/BRIO/QPC/conclu01/Criptografar 출력=/BRIO/QPC/conclu01/GPG 완료=/BRIO/QPC/conclu01/결론 사실이지만; inotifywait -e create -e Moving_to -e close_write -e Moving_from $origin --Exclude ".*(\.filepart|gpg|sh)"|dir 이벤트 파일을 읽을 때 하다 에코$이벤트 if [ "$event" == 'CLOSE_WRITE,CLOSE' ] || ["$event" == "MOVED_TO" ] || [ "$event" == "만들기" ] 그 다음에 echo "$origin/$file 파일을 찾아 GPG를 시작하세요" 수면 5 gpg --encrypt --recipient Lucas --output "$output/$file.gpg" "$origin/$file" echo "$file 파일이 $output/$file.gpg로 성공적으로 암호화되었습니다." mv -f "$origin/$file"$완료 echo "$origin/$file 파일이 이동되었습니다" 필리핀 제도 완벽한 완벽한
답변1
반복해서 실행 하지 말고 inotifywait
모니터 모드에서 한 번 실행한 후 출력을 읽으세요.
inotifywait -m ... |
while read dir event file ; do
...
done