2016-11-29 2 views
0

파일 삭제 명령을 사용하는 sh 파일이 있습니다. 내가 브라우저에서 PHP 파일을 열 경우cron으로 PHP에서 sh 파일을 실행하십시오.

shell_exec("sudo -n ./truncatefiles.sh 2>&1"); 

그게 전부가 잘 작동하지만 일정 크론 탭에서 나던 작업 :

나는 다음과 같은 PHP에서 실행합니다.

PHP 사용자 : www-data

내가 크론에서 whoiami를 실행하는 경우, 반환 동일 : www가 데이터

내 visudo를이 추가

이 쉬 파일 반품

www-data ALL=(ALL) NOPASSWD: /www/sites/..../importscript/truncatefiles.sh 

쉘 간부 (cron에서) :

sudo : 죄송합니다. sudo를 실행하려면 암호가 필요합니다.

왜 cron에서 역순으로 작동합니까?

작동하려면 어떻게해야합니까?

+0

아파치 웹 서버입니다. 맞습니까? – mirko911

+0

예, 2.2.16 (Debian) – bbenhu

답변

0

* * 인 myscript.php은 >> 2> 당신이 디버깅 할 수 있습니다이 방법을 /var/log/myjob.log 파일로 crotab에서 출력을 기록, 시도를 다음을 수행하려고주십시오 스크립트. 1. 또한 쉘 스크립트, PHP 파일에 대한 사용자 및 사용 권한을 확인하십시오. 2. sudo crotab -e로 시도하십시오.

+0

sudo : 죄송합니다. sudo를 실행하려면 암호가 필요합니다. – bbenhu

+0

PHP 파일 777, sh 파일 777 – bbenhu

+0

shell exec this : ./truncatefiles.sh 2> & 1 ask sudo -n으로 시작하는 암호는 암호가 필요합니다. 더 이상 응답 : ( – bbenhu