2014-02-12 4 views
0

나중에 PHP를 사용하여 로컬 컴퓨터에서 나중에 실행하도록 작업을 예약해야합니다. 나는 시간이 지남에 따라 작업을 반복 할 필요가 없기 때문에 cron을 피합니다. PHP 스크립트에서 AT로 일회성 이벤트 일정 잡기

나는

$msg="at 10am today 
date > /path/path/date.txt 
\x04"; 
shell_exec($msg); // Nope 

$msg="at 10am today 
date > /path/path/date.txt 
".chr(4); 
shell_exec($msg); // Nope 

$msg=<<<EOT 
at 10am today 
date > /path/path/date.txt 
EOT; 
shell_exec($msg); // Nope 

내 웹 브라우저 (http://localhost/script.php)에 스크립트에 갈 때 터미널에서 PHP으로 스크립트를 실행하지만 때 마지막 줄이 작동

shell_exec('echo "date > /some/path/date.txt" | at 10am today'); 

을 시도했다. 나는 system을 시도했지만 아무런 성공도하지 못했습니다. 그건 그렇고, echo shell_exec('ls /') 문제없이 작동하므로 권한 문제라고 생각하지 않습니까? 누구든지 잘못된 아이디어가 있습니까?


배경 정보이에 대한 동기는 내가 지정하고 원격 시스템에 연산 집약적 인 시뮬레이션 작업을 제출하기위한 웹 기반 인터페이스를 구축하고 있다는 점이다. 내 PHP 스크립트는 사용자 입력에서 R 및 Matlab 스크립트를 생성하며, PHP로 작성된 시스템에 SSH를 적용 할 수 있습니다. SSH 세션에 관계없이 나중에 실행될 스크립트를 예약 할 수 없습니다.

+0

필요한 작업이 충분하면 crontab으로 충분합니다 http://en.wikipedia.org/wiki/Cron, 아니요? –

답변

1

probem은 사용자가 제안한대로 스크립트를 실행합니다. 나는 고전적인 www 데이터 명령에서 사용할 수 없다고 생각합니다

일반 사용자 (adduser phpschedule)로 전용 사용자를 추가하십시오; 그런 다음 apache에서 php를 실행하는 사용자를 www-data에서 phpschedule으로 변경하십시오.

+0

예! 고맙습니다! 사용자가 문제였습니다. Mac OS X 사용자 : 사용자를 만들고 httpd.conf를 적절하게 변경하십시오. 그 사용자를'/ var/at/at.allow'에 추가하십시오. –

+0

당신을 도왔 기 때문에 기쁩니다. – gafreax