2016-12-09 3 views
1

CentOS 7에서 inotify-tools을 사용하여 모든 ftp 업로드에서 PHP 스크립트를 실행합니다.Linux 서버에서 FTP 업로드가 완료된 것을 감지하는 방법은 무엇입니까?

괜찮 았지만 문제가 하나 있습니다. 업로드가 중단되면 (예 : 업로드를 중지하거나 FTP 클라이언트를 종료 한 경우) 스크립트를 계속 트리거합니다.

이러한 상황을 피할 수 있습니까?

내 코드 :

#!/bin/sh 
MONITORDIR="/path/to/some/dir" 
inotifywait -m -r -e close_write --format '%w%f' "${MONITORDIR}" | while read NEWFILE 
do 
    php /path/to/myscript.php ${NEWFILE} 
done 

답변

1

것입니다 : 당신의 쉘 스크립트가 일련의 명령이 포함되어 있습니다.

그러나이 명령이 성공했는지 확인하기 위해 을 입력하지 않았 으면을 확인하십시오. 그리고 당신은 그들이 모두 처형당하는 것에 놀랐습니다. 실패했을 때도?!

당신이 작업을 호출하는 방법을 그 도구에 따라, 즉 그것을 잘라하지 않는 경우 단순히

set -e 

이전에 호출하는 명령 (자세한 내용은 here 참조)

를 추가 할만큼 수 있습니다 : 하나씩 명령을 실행하십시오. 실패한 경우 각각에 대해 결정합니다. 그렇다면; 단순히 스크립트를 종료하십시오!

+0

처음에'set -e'를 추가하려고 시도했지만 도움이되지 않았습니다. 그리고 각 명령이 실패했는지 어떻게 알 수 있습니까? – HtmHell

+0

글쎄, 첫눈에, 명령은 리턴 코드를 사용한다 (그리고 그것은 set -e가 검사하는 것이다). 그게 도움이되지 않는다면 ... 당신은 간단하게 그 명령들 각각을 들여다보아야합니다. "어떻게 그것이 효과가 있다고 판단 할 수 있습니까?" – GhostCat