Как скопировать сервер папок на сервер с помощью phpseclib? - PullRequest
0 голосов
/ 12 марта 2019

Я хочу создать резервную копию данных с сервера на сервер, используя библиотеку phpseclib. это недавно сценарий:

<?php
include "lib/Crypt/RSA.php";
include "lib/Crypt/Base.php";
include "lib/Crypt/RC4.php";
include "lib/Crypt/AES.php";
include "lib/Net/SFTP.php";
include "lib/Math/BigInteger.php";

set_include_path('lib/'); 

$sftp = new Net_SFTP('172.1.xxx.xx');
if (!$sftp->login('root', 'xxxx')) {
    exit('login failed');
}

$sftp->chdir('/opt/oss/server/var/fileint/fm');
$files = $sftp->nlist('.', true);
foreach ($files as $file) {
    if ($file == '.' || $file == '..') {
        continue;
    }
    $dir = './Alarm/' . dirname($file);
    if (!file_exists($dir)) {
        //mkdir($dir, 0777, true);
    }
    file_put_contents($dir . '/' . $file, $sftp->get($file));
}

но все равно ошибка -> PHP ПРЕДУПРЕЖДЕНИЕ: file_put_contents ()

копировать все файлы и папки

сервер 1

до

сервер 2

1 Ответ

0 голосов
/ 13 марта 2019

Построение вашего скрипта:

<?php
set_include_path('lib/'); 

include "lib/Net/SFTP.php";

$sftp = new Net_SFTP('172.1.xxx.xx'); // source server
if (!$sftp->login('root', 'xxxx')) {
    exit('login failed');
}

$sftp2 = new Net_SFTP('172.1.xxx.xx'); // destination server
if (!$sftp2->login('root', 'xxxx')) {
    exit('login failed');
}

$sftp->chdir('/opt/oss/server/var/fileint/fm');
$files = $sftp->nlist('.', true);
foreach ($files as $file) {
    if ($file == '.' || $file == '..') {
        continue;
    }
    $dir = './Alarm/' . dirname($file);
    if (!$sftp2->file_exists($dir)) {
        $sftp2->mkdir($dir, 0777, true);
    }
    $sftp2->put($dir . '/' . basename($file), $sftp->get($file));
}

Это скопирует каталог с одного удаленного сервера на другой удаленный сервер. Обратите внимание, что если вы хотите скопировать каталог с удаленного сервера в другой каталог на том же сервере, я бы просто использовал объект $sftp вместо создания нового объекта $sftp2. Но это не кажется 1009 *, как будто это то, что вы спрашиваете.

...