Каков наилучший способ перемещения файлов с одного сервера на другой с помощью PHP? - PullRequest
5 голосов
/ 28 октября 2008

Я хочу настроить CRON, который запускает скрипт PHP, который, в свою очередь, перемещает файл XML (содержащий нечувствительную информацию) с одного сервера на другой.

Мне дали правильное имя пользователя / пароль, и я хочу использовать протокол SFTP. Работы будут выполняться ежедневно. Существует вероятность того, что одним сервером является Linux, а другим - Windows. Оба находятся в разных сетях.

Как лучше всего переместить этот файл?

Ответы [ 4 ]

7 голосов
/ 28 октября 2008

Если бы оба сервера работали в Linux, вы могли бы использовать rsync для любых типов файлов (php, xml, html, binary и т. Д.). Даже если одним из них будет Windows, существуют порты rsync для Windows.

7 голосов
/ 29 октября 2008

Почему бы не попробовать использовать PHP функции FTP ?

Тогда вы могли бы сделать что-то вроде:

// open some file for reading
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to upload $file
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
    echo "Successfully uploaded $file\n";
} else {
    echo "There was a problem while uploading $file\n";
}

// close the connection and the file handler
ftp_close($conn_id);
fclose($fp);
5 голосов
/ 28 октября 2008

Почему бы не использовать shell_exec и scp ?

<code><?php
    $output = shell_exec('scp file1.txt dvader@deathstar.com:somedir');
    echo "<pre>$output
"; ?>
0 голосов
/ 13 июня 2018

У меня была похожая ситуация. После некоторых попыток я сделал что-то другое

У нас есть 2 сервера, (которые имеют оригинальные файлы) b (файлы должны быть перемещены в него)

И наверняка данные НЕ чувствительны

Теперь на сервере a я создал файл для выполнения следующих действий при вызове: 1. Выберите файл для перемещения 2. Заархивируйте файл 3. Распечатать расположение файла .zip 4. Удалите ZIP-файл (и исходный файл), если параметр удаления передает значение

.

На сервере b файл должен делать: 1. Вызовите файл на сервере 2. Загрузите почтовый файл 3. Распакуйте и скопируйте его в нужное место 4. Вызовите функцию удаления на сервере a

Таким образом, у меня больше контроля над своими функциями, тестами и операциями!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...