cron job给我错误的功能脚本

时间:2012-02-15 18:49:32

标签: php cron

我对cron的工作很陌生,所以这可能是一个简单的答案,但我无法弄清楚这里出了什么问题。我正在使用cron作业来运行php脚本来重命名文件。我知道该脚本有效,因为当我加载php文件时,它会执行它应该执行的操作。但是,每次cron作业都会向我发送错误电子邮件。这是我正在运行的脚本:

<?php
rename("login/pools.php", "login/poolsbk.php");
?>

我使用的是cron命令:php -q /home/dollarca/public_html/renamescript1.php

以下是它生成的错误:警告:重命名(login / pools.php,login / poolsbk.php):第2行/home/dollarca/public_html/renamescript1.php中没有这样的文件或目录

从它出来的错误中,我觉得它试图重命名脚本中的文件而不是目录中的文件。我使用错误的cron命令吗?

2 个答案:

答案 0 :(得分:3)

cron运行作业时的工作目录与手动运行脚本的工作目录不同。

简单的解决方案是使用函数中的完整路径。

rename("/home/dollarca/public_html/login/pools.php", "/home/dollarca/public_html/login/poolsbk.php");

答案 1 :(得分:2)

我想如果您手动运行PHP脚本,则可以从目录/home/dollarca/public_html执行此操作。如果cron运行它,它将不会这样做。您应该做的是使用绝对文件路径(即/home/dollarca/public_html/login/pools.php而不是login/pools.php)或使用chdir()首先更改到该目录:

<?php
chdir("/home/dollarca/public_html");
rename("login/pools.php", "login/poolsbk.php");
?>