[server] cron에서 wget 출력을 / dev / null로 출력

Pronion 승객을 유지하기 위해 crontab에서 5 분마다 다음 명령을 실행하고 있습니다.

*/5 * * * * wget mysite.com > /dev/null 2>&1

내가 이것을 실행하면 사이트 URL에서 wget을 수행하여 STDOUT / STDERR을 / dev / null로 라우팅합니다. 커맨드 라인에서 이것을 실행하면 정상적으로 작동하며 내 홈 디렉토리에 index.html 파일을 생성하지 않습니다.

cron에서 실행될 때 5 분마다 새로운 index.html 파일을 생성하여 원하지 않는 수많은 색인 파일을 남겨 둡니다.

cron 작업을 실행하는 데 구문이 올바르지 않습니까? 커맨드 라인에서 문제없이 작동하지만 cron에서는 내 홈 디렉토리에 index.html 파일을 생성합니다.

나는 간단한 실수를하고 있다고 확신합니다. 누군가 도울 수 있다면 그것을 고맙게 생각할 것입니다.



답변

다음과 같이 할 수 있습니다.

*/5 * * * * wget -O /dev/null -o /dev/null example.com

여기 -O다운로드에 파일을 전송 /dev/null하고 -o로그를 /dev/null대신 표준 에러의. 그렇게하면 리디렉션이 전혀 필요하지 않습니다.


답변

실제로 내용을 다운로드하거나 200 OK 만 받으시겠습니까? 서버가 요청을 처리하도록해야하는 경우 단순히 --spider인수 를 사용하지 않는 이유는 무엇입니까?


답변

다음을 사용합니다.

/5 * * * * wget -O - mysite.com > /dev/null 2>&1

-O -옵션은 가져온 컨텐츠가 stdout으로 전송되도록합니다.


답변

당신은 코멘트에 “200 OK”응답 만 필요하다고 말합니다.

이것에 비해 몇 가지 추가적인 장점이있는 솔루션이 가능합니다
wget -O /dev/null -o /dev/null example.com. 아이디어는 어떤 식 으로든 출력을 버리지 않고 출력을 전혀 만들지 않는 것입니다.

응답 만 필요하다는 것은 로컬 파일 index.html로 다운로드 한 데이터를 먼저 다운로드 할 필요가 없음을 의미합니다.
HTTP 프로토콜에서 ‘GET’명령 은 문서다운로드하는 데 사용됩니다 . 실제로 문서를 다운로드하는 것을 제외한 모든 작업을 수행하는 방식으로 문서에 액세스하려면 특수 명령 ‘HEAD’가 있습니다.
이 작업에 ‘GET’을 사용하면 문서가 로컬로 다운로드되어 삭제됩니다. ‘HEAD’를 사용하면 필요한 작업 만 수행 할 수 있으며 처음에는 문서를 전송하지 않습니다. 정의에 따라 항상 ‘GET’과 동일한 결과 코드를 반환합니다.

방법을 사용하는 구문 HEAD과는 wget조금 이상하다 : 우리는 옵션을 사용합니다 --spider. 이러한 맥락에서 우리는 원하는 것을 수행합니다. ‘GET’대신 ‘HEAD’로 URL에 액세스하십시오.
옵션 -q(quiet)을 사용하여 기능 wget에 대한 세부 사항을 출력하지 않을 수 있습니다.

그것을 결합하면 wgetstderr에 아무것도 출력하지 않으며 문서를 저장하지 않습니다.

wget -q --spider 'http://example.com/'

종료 코드는 요청의 성공 여부를 알려줍니다.

$ wget -q --spider 'http://example.com/'
$ echo $?
0
$ wget -q --spider 'http://example.com/nonexisting'
$ echo $?
8

의 명령에서 crontab두 경우 모두 출력이 없다는 사실은 다시 출력을 표시하지 않고 오류 표시를 사용할 수 있음을 의미합니다.

예제 명령이 다음과 같이 변경됩니다.

*/5 * * * * wget -q --spider mysite.com

이것과 같은 장점이 있습니다 wget -O /dev/null -o /dev/null example.com. 추가적인 이점은 로그 출력 및 문서 출력이 로컬에서 생성 및 삭제되지 않고 생성되지 않는다는 것입니다. 또는 큰 차이점은 문서를 다운로드 한 다음 폐기하지 않는 것 index.html입니다.


답변

Phusion 승객을 살리기 위해

귀하의 질문이 이것에 관한 것이기를 바랍니다.

빠르고 강력한 웹 서버 및 애플리케이션 서버

keepalive 스크립트가 필요하지 않습니다.

그렇지 않으면 kasperd의 솔루션이 완벽합니다.


답변