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
에 대한 세부 사항을 출력하지 않을 수 있습니다.
그것을 결합하면 wget
stderr에 아무것도 출력하지 않으며 문서를 저장하지 않습니다.
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의 솔루션이 완벽합니다.