- 0
- 이니스프리
- 조회 수 374
특정 페이지에 주기적으로 방문하도록 Crontab에 넣는 방법으로 Curl이나 Wget이 많이 사용되고 있습니다.
그런데 제 경험상으로도 그렇고 구글링을 해봐도 그렇고 간혹 Curl이나 Wget을 사용하면 잘 안 되는 경우가 있더군요 ㅠㅠ
예컨대 아미나에서 많이 사용되는 기능 중 하나인 Basic Feed 2.0도 누군가 피드보드를 방문해야 제대로 업데이트가 되는데요.
* * * * /path/wget -0 - URL > /dev/null 2>&1
이런 방식으로 Crontab에 집어넣어도 정확한 이유를 모르겠지만 잘 안 되는 경우가 간혹 있더군요.
아마도 Curl 또는 Wget을 이용한 방법이 먹히지 않는 이유는
서버측에서 브라우저가 아닌 접속에 대해 예외처리를 해놓거나, 쿠키와 관련된 부분으로 추측됩니다.
이런 경우에는 텍스트 브라우저인 Lynx를 활용하면 해결되는 경우가 많습니다.
Crontab에서 Lynx를 활용하는 방법에 대한 웹문서는 많이 있습니다.
명시적으로 저와 완전히 동일한 방법을 사용한 웹문서를 찾지는 못했지만 저는 아래와 같은 옵션으로 해결했습니다.
* * * * /path/lynx -accept_all_cookies -source URL > /dev/null 2>&1
-accept_all_cookies
: Lynx로 접속해보면 쿠키 허용 여부를 묻는 경우가 많더군요.
-source
: 포그라운드에서 이 옵션을 넣지 않으면 Lynx가 실행된 상태로 남아있습니다.
> /dev/null 2>&1
: 다들 아시겠지만 > /dev/null 은 결과값에 대한 표준 출력을 /dev/null로 넣고, 2>&1 은 표준에러를 표준출력으로 redirection 합니다.