Утилита LFTP для синхронизации файлов и папок по FTP в ОС Linux

SITE="Site.ru" # папка, в которую будет идти синхронизация (папка приемника), она создается Linux автоматически при её отсутствии.
PASSIVE_MOD="set passive-mode on;" # активный(on) или пассивный(off) режим FTP.
PATH_LOG="/var/www/data/logs" # папка хранения логов синхронизации.
FILENAME=$SITE-$(date +%Y-%m-%d) # название файла логов синхронизации.
REM_DIR="/Test.ru/www/" # папка источника, откуда качаем.
PATH_BU="/var/www/data/sites" # общая папка приемника.
REM_LOGIN="u219430" # логин от ftp аккаунта.
REM_PASS="hfg4rgfbv" # пароль от ftp аккаунта.
REM_SERV="ftp.site.ru" # адрес подключения к ftp или IP.

Пример синхронизации (файлы удаленные/отсутствующие в источнике, будут так же удалены в приемнике) с логированием

lftp -e "PASSIVE_MOD set file:charset utf-8; mirror -e --exclude-glob bitrix/cache/ --continue --log=$PATH_LOG/dwl/$FILENAME.log $REM_DIR $PATH_BU/$SITE; bye;" -u $REM_LOGIN,$REM_PASS $REM_SERV > $PATH_LOG/$SITE.ftp.log

Пример синхронизации (скачивает только новые файлы из источника, в приемнике ничего не удаляет) без логирования

lftp -e "PASSIVE_MOD set file:charset utf-8; mirror --only-missing --continue $REM_DIR $PATH_DB; bye;" -u $REM_LOGIN,$REM_PASS $REM_SERV

Опции "mirror"

Источник всегда является первым аргументом команды mirror, а приемник вторым.

  • -c, --continue продолжить передачу после сбоя, если это возможно
  • -e, --delete удалить файлы, отсутствующие в источнике
  • --exclude-glob path исключить файлы и папки из синхронизации (в "path" указывается адрес папки, например bitrix/cache/)
  • --delete-first удалить старые файлы перед передачей новых
  • -s, --allow-suid установить биты suid/sgid в соответствии с удаленным сайтом
  • --allow-chown установить владельца и группу для файлов
  • --ignore-time игнорировать время при принятии решения о загрузке
  • -n, --only-newer скачивать только новые файлы (не работает, если после lftp указан параметр -c)
  • -r, --no-recursion не переходить в подкаталоги
  • -p, --no-perms не устанавливать права доступа к файлам
  • --no-umask не применять umask к файловым режимам
  • -R, --reverse обратная синхронизация (закачивать файлы)
  • -L, --dereference скачивать символьные ссылки в виде файлов
  • -N, --newer-than=SPEC скачивать только файлы, которые были новее указанного времени
  • -P, --parallel[=N] скачивать N файлов параллельно
  • -i RX, --include RX включить совпадающие файлы
  • -x RX, --exclude RX исключить совпадающие файлы
  • RX is extended regular регулярное выражение
  • -v, --verbose[=N] подробная операция
  • --log=FILE запись выполняемых lftp-команд в ФАЙЛ
  • --script=FILE запись команд lftp в файл, но не выполнять их
  • --just-print, --dry-run то же, что и --script=-

При использовании -R первый каталог является локальным, а второй удаленным.
Если второй каталог не указан, используется базовое имя первого каталога.
Если оба каталога не указаны, используются текущие локальный и удаленный каталоги.


Возврат к списку

Мы используем файлы cookie. Продолжив работу с сайтом, вы соглашаетесь с
Политикой обработки персональных данных
OK