使用 crontab 执行 php 文件

使用 crontab 执行 php 文件

我尝试将其放入 crontab 中:

50 19 * * * /usr/bin/php -f /var/www/html/phpscript.php 

这个 PHP 脚本与php /var/www/html/phpscript.php...配合得很好
。我已经在网上学习了很多教程,但对我没什么用。
我的 crontab 可以工作,因为在此之前,我有:,40 14,19,20,01 * * * /root/scripts/backup_bdd.sh它工作得很好。

有人有解决方案吗?
谢谢!

答案1

通过cron、运行的作业crontab不会在桌面上的同一运行时环境中运行。您的任何PATH更改或其他环境变量设置都不会自动传播到您的cron作业。例如,没有$DISPLAY,因此 GUI 程序需要特殊处理(阅读man xhost)。

cron人们可以在crontab文件 Read中为所有作业设置环境变量man 5 crontab

echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias查看每个环境中的结果 。

由于command该行的一部分crontab默认由 解释/bin/sh,其语法比 更简单/bin/bash,因此我建议command调用一个bash脚本(可执行、已安装、以 开头#!/bin/bash)来设置环境,然后调用所需的程序。

答案2

我还需要一个 cron 作业来运行具有空输出的 php 文件:

* * * * * /usr/bin/php  /path/to/script/cron.php >/dev/null

托管服务不允许在命令的输入文本中使用“特殊”字符 (>),因此必须在可执行 .sh 文件中执行该命令(具有-rwxr-xr-x权限或 755)。

当我在阅读好的信息时,我更有方向感这一页

您可以尝试:

/root/scripts/backup_bdd.sh

#!/usr/bin/bash
php -f /var/www/html/phpscript.php

笔记:当 .sh 文件已被编辑时,请记住在创建 cron 作业之前仔细检查权限。一些本地/在线编辑器可能会在保存文件后将文件权限更改为-rw-r--r--/644:

$ chmod +x /root/scripts/backup_bdd.sh

对于 cron 任务,对我来说有效的“运行命令”是在开头添加公用事业:

sh -f /root/scripts/backup_bdd.sh

最后,cron 作业如下所示:

50 19 * * * sh -f /root/scripts/backup_bdd.sh

对 bash 了解不多,但如果它不起作用,请尝试以下操作(这取决于您的系统环境):

#!/usr/bin/env php
php -f /var/www/html/phpscript.php

或许这个答案

#!/usr/bin/env bash
PHP=`which php`
$PHP -f /var/www/html/phpscript.php

或者这个

#!/usr/bin/sh
php -f /var/www/html/phpscript.php

注 2:我也尝试过crontab命令但没有成功(共享主机)。

祝你好运

相关内容