드루팔 cron.php을 익명(Anonymous) 아닌 특정 권한으로 실행하는 방법

드루팔 cron.php을 익명(Anonymous) 아닌 특정 권한으로 실행하는 방법을 소개한다.
참고 : http://drupal.org/node/479948#comment-1673488

아래 쉘스크립트로 실행하면 된다.
*** 부분들만 적절하게 상황에 맞추어 수정할 것.

#!/bin/sh

site=http://***yoursite***/
name=***someusername***
pass=***someverysecurepassword***

cookies=/tmp/cron-cookies.txt

wget -O /dev/null --save-cookies /tmp/site-cookies.txt --keep-session-cookies --load-cookies $cookies "${site}user"
wget --keep-session-cookies --save-cookies $cookies --load-cookies $cookies -O /dev/null --post-data="name=$name&pass=$pass&op=Log%20in&form_id=user_login" "${site}user"
wget --keep-session-cookies --save-cookies $cookies --load-cookies $cookies "${site}cron.php"

드루지기는 문제없이 잘 적용됐는데, 위 참고출처에서는 "Invalid Null Command"이라는 에러를 만난 경우도 있는 것 같다.

댓글

드루지기님 항상 좋은 정보 감사 합니다. 참고 해서

드루지기님 항상 좋은 정보 감사 합니다.

참고 해서 개발하고 있는 멀티 사이트에 개별적인 크론 설정을 성공했습니다.
그런데 신기하게도 드루팔 로그에 크론 로그가 남지 않고 실행이 되네요.
이 부분은 좀 더 확인해봐야겠습니다.

로그에 남기기 위해서 실행되는 php 페이지

로그에 남기기 위해서

실행되는 php 페이지 소스에
watchdog 함수를 사용해서 직접 로그를 남기도록 해결 했습니다.