Backup serwera Linux - deduplikacja - QNAP + BORG

Backup serwera Linux - deduplikacja - QNAP + BORG

Ok, nie rsync fajny rdiff-backup też. Ostatnio poznałem  borgbackup – fajny, prosty i działa – backup się zrobił i tyłek uratował klientowi :)

Borg sam w sobie ogarnia backup via ssh, ale o tym później teraz nieco inaczje:) – powiedzmy, że mamy katalog Dokumenty gdzie trzymamy całą naszą prace :)

W pierwszej kolejności logujemy się na ssh :)

Musimy pobrać binerke borga – link do x64 – sprawdzone na moim TS-251+ z QTS 4.3 w wersji beta.

mkdir /share/CACHEDEV1_DATA/bin
wget --no-check-certificate https://github.com/borgbackup/borg/releases/download/1.0.3/borg-linux64 -O /share/CACHEDEV1_DATA/bin/borg
chmod +x /share/CACHEDEV1_DATA/bin/borg

Ok czyli dobry początek już mamy :)

Teraz zróbmy sobie jakieś miejsce składowania kopii :)

mkdir /share/CACHEDEV1_DATA/bkp

Musimy zrobić teraz repo:

borg init /share/CACHEDEV1_DATA/bkp/dokumenty

Ok czas wykonać pierwszy backup, utworzymy sobie skrypt do tego:

vim /share/CACHEDEV1_DATA/bin/bkp_local.sh

I zawartośc:

#!/bin/bash

BORGBACKUPDIR="/share/CACHEDEV1_DATA/bkp/dokumenty"
REPOSITORY=$BORGBACKUPDIR
BORG="/share/CACHEDEV1_DATA/bin/borg"
$BORG create -v --stats $REPOSITORY::$(hostname)-$(date +%Y-%m-%d) /share/CACHEDEV1_DATA/Dokumenty 
$BORG prune -v $REPOSITORY --prefix `hostname`- --keep-daily=7 --keep-weekly=4 --keep-monthly=6

I +x :)

chmod +x /share/CACHEDEV1_DATA/bin/bkp_local.sh

Teraz wystarczy uruchomić skrypt, a wynik będzie coś jak poniżej:

------------------------------------------------------------------------------
Archive name: nas-2017-01-27
Archive fingerprint: f2e17c7b475e8303fec196f68b617df49417fb882c6bc7b45df8cc30eb0ede98
Time (start): Fri, 2017-01-27 02:02:05
Time (end):   Fri, 2017-01-27 02:02:30
Duration: 25.21 seconds
Number of files: 93658
------------------------------------------------------------------------------
                      Original size      Compressed size    Deduplicated size
This archive:                4.20 GB              4.20 GB              5.11 MB
All archives:               33.58 GB             33.61 GB              3.84 GB

                      Unique chunks         Total chunks
Chunk index:                   77085               759795
------------------------------------------------------------------------------

Można sprawdzić repo i jakie backupy zawiera:

/share/CACHEDEV1_DATA/bin/borg list /share/CACHEDEV1_DATA/bkp/serwer
nas-2017-01-21                       Sat, 2017-01-21 02:00:04
nas-2017-01-22                       Sun, 2017-01-22 02:00:04
nas-2017-01-23                       Mon, 2017-01-23 02:00:04
nas-2017-01-24                       Tue, 2017-01-24 02:00:04
nas-2017-01-25                       Wed, 2017-01-25 02:00:04
nas-2017-01-26                       Thu, 2017-01-26 02:00:04
nas-2017-01-27                       Fri, 2017-01-27 02:00:04

Super… tylko jak dane odzyskać :)

A więc gdzieś powiedzmy…

mkdir /share/CACHEDEV1_DATA/odzysk && cd /share/CACHEDEV1_DATA/odzysk

Odzyskujemy repo z dnia:

/share/CACHEDEV1_DATA/bin/borg extract /share/CACHEDEV1_DATA/bkp/serwer::nas-2017-01-22

lub jakiś plik powiedzmy koty.xls

/share/CACHEDEV1_DATA/bin/borg extract /share/CACHEDEV1_DATA/bkp/serwer::nas-2017-01-22 /share/CACHEDEV1_DATA/Dokumenty/koty.xls

A to jeszcze dajmy jakiś automat na to :)

vi /etc/config/crontab

Zawartość przykład:

0 01 * * * /share/CACHEDEV1_DATA/bin/bkp_local.sh

Czyli codzienna kopia o 1 w nocy, wpis dokonany trzeba go jeszcze „aktywować”

crontab /etc/config/crontab && /etc/init.d/crond.sh restart

I to wszystko :), mam nadzieje że zadziałą, gdyż pisze z głowy :P