У меня есть PHP-скрипт, который должен взять файл с одного веб-сервера и загрузить его на другой, когда я запускаю скрипт через браузер, он работает нормально. когда я использую этот cronjob, он не загружается.

51 14 * * * /usr/bin/php /kunden/homepages/25/d515048961/htdocs/FTP_Orders.php

я что-то упускаю? времена произвольны, я просто проверяю это.

скрипт PHP это:

<?php

// FTP access parameters
$host = 'paperlinx.co.uk';
$usr = 'ftp@paperlinx.co.uk';
$pwd = '######';

// file to move:
$local_file = './db_export_orders_2014-10-27.csv';
$ftp_path = '/exported/db_exported_orders_2014-10-27.csv';

// connect to FTP server (port 21)
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");

// send access parameters
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");

// turn on passive mode transfers (some servers need this)
ftp_pasv ($conn_id, true);

// perform file upload
$upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);

// check upload status:
print (!$upload) ? 'Cannot upload' : 'Upload complete';
print "\n"; 

/*
** Chmod the file (just as example)
*/

// If you are using PHP4 then you need to use this code:
// (because the "ftp_chmod" command is just available in PHP5+)
if (!function_exists('ftp_chmod')) { 
//print "in not function exists";
   function ftp_chmod($ftp_stream, $mode, $filename){
        return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename)) or die ("i'm stuck here");
   }
} 

/* else

// try to chmod the new file to 666 (writeable)
 if (ftp_chmod($conn_id, 0666, $ftp_path) !== false) 
{    
    print $ftp_path . "chmoded successfully to 666\n";
} 

else 
{

    print "could not chmod $file\n";
}
*/



// close the FTP stream
ftp_close($conn_id);

?>

Я действительно застрял с этим, поэтому любая помощь будет принята с благодарностью.

1 ответ1

0

Проблема в том, что когда вы запускаете скрипт из задания cron, текущий рабочий каталог не совпадает с тем, когда вы запускаете его из браузера, поэтому следует избегать относительных путей.

Замените ваш $local_file на полный путь, и он должен работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .