Резервне копіювання і трохи грецької міфології
Tartarus - це система створення резервних копій. Може створювати інкрементні архіви. Базується на використанні звичних в nix-середовищі утиліт curl, tar, gzip та інших.
Репозиторій проекту доволі давно не оновлювався та від цього не втратив своєї привабливості в якості дуже простого і зрозумілого інструменту.
Та́ртар (грец. Τάρταρος, Tartaros) — у давньогрецькій міфології місце в підземному світі, темна безодня в глибині космосу, нижче від Аїду. (Вікіпедія)
Встановлюємо необхідні утиліти
apt-get update
apt-get install tar bzip2 lvm2 gnupg curl
git clone https://github.com/wertarbyte/tartarus.git
cd tartarus
cp bin/* /usr/bin/
cp -r lib/Tartarus /usr/share/perl5/
Шлях до бібліотек перлу можна взяти командою perl -V
Створюємо необхідні для роботи каталоги
mkdir /backups
mkdir /etc/tartarus
mkdir -p /var/spool/tartarus/timestamps
Загальний конфігураційний файл:
# /etc/tartarus/generic.inc
STORAGE_METHOD="FILE"
STORAGE_FILE_DIR="/backups"
COMPRESSION_METHOD="gzip"
Файл конфігурації для створення резервної копії сайту bender.kr.ua
# /etc/tartarus/bender.conf
# підключити загальні налаштування
source /etc/tartarus/generic.inc
# назва профілю
NAME="bender"
# папка яку треба резервувати
DIRECTORY="/var/www/bender.kr.ua"
# не включати до архіву наступні директорії
EXCLUDE="/var/www/bender.kr.ua/cache /var/www/bender.kr.ua/log"
# файл для збереження мітки часу
INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/bender"
Створюємо скрипт для створення бекапів /backups/backup.sh
#!/bin/bash
BACKUP_DIR=/backups
TARTARUS=`which tartarus`
CHARON=`which charon.local`
PROFILE_DIR=/etc/tartarus
for profile in /etc/tartarus/*.conf; do
$TARTARUS $* "$profile"
done
# видалити архіви старіші за 31 день
$CHARON --dir $BACKUP_DIR/ --maxage 31 --all
Додаємо до планувальника завдання: першу неділю місяця робити повний архів, в інші - інкрементний:
0 0 * * 7 [ $(date +\%d) -le 07 ] && sh /backups/backup.sh > /dev/null 2>&1
0 0 * * 7 [ $(date +\%d) -gt 07 ] && sh /backups/backup.sh -i > /dev/null 2>&1