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