root  / my Debian tips&tricks  / Синхронизация каталогов через ftp 

Official Debian logo

Если на одном из устройств нет ssh, то нам поможет ftp.

Мы будем использовать lftp.

Установка программы проста и понятна

aptitude install lftp

lftp представляет собой практически то же самое, что и ftp. Т.е. можно в терминале набрать lftp, нажать enter и оказаться в lftp-шной консоли. В этой консоли можно выполнить синхронизацию, например:

open ftp://username:password@server
mirror -vn /local_dir /remote_dir

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

lftp -f /path/to/lftp_script

При этом скрипт может быть например таким:

open -u username,password server
mirror -n -v /remote_dir /local_dir
mirror -n -v -R /local_dir /remote_dir
exit

Если порт нестандартный - первая строка изменяется:

open -u username,password -p port server

Нам в данном случае интересна команда mirror, посмотрим некоторые её параметры:

mirror [options] [source [destination]]

    -c          --continue              продолжить работу если возможно
    -e          --delete                удалить не существующие на удалённом сервере
    -n          --only-newer            синхронизировать только новые файлы (-c не работает в этом случае)
                --no-empty-dirs         не создавать пустые каталоги
    -r          --no-recursion          не ходить в подкаталоги
    -R          --reverse               обратить загрузку - выгрузить файлы в удалённый каталог
    -i RX       --include RX            включить совпадающий файлы
    -x RX       --exclude RX            исключить совпадающий файлы
    -I GP       --include-glob GP       включить совпадающий по маске файлы
    -X GP       --exclude-glob GP       исключить совпадающий по маске файлы
    -v          --verbose[=level]       показывать ход выполнения операции
                --log=FILE              записать lftp-команды в FILE и выполнить
                --script=FILE           записать lftp-команды в FILE, но НЕ выполнять
LJ