FSbackup на debian ubuntu настраиваем бэкапы в Debian

В продолжение поста про автоматическое резервное копирование небольшие заметки про fsbackup - набор скриптов для резервного копирования с довольно широкими возможностями:

  •  2 метода вычисления контрольных сумм (timesize и md5)
  • 4 вида бэкапа (backup, full_backup, sync, hash)
  • 3 типа хранилища бэкапа (local, remote_ftp, remote_ssh)
  • 8 встроенных операторов (regex) для задания путей и исключений для сохраняемых файлов и каталогов
  • ограничения для файлов по дате создания и размеру
  • Возможность шифрования бэкапа с помощью PGP.
  • задание количества инкрементальных бэкапов
  • сохранение списка всех установленных пакетов (для FreeBSD и Linux)
  • гибкое создание резервных копий баз данных (выбранные базы, исключённые базы, выбранные таблицы отдельных баз)

Очень подробная статья о настройке Fsbackup и сами скрипты размещены на opennet.

Ошибка fsbackup: FTP error, Can’t GET .hash

При настройке резервного копирования на удалённый сервер после очистки FTP-каталога возможна ошибка fsbackup “Can’t GET .hash” - следует удалить все файлы из временного каталога fsbackup (по умолчанию /usr/local/fsbackup/cache)

FSbackup не создает бэкап (бэкап пустой), в бэкапе нет баз данных

Ещё раз внимательно перечитать статью. Перед запуском скрипта нужно указать настройки как минимум в двух файлах:

  • конфигурационный файл
  • собственно в  create_backup.sh указать config_files и (при необходимости) флаги для создания дампов баз данных (backup_mysql, backup_pgsql, …)
  • если указано создание баз данных, для каждого типа баз данных  следует отредактировать соответствующий файл в каталоге scripts - указать как минимум логин, пароль и сервер.

Правильно ли указан тип бэкапа (remote_ftp, local, remote_ssh) и указаны ли соответствующие настройки (доступ по FTP и/или локальный каталог)

Ошибка fsbackup mysqldump: ambiguous option ‘–all’ (all-databases, allow-keywords)

При создании резервных копий mysql fsbackup выдает ошибку

mysqldump: ambiguous option ‘–all’ (all-databases, allow-keywords)

Дело в том, что параметр –all, отвечающий за добавление в дамп дополнительной информации о структуре базы (т.е. в CREATE TABLE строки с ENGINE=… AUTO_INCREMENT=.. итд. ) был deprecated уже довольно давно, и вместо него рекомендуется использовать параметр –create-options, который по умолчанию TRUE

-all
See the description for –create-options. The –all option is deprecated in favor of –create-options as of MySQL 4.1.2.
–create-options (boolean)

Add additional information to the CREATE TABLE statements that mysqldump generates, such as the storage engine, the beginning AUTO_INCREMENT value, and so forth. This is the information that you can specify in the table_options part of the CREATE TABLE syntax. (See Appendix E.)

This option was introduced in MySQL 4.1.2. It is enabled by default; use –skip-create-options to disable it.

Поскольку на значения по умолчанию полагаться не стоит, можно просто удалить ‘–all ‘ или заменить его на ‘–create-options ‘ (с пробелом - аккуратнее, при автозамене в Linux не замените –all-databases) в файле scripts/mysql_backup.sh

FSbackup на Debian ошибка Warning: bad ps syntax, perhaps a bogus ‘-’? See http://procps.sf.net/faq.html

При запуске “как есть” на Debian/Ubuntu  fsbackup выдаёт ошибку (точнее предупреждение, но всё равно неприятно) bad ps syntax, perhaps a bogus ‘-’.

Чтобы устранить - в файле create_backup.sh в строчке убираем знак ‘-‘ (минус) после ps

IDLE=`ps -auxwww | grep fsbackup.pl | grep -v grep`

FSbackup не добавляет часть файлов/каталогов

В конфигурационном файле fsbackup позволяет указать каталоги и маски для добавления/исключения файлов - система достаточно гибкая, но при невнимательном использовании может привести к неполному копированию - часть файлов просто не попадает в бэкап.

# Список файлов и условий для помещения в бэкап.
# (описываются после директивы __DATA__):
# /dir[/file] - путь к файлу/директории для бэкапа.
# !/dir[/file] - отрицание пути, не помещать в бэкап. Не маска, а реальный путь.
# # - комментарий
# Маски:
# =~ - маска для файла или директории, а не абсолютный путь. Первый или второй символ.
# f~ - маска для файла. Первый или второй символ.
# d~ - маска для директории. Первый или второй символ.
# Маски отрицания:
# =! - “НЕ” маска для файла или директории, а не абсолютный путь. Первый или второй символ.
# f! - “НЕ” маска для файла. Первый или второй символ.
# d! - “НЕ” маска для директории. Первый или второй символ.

Несмотря на то, что конфигруационный файл документирован достаточно полно, есть поясняющие примеры, иногда возникают вопросы и сложности.

# Бэкап проходит только в рамках директорий и файлов описанных в путях.
# Отрицания путей имеют более высокий приоритет чем пути.
# Маски имеют более высокий приоритет, чем пути или отрицание путей,
# маски “НЕ” имеют более высокий приоритет, чем обычные маски:

# Таблица приоритетов:
# Operation priority:
#
# 1. =!
# 2. f!
# 3. f~
# 4. d!
# 5. =~
# 6. d~
# 7. !
# 8. path

Fsbackup не помещает в backup пустые каталоги

Несмотря на хитрую систему приоритетов у меня не получилось настроить так, чтобы каталог tmp_sess (не /tmp, а внутри сайта) попадал в бэкап, а содержимое этого каталога - нет. Обошел добавлением файла index.html в сам каталог, а также прописыванием исключений - файлы в tmp_sess подходили под определенный шаблон. Возможно, есть и другое решение…

В общем-то, с одной стороны хорошо - если  каталог пустой - зачем его добавлять… с другой - при восстановлении из бэкапа приходится создавать каталоги заново. Можно, конечно, скрипт создания каталогов написать… главное вспомнить о его существовании в самый ответственный момент :)

upd… Всё-таки документацию нужно читать внимательно.. и несколько раз.

имя-время.dir команды для восстановления прав доступа и пустых директорий.

Метки:

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

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