我想在PHP中创建cron作业,有点像cPanel或Plesk,但我被卡住了。我想以编程方式执行此操作,而不是强制用户去cPanel手动创建crons .....
尝试了很多东西,阅读了很多东西......包括stackoverflow,没有任何作用。 我尝试从php编辑crontab,如shell_exec('crontab /pathtomycronfile/cron.txt'),然后编辑cron文件,但它不起作用。用户是'apache',我尝试为apache设置crontab ..也不起作用......
任何人都可以帮忙吗?你之前能从php创建cron作业吗?
答案 0 :(得分:2)
在某些* nix系统下,crontab会将每个特定于用户的cron文件存储在例如/ var / spool / cron / crontabs / [USERNAME]。它们不打算直接编辑,但你可以让PHP这样做。
您可能还需要更改包含目录的权限,以便PHP可以查看该文件进行编辑。然后你可以这样做:
<?php
$user = get_current_user();
$cron_file = fopen("/var/spool/crontabs/$user", "a");
fwrite($cron_file, "\n* * * * * touch /tmp/testcron\n");
fclose($cron_file);
说实话,这非常危险。相反,您应该考虑使用cron.php,每15分钟调用一次,然后将所有逻辑放在cron.php中给定的四分之一小时内执行的实际任务中。不要编辑crontab以将逻辑放在那里。
答案 1 :(得分:0)
通常需要从主机提供商的Controlpanel创建Cron作业。 我不认为有一种方法可以从程序中完成。