【发布时间】:2012-09-28 17:57:55
【问题描述】:
我正在使用 ftp 上传脚本将一台服务器传输到另一台服务器。它在浏览器窗口中运行良好,并且在 ssh 命令行中运行良好: php /var/www/vhosts/domain.com/httpdocs/ftp_shell.php
但是当我从 cron 运行完全相同的命令时,我得到了这个:
PHP 警告:ftp_get(ftp.tmp):打开流失败:第 516 行 /var/www/vhosts/domain.com/httpdocs/ftp_shell.php 中的权限被拒绝 PHP 警告:ftp_get():在第 516 行的 /var/www/vhosts/domain.com/httpdocs/ftp_shell.php 中打开 ftp.tmp 时出错
我在第 516 行查看,即:
if((ftp_get($ftp_from,"ftp".$tmp.".tmp",$fname,FTP_BINARY) ||
ftp_get($ftp_from,"ftp".$tmp.".tmp",$fname,FTP_ASCII)) &&
(ftp_put($ftp_to,$fname,"ftp".$tmp.".tmp",FTP_BINARY) ||
ftp_put($ftp_to,$fname,"ftp".$tmp.".tmp",FTP_ASCII)) &&
ftp_site($ftp_to,"chmod ".base_convert($chmod,10,8)." $fname") &&
f_size()&&unlink("ftp".$tmp.".tmp")) {echoout(" (".$size_b." bytes) ok<br>");$count_f++;}
我知道它正在将文件写入临时文件,但为什么它允许我在浏览器和命令行中执行此操作,而不是 cron?
【问题讨论】:
-
您是否在浏览器会话中使用用户名/密码?
-
你在哪个 linux 发行版上?你也可以粘贴你的 cron 行吗?
-
没有用户/通行证。 CentOS 6.
-
cron 行:* * * * * php /var/www/vhosts/domain.com/httpdocs/ftp_shell.php