在PHP中创建cron作业

在PHP中创建cron作业,cron,Cron,有没有一种方法可以在php中创建一个由特定用户运行的cron作业。默认情况下,它作为WW数据运行,但这不起作用。我可以更改用户并运行它吗?以下是我正在做的事情。请告诉我哪里出了问题 shell_exec('(crontab -u username -l 2>/dev/null; echo "* * * * * /usr/bin/php filename.php") | crontab -'); 现在有/etc/cron.XXX/文件夹(即cron.daily,cron.hourly等),

有没有一种方法可以在php中创建一个由特定用户运行的cron作业。默认情况下,它作为WW数据运行,但这不起作用。我可以更改用户并运行它吗?以下是我正在做的事情。请告诉我哪里出了问题

shell_exec('(crontab -u username -l 2>/dev/null; echo "* * * * * /usr/bin/php filename.php") | crontab -');

现在有
/etc/cron.XXX/
文件夹(即
cron.daily
cron.hourly
等),您可以在不干扰其他配置文件的情况下将作业作为新文件删除。

您的命令似乎是错误的

echo“***/usr/bin/php filename.php”| crontab-
是enoguh,因为
crontab
为单个用户维护crontab文件。因此,如果您将其作为
www-data
启动,它将为
www-data
用户创建一个条目


希望这会有帮助

这些文件夹的内容不应写入php进程,因为作为rootcron命令运行的cronjobs将根据用户的输入(分钟、小时、天、月、周)在php文件中动态创建。因此,我需要从php文件中创建cronjob。但他不想要www-datas,因为他说,在
www-data
user上,cronjob无法工作,我认为这是由于
命令
语法错误造成的。这是因为没有www数据他就做不到。更具体地说,他可以,但权限将是相同的,这意味着根本没有对/etc/的写入权限。默认情况下,它将用户视为ubuntu apache中的www数据。我想将其更改为当前用户。下面是错误消息。您(www数据)不允许使用此程序(crontab)您所说的当前用户是什么意思?如果您没有触摸任何配置,php应该以
www-data
user的身份运行。如果脚本说不允许使用crontab,请尝试查看
/etc/cron.allow
并添加
www-data
用户。