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
Комментарии: