/ #linux 

Резервне копіювання і трохи грецької міфології

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

Посилання

Author

Олександр Бобилєв

Залишаю собі право використовувати ненормативну (але інформативну) лексику там, де звичайні слова втрачають сенс і не відображають всієї палітри почуттів, від споглядання навколишньої дійсності.