我对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命令吗?
答案 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");
?>