PHP 스크립트에서 프로그래밍 방식으로 크론 작업 생성

PHP 스크립트에서 프로그래밍 방식으로 크론 작업 생성

Raspbian이 설치된 Raspberry Pi가 있습니다. 가변 기간(10, 20, 30, 40, 50 또는 60분마다)이 필요한 크론 작업이 필요합니다. crontab 파일을 편집하지 않고 새 cron 작업을 생성하는 가장 쉬운 방법은 다음과 같습니다 /etc/cron.d./etc/cron.d/myCron

*/10 * * * * root /home/pi/myScript >> /home/pi/myLog.log 2>&1

소유자/권한:

-rw-r--r-- 1 root root  84 Sep  9 16:15 myCron

이제 다음과 같이 PHP 스크립트를 통해 이 파일에 작성해야 합니다.

<?php
$config = $_GET["config"];
$cron = fopen('/etc/cron.d/myCron','w');
fwrite($cron,"*/".$config['interval']." * * * * root /home/pi/myScript >> /home/pi/myLog.log 2>&1")
fclose($cron);
?>

기간을 변경하려면

문제는 PHP가 사용자에 의해 실행되고 www-data디렉토리의 파일이 cron.d속해야 root하고 권한이 있어야 한다는 것입니다 -rw-r--r--. 그렇지 않으면 작동하지 않습니다.

이를 달성하는 방법에 대한 아이디어가 있습니까? 감사해요!

답변1

crontab새 파일을 설치하는 방법은 crontab -옵션을 참조하세요.

분명히 루트의 crontab을 업데이트하는 데 문제가 있지만 sudo그렇게 하는 것은 허용됩니다.

/var/spool/cron/crontabs최종 목적지 위치로 사용됩니다 /etc/cron.d.

최상의 보안을 위해(귀하의 경우 이것이 중요한지 확실하지 않음) 최소한의 권한으로 최대한 많은 작업을 수행한 다음 루트로 스크립트의 최종 실행을 수행하십시오.

sudo허용하도록 구성할 수 있습니다 .www-데이터실제 업데이트를 수행하는 루트로 특정 쉘 스크립트를 실행하기만 하면 됩니다. 그런 다음 최소한의 권한이 허용됩니다. 즉. 파일 생성은 다음과 같이 할 수 있습니다www-데이터.

관련 정보