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-데이터.