Php
BASH-創建一個執行 PHP 文件的“www-data”crontab
我需要讓它在 cron 文件中執行
/etc/cron.d/
:
*/15 * * * * php -f /var/www/nextcloud/cron.php
…但是,我的腳本沒有執行。它的權限設置為 644,我需要使用 Shell/BASH 腳本創建它。我正在使用:
echo “*/15 * * * * php -f /var/www/nextcloud/cron.php” > /etc/cron.d/nccron
我究竟做錯了什麼?
有一種更簡單的方法(必須以
root
使用者身份完成)
echo '*/15 * * * * www-data php -f /var/www/nextcloud/cron.php' > /etc/cron.d/wwwcron
我會使用單引號而不是雙引號來防止任何擴展“*”元符號的可能性。
- 要執行 PHP cron 作業,
www-data
需要自己執行 crontab 作業,php -f
使用$$ user $$在 cronjob 行內:
*/15 * * * * php -f /var/www/nextcloud/cron.php
(這些是 Nextcloud 的說明。他們做對了,就我而言,不要試圖破解它。)
www-data
必須將 cron 作業本身作為 crontab 執行(不是/etc/cron.d
等)通常,這是從終端設置的:
像
root
這個例子一樣執行……
crontab -u www-data -e
…添加 cronjob 字元串(上圖)。
crontab -u www-data -l
…它應該匹配。但是,我需要將其作為腳本完成,而不是
crontab -e
在終端中。
- 通過 shellscript 執行此操作(危險?):
crontab 職位在:
/var/spool/cron/crontabs/USER
有權限:
-rw------- ... www-data crontab
有效的腳本:
像
root
這個例子一樣執行……echo "*/15 * * * * php -f /var/www/nextcloud/cron.php" >> /var/spool/cron/crontabs/www-data chown www-data:crontab /var/spool/cron/crontabs/www-data chmod 600 /var/spool/cron/crontabs/www-data
哦,快樂的一天!