Автоматизация backup'а данных

Используем FSBACKUP - система инкрементального резервного копирования и синхронизации ФС. Взятый отсудова

Качаем его:
wget http://www.opennet.ru/dev/fsbackup/src/fsbackup-1.2pl2.tar.gz

распаковываем:
tar -zxvf fsbackup-1.2pl2.tar.gz

переходим в распакованную директорию:
cd fsbackup-1.2pl2

запускаем инсталятор:
./install.pl

Установили, значит... ну читаем мануал :)
Данной системой поддерживается несколько видов сохранения бакапов:
  • на локальном сервере
  • по FTP протоколу на другом сервере
  • по SSH протоколу также на другой машине

Ну у нас пока некуда сохранять кроме как себе, будем сохранять пока у себю.

Переходим в каталог куда установили:
cd /usr/local/fsbackup

Создадим каталоги куда будет делаться архив (ну непомню я создались ли они по умолчанию):
mkdir archive
mkdir sys_backup

Создаем файл конфигурации нашего backup'а
nano cfg

cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$cfg_backup_name = "server_backup";
$cfg_cache_dir = "/usr/local/fsbackup/cache";
$prog_md5sum    = "/usr/bin/md5sum -b";
$prog_tar       = "/bin/tar";
$prog_ssh       = "/usr/bin/ssh";
$prog_rm        = "/bin/rm";
$prog_gzip      = "/bin/gzip";
$prog_pgp       = "/usr/bin/gpg";
$cfg_checksum = "timesize";
$cfg_backup_style = "backup";
$cfg_increment_level = 7;
$cfg_save_old_backup = 1;
$cfg_type = "local";
$cfg_local_path = "/usr/local/fsbackup/archive";
$cfg_time_limit = 0;
$cfg_size_limit = 0;
$cfg_maximum_archive_size = 0;
$cfg_root_path = "/";
$cfg_verbose = 2;
$cfg_stopdir_prune=0; 1;

__DATA__
/web
/etc
/home

Ну а теперь нам нужно редактировать скрипт запуска бэкапа:
nano create_backup.sh
в нем нужно привести одну строку к такому виду:
config_files="cfg"
для использования нашего конфига и строку
backup_mysql=1
для бэкапа баз данных

Ну а раз указали архивирование баз данных, значит нужно настроить и скрипт:
nano scripts/mysql_backup.sh
Меняем строки:
backup_mysqluser="root"
backup_mysqlpassword="пароль"

Запускаем ./create_backup.sh
Нет ошибок? Значит первый наш backup создан и лежит в папках arhive и sys_backup

Ну а автоматизировать это не значит постоянно запускать в ручную, поручим это cron'у:
crontab -e

добавим строки:
MAILTO=ваша_почта@домен
0 0 * * * /usr/local/fsbackup/create_backup.sh

Теперь в 0 часов 0 минут ежедневно будет запускаться бэкап данных нашего сервера.

Фсе :)