Перейти к содержимому

Простое резервное копирование папок и файлов на ftp сервер.

Настроен rSyslog сервер на Ubuntu, и требуется резервировать логи на другое хранилище.

Консольный клиент lftp может работать по протоколам FTP и SFTP + поддерживает расширенный набор команд по сравнению с утилитами ftp и sftp. Самое важное отличие — умеет удалять, скачивать и выгружать директории целиком. Мне в этой утилите нужна команда mirror.

$ lftp --help
Использование: lftp [опции]<адрес>
-f <файл> выполнить команды из указанного файла и выйти
-c <команда> выполнить команду и выйти
--norc не выполнять rc-файлы из домашнего каталога
--help вывести данную подсказку и выйти
--version вывести информацию о версии и выйти
Остальные ключи аналогичны ключам команды open
-e <команда> выполнить команду после выбора сервера
-u <имя>[,<пароль>] использовать для аутентификации имя/пароль
-p <порт> использовать для соединения указанный порт
-s <слот> перейти в указанный слот
-d включить отладочный режим
<адрес> имя сервера,URL или имя закладкиКопировать

Сеанс работы

$ lftp
> open ftp://username:password@server.com # установить соединение
> ls # список файлов в текущей директории
drwxrwxr-x 4100110024096 Mar 1511:26.
drwxr-xr-x 3 root root 4096 Mar 1108:53..
drwxr-xr-x 3100110024096 Mar 1511:26 data
> cd data # перейти в директорию data
> ls # список файлов в текущей директории
drwxr-xr-x 3100110024096 Mar 1511:26.
drwxrwxr-x 4100110024096 Mar 1511:26..
drwxr-xr-x 2100110024096 Mar 1511:26 images
-rw-r--r--11001100239030 Mar 1511:26import.xml
-rw-r--r--11001100210826 Mar 1511:26 offers.xml
> mget import.xml offers.xml # скачать два файла
49856 байтов перемещено
Всего перемещено:2 файла
> put archive.zip # выгрузить один файл
7620 байтов перемещено
> exit # завершить сеанс работы$ lftp --help Использование: lftp [опции]-f выполнить команды из указанного файла и выйти -c выполнить команду и выйти --norc не выполнять rc-файлы из домашнего каталога --help вывести данную подсказку и выйти --version вывести информацию о версии и выйти Остальные ключи аналогичны ключам команды open -e выполнить команду после выбора сервера -u [,] использовать для аутентификации имя/пароль -p использовать для соединения указанный порт -s перейти в указанный слот -d включить отладочный режим имя сервера,URL или имя закладкиКопироватьСеанс работы

$ lftp open ftp://username:password@server.com # установить соединение ls # список файлов в текущей директории drwxrwxr-x 4100110024096 Mar 1511:26. drwxr-xr-x 3 root root 4096 Mar 1108:53.. drwxr-xr-x 3100110024096 Mar 1511:26 data cd data # перейти в директорию data ls # список файлов в текущей директории drwxr-xr-x 3100110024096 Mar 1511:26. drwxrwxr-x 4100110024096 Mar 1511:26.. drwxr-xr-x 2100110024096 Mar 1511:26 images -rw-r--r--11001100239030 Mar 1511:26import.xml -rw-r--r--11001100210826 Mar 1511:26 offers.xml mget import.xml offers.xml # скачать два файла 49856 байтов перемещено Всего перемещено:2 файла put archive.zip # выгрузить один файл 7620 байтов перемещено exit # завершить сеанс работы

Устанавливаем lftp. Из за того что не используются сертификаты и SSL выключаем их.

В /etc/lftp.config

setssl:verify-certificate no
setftp:ssl-allow off
setftp:prefer-epsv no

Создаём файл скрипта, и даём разрешение на выполнение

touch /home/admin/syslog-backup.sh
sudo chmod ugo+x /home/adminx/syslog-backup.sh

Далее сама команда в файле syslog-backup.sh , желательно проверить правильность выполнения

lftp -e 'mirror --reverse --delete /var/log/rsyslog /Rsyslog; exit'ftp://user-syslog:passsword-syslogxxxx@ip-xxx.xxx.xxx.xxx

Отличие между ними в том, что -c — опция утилиты lftp, а -e — опция команды open (при этом допускается ее использование с lftp). Это значит, что при использовании -c нужно сперва установить соединение с помощью open, а при использовании -e — соединение уже должно быть установлено.

Q: lftp hangs in "Making data connection" state.

A: Try "set ftp:prefer-epsv no". Probably a router on the path to the server does not recognize the EPSV command.

1
0
1829

Еще по теме