PHP - cronjob 无法在 Ubuntu 18.04 上执行
PHP - cronjob failing to execute on Ubuntu 18.04
我有一个 PHP 文件,我想 运行 作为 cron 作业。
在服务器上文件位于 /var/www/html/directory/file.php
并且没有错误,因为它可以在浏览器中 运行 通过转到 www.exampledomain.com/directory/file.php
.
在文件 /etc/crontab
中,我有以下行:
* * * * * root /usr/bin/php /var/www/html/directory/file.php >/dev/null 2>&1
在我的服务器上输入 sudo service cron status
我看到:
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-07-29 10:23:11 UTC; 4 months 23 days ago
Docs: man:cron(8)
Main PID: 769 (cron)
Tasks: 1 (limit: 1140)
CGroup: /system.slice/cron.service
└─769 /usr/sbin/cron -f
Dec 21 17:46:01 ip-172-31-34-251 CRON[20648]: (ubuntu) CMD (root /usr/bin/php /var/www/html/directory/file.php >/dev/null
Dec 21 17:46:01 ip-172-31-34-251 CRON[20649]: (root) CMD (root /usr/bin/php /var/www/html/directory/file.php >/dev/null 2
Dec 21 17:46:01 ip-172-31-34-251 CRON[20647]: pam_unix(cron:session): session closed for user ubuntu
Dec 21 17:46:01 ip-172-31-34-251 CRON[20646]: pam_unix(cron:session): session closed for user root
Dec 21 17:47:01 ip-172-31-34-251 CRON[20661]: pam_unix(cron:session): session opened for user ubuntu by (uid=0)
Dec 21 17:47:01 ip-172-31-34-251 CRON[20660]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec 21 17:47:01 ip-172-31-34-251 CRON[20662]: (ubuntu) CMD (root /usr/bin/php /var/www/html/directory/file.php >/dev/null
Dec 21 17:47:01 ip-172-31-34-251 CRON[20663]: (root) CMD (root /usr/bin/php /var/www/html/directory/file.php >/dev/null 2
Dec 21 17:47:01 ip-172-31-34-251 CRON[20661]: pam_unix(cron:session): session closed for user ubuntu
Dec 21 17:47:01 ip-172-31-34-251 CRON[20660]: pam_unix(cron:session): session closed for user root
cron 作业应该更新另一个文件,但没有发生。出了什么问题,或者我可以做些什么来进一步解决这个问题。以前我会在托管域中使用 cron 作为服务,但最近才开始使用 ubuntu,所以不确定 linux 命令。
不要使用 /etc/crontab 来 运行 您的 cron 作业。而是使用您希望 运行 下的作业的用户帐户。系统 crons 的环境几乎永远不会匹配你 运行 你想做的工作所需要的。所以在这种情况下,su 到 root 用户,然后 crontab -e
或 sudo crontab -e
。然后这样输入...
* * * * * /usr/bin/php /var/www/html/directory/file.php >/dev/null 2>&1
我有一个 PHP 文件,我想 运行 作为 cron 作业。
在服务器上文件位于 /var/www/html/directory/file.php
并且没有错误,因为它可以在浏览器中 运行 通过转到 www.exampledomain.com/directory/file.php
.
在文件 /etc/crontab
中,我有以下行:
* * * * * root /usr/bin/php /var/www/html/directory/file.php >/dev/null 2>&1
在我的服务器上输入 sudo service cron status
我看到:
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-07-29 10:23:11 UTC; 4 months 23 days ago
Docs: man:cron(8)
Main PID: 769 (cron)
Tasks: 1 (limit: 1140)
CGroup: /system.slice/cron.service
└─769 /usr/sbin/cron -f
Dec 21 17:46:01 ip-172-31-34-251 CRON[20648]: (ubuntu) CMD (root /usr/bin/php /var/www/html/directory/file.php >/dev/null
Dec 21 17:46:01 ip-172-31-34-251 CRON[20649]: (root) CMD (root /usr/bin/php /var/www/html/directory/file.php >/dev/null 2
Dec 21 17:46:01 ip-172-31-34-251 CRON[20647]: pam_unix(cron:session): session closed for user ubuntu
Dec 21 17:46:01 ip-172-31-34-251 CRON[20646]: pam_unix(cron:session): session closed for user root
Dec 21 17:47:01 ip-172-31-34-251 CRON[20661]: pam_unix(cron:session): session opened for user ubuntu by (uid=0)
Dec 21 17:47:01 ip-172-31-34-251 CRON[20660]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec 21 17:47:01 ip-172-31-34-251 CRON[20662]: (ubuntu) CMD (root /usr/bin/php /var/www/html/directory/file.php >/dev/null
Dec 21 17:47:01 ip-172-31-34-251 CRON[20663]: (root) CMD (root /usr/bin/php /var/www/html/directory/file.php >/dev/null 2
Dec 21 17:47:01 ip-172-31-34-251 CRON[20661]: pam_unix(cron:session): session closed for user ubuntu
Dec 21 17:47:01 ip-172-31-34-251 CRON[20660]: pam_unix(cron:session): session closed for user root
cron 作业应该更新另一个文件,但没有发生。出了什么问题,或者我可以做些什么来进一步解决这个问题。以前我会在托管域中使用 cron 作为服务,但最近才开始使用 ubuntu,所以不确定 linux 命令。
不要使用 /etc/crontab 来 运行 您的 cron 作业。而是使用您希望 运行 下的作业的用户帐户。系统 crons 的环境几乎永远不会匹配你 运行 你想做的工作所需要的。所以在这种情况下,su 到 root 用户,然后 crontab -e
或 sudo crontab -e
。然后这样输入...
* * * * * /usr/bin/php /var/www/html/directory/file.php >/dev/null 2>&1