2012-05-09 5 views
1

PHP 스크립트 파일에서 cron 작업을 설정하고 싶습니다. shell_exec() 함수를 사용하여 PHP 파일을 실행할 수 있습니다. 그러나 나는 임무 관련 명령을 실행할 수 없다. $output = shell_exec("crontab -l");이 명령이 작동하지 않습니다. 내 cronjob은/usr/bin/crontab 아래에 있습니다. 파일 전제를 777로 설정하고이 명령을 루트 액세스로 실행했습니다. 여전히 운이 없다. 누구든지 나를 도울 수 있습니까?PHP 스크립트에서 cron 작업을 호출하는 방법은 무엇입니까?

+0

'/ usr/bin/crontab'의 권한을 777로 설정 했습니까? 나는 당신이 그것을 즉시 다시 바꿀 것을 제안한다! _ _ – paxdiablo

답변

0

"crontal -l"명령은 개인 crontab에 사용자의 일정을 표시합니다. 현재 개인 crontab에 따라 빈 문자열을 반환 할 수 있습니다. 모든 사용자에 대해 시스템 전체 crontab 인/etc/crontab 파일과 섞지 마십시오. 루트 권한으로 만 쓸 수 있습니다.

당신의 필요가있는 경우 - 어쩌면 당신은 단순히 같은 시도 할 수도, PHP 스크립트에서의 crontab에 작업을 추가 할 수 - 내가 이해 생각하는 :

$r=shell_exec('cat "30 6 * * * user my_cmd my_args" >> /etc/crontab'); 

는 "my_cmd my_args"를 예약하려면를 예를 들어, 매일 6시 30 분에 '사용자'로 실행됩니다. 이 PHP 스크립트는/etc/crontab에 쓸 수있는 root로 시작해야합니다.

주의 : 귀하의 PHP 스크립트가 웹 사이트에서 시작되지는 않지만 액세스 제한 환경의 명령 줄에서 보안 위험을 줄이기 바랍니다. 특히 루트로 시작하도록하는 작업을 수행 할 경우 더욱 그렇습니다. 그런 종류의 스크립트는 시스템에서 매우 큰 구멍입니다. 이것을 고려하십시오. 그건 내 조언이다. 그런데

다시를/usr/빈/crontab을의 권한 :

-rwxr-SR-X 1 개 루트의 crontab 35,040 19 DEC. 2010/usr/bin/crontab (데비안 시스템의 예제).

관련 문제