【问题标题】:Linux Crontab executes PHP script but this Script won't delete fileLinux Crontab 执行 PHP 脚本,但此脚本不会删除文件
【发布时间】:2015-01-17 16:04:45
【问题描述】:

我正在通过 Linux Crontab 运行 PHP 脚本。它运行正确(使用 ps -ef 验证)。该脚本检查指定目录中的所有文件,如果文件不符合某些要求,则将其删除。

这个 sript 可以通过 Linux 控制台(以 root 身份)完美执行,但是当它由 Crontab 执行时它将无法工作......

建议?谢谢!

PD: - 权限 -> - PHP 脚本 (755) - 目标文件夹 (777) - 要删除的文件 (644)

Crontab 行:

*/1 * * * * php /var/www/server/close_con_watch.php >> /var/www/server/phpcronlog.txt

【问题讨论】:

  • 请从 crontab 文件中发布运行脚本的行。您可能会发现您没有使用正确的权限运行它。
  • “行不通”是什么意思?我们通常在这里需要更多信息丰富的故障报告...:-)
  • 问题可能是 cron 找不到 php 可执行文件。你读过stackoverflow.com/questions/2689284/… 吗?
  • Cron 正确运行 PHP 脚本,我在进程列表中检查了它。 Cron 中是否还有其他行正确执行(PHP 也是)

标签: php linux file crontab


【解决方案1】:

确保将用户/组添加到 Cron 命令中,例如

10 * * * *  root     /path/file.php

并确保您的文件以

开头
 #!/usr/bin/php

【讨论】:

  • 您可以以 root 身份运行,但以仅具有您需要的权限的特定用户身份运行要安全得多。
  • 没有解决问题,感谢回答
  • 检查您的系统日志。它应该提供更多信息。
【解决方案2】:

终于成功了。冲突发生在 PHP 脚本中。

我的脚本检查某个目录中的文件,该目录的路径以相对方式声明。我以绝对的方式声明了路径并且它工作但我仍然不明白...... PHP脚本位于固定路径中,因此代码行中声明的所有路径都应该作为相对工作,无论它是从哪里执行的... 我错了吗?谢谢大家。

为什么我很困惑:

  • 之前声明的相对路径没有引发路径警告/异常。
  • 当我从控制台执行脚本时,它运行良好。

【讨论】:

    猜你喜欢
    • 2020-10-19
    • 2016-10-03
    • 2016-03-02
    • 2020-03-16
    • 2013-04-19
    • 2020-05-30
    • 2017-09-07
    • 2016-01-28
    • 1970-01-01
    相关资源
    最近更新 更多