lftp: зеркалируем локальные и удаленные каталоги

lftp — программа для передачи файлов в сложных условиях ftp, http и других соединений. lftp имеет встроенную поддержку зеркалирования всего дерева каталогов. Она так же может зеркалировать в обратном режиме, т.е. сделать зеркало локального каталога на сервере, загрузив все файлы. Еще одна интересная возможность: зеркалирование двух удаленных серверов по протоколу FXP, если он доступен на серверах.

Синтаксис

mirror
mirror options
mirror -c
mirror -R

Пример: Как сделать зеркало удаленного каталога (скачать файлы)

Для начала необходимо подключиться к удаленному серверу:

lftp ftp.example.com

Введите имя пользователя и пароль:

lftp ftp.example.com:~> user user@example.com

Пример вывода:

Password:
lftp user@example.com@ftp.example.com:~>

Введите ls, чтоб увидеть список файлов:

lftp ftp.example.com:~> ls

Пример вывода:

-rw-r--r--    1 80       www      36809419 Jun 24 23:59 2012-06-24.log.gz
-rw-r--r--    1 80       www      100912271 Jun 25 23:59 2012-06-25.log.gz
-rw-r--r--    1 80       www      102926055 Jun 26 23:59 2012-06-26.log.gz

Для зеркалирования всех файлов в текущий каталог введите:

lftp ftp.example.com:~> mirror

С командой mirror вы можете указать исходный каталог и каталог назначения. Если каталог назначения будет оканчиваться на слеш («/»), то имя исходного каталога будет добавлено к каталогу назначения.

lftp ftp.example.com:~> mirror source destination

или

lftp ftp.example.com:~> mirror logs/ /data/logs

Я очень рекомендую использовать опцию, которая позволяет продолжить скачивание, если вдруг соединение оборвалось:

lftp ftp.example.com:~> mirror -c source destination

или

lftp ftp.example.com:~> mirror --continue

Чтоб скачать только новые файлы (не работает с -c):

lftp ftp.example.com:~> mirror -n

или

lftp ftp.example.com:~> mirror --only-newer

Вы можете ускорить загрузку файлов используя опцию параллельной загрузки:

lftp ftp.example.com:~> mirror -p

Чтоб указать количество потоков, введите:

lftp ftp.example.com:~> mirror --parallel=10

Пример: как сделать обратное зеркалирование (загрузка файлов)

Для создание обратного зеркала каталога вам необходимо передать опцию -R или —reverse команде mirror. Для начала вам необходимо подключиться к серверу, как было показано в предыдущем примере.

Сменить локальный каталог:

lftp ftp.example.com:~> lcd /home/silver/project/lftp

Пример вывода:

lcd ok, local cwd=/home/silver/project/lftp

Для загрузки дерева файлов и каталогов на сервер:

lftp ftp.example.com:~> mirror -R

или укажите локальный и удаленный каталоги:

lftp ftp.example.com:~> mirror -R /home/silver/project/lftp /var/www/html

Для выхода из FTP сессии:

lftp ftp.example.com:~> quit


Comments !