我是编程的初学者,我试图用几种方式使用PHP脚本设置Cron Job,这是我在互联网上找到的,但我总是遇到一些我自己无法解决的错误: 第一种方法:
fprintf(stdout , "HIGH\n");
bcm2835_gpio_write(PIN, HIGH);
fprintf(stdout , "SLEEP\n");
bcm2835_delayMicroseconds(12);
fprintf(stdout , "LOW\n");
bcm2835_gpio_write(PIN, LOW);
fprintf(stdout , "SLEEP\n");
bcm2835_delayMicroseconds(12);
,但我认为因为'符号而出现错误,我确信很多'符号也不好。
第二种方法:
exec('echo -e "`crontab -l`* * {$_POST['birthDay']} {$_POST['birthMonth']} * /home/jharvard/vhosts/pset7/public/{$_POST['lastname']}{$_POST['firstname']}.php" | crontab -");
错误是:(!)解析错误:语法错误,第24行/home/jharvard/vhosts/pset7/public/calendar.php中的意外'var'(T_VAR)
第三次尝试:
echo "* * {$_POST['birthDay']} {$_POST['birthMonth']} * /home/jharvard/vhosts/pset7/public/{$_POST['lastname']}{$_POST['firstname']}.php" | tee -a /var/spool/cron/root
我不知道为什么这个不起作用。我执行
crontab -l </ p>
,但它没有显示任何新工作
答案 0 :(得分:1)
你的第一次尝试遇到了很多问题:
$var = '\'test\''
所以语法上,你的第一次尝试应该是这样的:
exec("echo -e \"`crontab -l`* * {$post['birthDay']} {$post['birthMonth']} * /home/jharvard/vhosts/pset7/public/{$post['lastname']}{$post['firstname']}.php\" | crontab -");
据我所知,您可以在用户的生日那天做点什么。 一个更好的解决方案是手动创建一个单独的cronjob,每晚运行一个文件,该文件将管理要做什么(包括谁的生日,发送电子邮件等),而不是为每个用户提供cronjob。
答案 1 :(得分:0)
你可以这样做
$command = " * * * * * php PATH_TO_YOUR/some.php ";
exec('echo -e "`crontab -l`\n'.$command.'" | crontab -', $result);
var_dump($result);
通过此,您可以添加到www-data
的用户crontab新命令,该命令将每分钟运行some.php
有关更多信息,请参阅crontab - http://www.adminschoice.com/crontab-quick-reference,您需要阅读它以了解如何处理* * * * *
(负责cronjob运行时)以及如何构建正确的{{} 1}}使用$command
,php
和其他脚本