admin 사용자가 업로드 한 사진을 웹 사이트에 복사하여 두 개의 다른 백엔드 서버에 복사해야하는 스크립트가 있습니다. 이렇게하려면 다음을 수행하십시오.inotifywait가 아파치에 의한 파일 생성에 반응하지 않습니다.
while true; do
inotifywait -e create "$TRANSFER_FILES" && \
sleep 20 && \
copy_files "$SSH_SERVER_1" "$REMOTE_DIR_1" && \
copy_files "$SSH_SERVER_2" "$REMOTE_DIR_2"
sleep 2
done
수면 20은 업로드 된 이미지의 크기를 조정할 시간을 제공합니다.
문제 :
내가 터치 또는 고양이 또는 무엇 이건, 루트 또는 아파치 사용자로 중, (로컬 파일 시스템에있는)이 $ TRANSFER_FILES 디렉토리에 파일을 작성하는 경우, inotifywait를가 CREATE evenc를 수신 copy_files 함수 (rsync 래핑)가 호출됩니다. 그러나 아파치 프로세스가 파일을 만들면 아무 일도 일어나지 않습니다.
은 NFS 파일 시스템 또는 로컬에서 $ TRANSFER_FILES입니까? –
로컬. 나는 그 질문을 갱신 할 것이다. –
아파치는 실제로'$ TRANSFER_FILES'에 파일을 생성합니까? 파일이 elswhere로 생성 된 다음 디렉토리로 이동하면 $ TRANSFER_FILES에 대한'create' 이벤트가 없습니다. Apache 프로세스를 통해 파일을 생성 할 때'inotifywait -m "$ TRANSFER_FILES"'를 실행하여 디렉토리에서 이벤트를 모니터링 해보십시오. –