CentOS 6을 실행 중이고 USER1이라는 사용자에 대해 crontab -e를 사용하여 다음 crontab을 설정했습니다.
* * * * * /usr/bin/wget -q http://localhost/blah1/parse.php >> /home/USER1/Dropbox/www/blah1/crontab.log 2>&1
*/9 * * * * /usr/bin/wget -q http://localhost/blah2/autocheck.php >> /home/USER1/Dropbox/www/blah2/crontab.log 2>&1
PHP 파일은 예정대로 실행되지만 실행될 때마다 /home/USER1/ 폴더에 새 파일이 생성되므로 확인할 때마다 수천 개의 새 파일이 생성됩니다.
parse.php
parse.php.1
...
parse.php.9999
autocheck.php
autocheck.php.1
...
autocheck.php.9999
이들 각각에는 실행 결과가 포함됩니다. 출력 및 오류를 수신하도록 특별히 설정한 두 로그 파일이 모두 비어 있습니다.
내가 무엇을 잘못하고 있으며 원하는 위치에 출력하려면 어떻게 해야 합니까?
답변1
이에 대해서는 매뉴얼에서 논의됩니다 wget(1)
.
When running Wget without -N, -nc, -r, or -p, downloading the same
file in the same directory will result in the original copy of file
being preserved and the second copy being named file.1.
...
When running Wget with -r or -p, but without -N, -nd, or -nc, re-
downloading a file will result in the new copy simply overwriting
the old.
다음 접근 방식이 효과가 있을 수 있지만 타임스탬프와 로컬 및 원격 서버가 시간에 대해 설정한 내용을 확인하고 싶은 모든 작업을 수행할 수 있습니다(어디에나 NTP가 있습니다, 그렇죠?).
wget -q -N http://... >> log
또는 타임스탬프가 문제인 경우 -O
파일 이름을 clobber로 설정해야 하는 옵션을 살펴보세요.