Утилита 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, а приемник вторым.
При использовании -R первый каталог является локальным, а второй удаленным.
Если второй каталог не указан, используется базовое имя первого каталога.
Если оба каталога не указаны, используются текущие локальный и удаленный каталоги.