lftp синхронизация

Март 29th, 2010 по admin Оставить ответ »

После того как сгорел hosting.ua задумался над бекапами. решение нашлось быстро — воспользоваться програмулиной lftp.
Делаем бекап с удаленного фтп на локальный папку(для наглядности сделал командный файло)

1
2
3
4
5
6
7
#!/bin/bash    
HOST="IP or name ftp"
USER="login"
PASS="password"
LCD="/home/driver/www/local_dir"
RCD="public_html/www"
lftp -u $USER,$PASS -e "mirror --delete --only-newer --verbose $RCD $LCD ; bye;" $HOST

параметры которые можно заюзать
—delete — удаляет лишние файлы, которые находятся в локальной директории
—only-newer — заставляет lftp копировать только новые файлы
—exclude - позволяет исключить ненужные директории
—verbose — позволяет наблюдать за процессом во всех его деталях

Если нам нужно восстановить поврежденные на сервере файлы:
—reverse нас спасет!!
2 ситуации:

1) на сервере что-то не ладное. вроде бы файлы есть, но некоторых нету, а в некоторых появлися подозрительный текст. вывод. просто синхронизируем локальную директорию на сервер.

1
lftp -u username,password -e "mirror --reverse --delete --verbose /путь/до/локальной/директории путь/на/серваке; bye;" ftpsite

убран параметр —only-newer. если бы она присутствовала, то lftp не трогал бы измененные на сервере файлы

2) мы изменили и добавили некоторые файлы на венике и хотим все это переписать на сервер.

1
lftp -u username,password -e "mirror --reverse --only-newer --verbose /путь/до/локальной/директории путь/на/серваке; bye;" ftpsite

здесь убран —delete

Реклама

2 комментариев

  1. Отличный мануал!
    Сам попал с пожаром в этом ДЦ, хорошо бекапы были…
    Возник вопрос по тулзе lftp, в частности по приведенному коду — если после синхронизации я удалю файл с удаленного сервера, во время следующего запуска локальная копия этого файла так же удалится?
    Надеюсь что понятно расписал вопрос.

  2. admin:

    Приветсвую!
    Все зависит от параметров, если стоит параметр mirror —delete, то удаляет файл на локальном сервере если его нет на удаленном сервере с которого провожу синхронизацию
    вообще список команд вот:
    -c, —continue continue a mirror job if possible
    -e, —delete delete files not present at remote site
    -s, —allow-suid set suid/sgid bits according to remote site
    —allow-chown try to set owner and group on files
    -n, —only-newer download only newer files (-c won’t work)
    -r, —no-recursion don’t go to subdirectories
    -p, —no-perms don’t set file permissions
    —no-umask don’t apply umask to file modes
    -R, —reverse reverse mirror (put files)
    -L, —dereference download symbolic links as files
    -N, —newer-than FILE download only files newer than the file
    -P, —parallel[=N] download N files in parallel
    -i RX, —include RX include matching files
    -x RX, —exclude RX exclude matching files
    -I GP, —include-glob GP include matching files
    -X GP, —exclude-glob GP exclude matching files
    -v, —verbose[=level] verbose operation
    —use-cache use cached directory listings
    —Remove-source-files remove files after transfer (use with caution)
    -a same as —allow-chown —allow-suid —no-umask
    можно выбрать что душе угодно :)

Добавить комментарий

Вы должны войти на сайт чтобы оставить комментарий.