Borg
Info
Borg on deduplikeeriv, pakkiv ja krüpteeriv varundustarkvara mis sisaldab endas kõiki häid omadusi mida omab rsync hardlinkimine ja veel palju muid varundust hõlbustavaid võimalusi.
Paigaldamine
Arch linuxis on olemas pakk borg, FreeBSD all tundub tuleb paigaldada py-borgbackup, debianis apt install borgbackup. Võimalik on tõmmata ka binaarversioon ja seda otse opsüsteemis käivitada https://github.com/borgbackup/borg/releases
Enne kui backupima saab asuda tuleb initsialiseerida varundusserveris repo, kõige lihtsam viis on selleks
borg init /path/to/repo
Uut varukoopiat saab initsialiseerida ka kliendipoolt, mõistlik on seejuures võtta kasutusele võtmefail
borg init --encryption=keyfile user@hostname:backup
Backupime samas serveris srv kausta reposse esmaspäev
borg create /path/to/repo::esmaspaev /srv
Tekitame teise varukoopia nimega teisipaev
borg create -v --stats /path/to/repo::teisipaev /srv
See varukoopia läks juba palju kiiremalt kuna andmed olid juba enamuses olemas
Vaatame mis varukoopiad olemas
borg list /path/to/repo
Vaatame esmaspaeva arhiivi sisu
borg list /path/to/repo::esmaspaev
Taastame esmaspaeva varukooia
borg extract /path/to/repo::esmaspaev
Kaugel asuvasse varundusserverisse varukoopiate tegemine käib üle ssh
borg init user@hostname:/path/to/repo
Ja siis näiteks
borg create -v --stats borg@varundaja:/srv/borgtest/backup::'{hostname}-{now:%Y-%m-%d}' /srv/ ------------------------------------------------------------------------------ Archive name: post.zoo.tartu.ee-2016-09-19 Archive fingerprint: a39758a9e1b8dd894c673c1bfh6e3f0fd113c181a6aeffcc9165b2336c06040b Time (start): Mon, 2016-09-19 14:11:39 Time (end): Tue, 2016-09-20 06:11:28 Duration: 15 hours 59 minutes 48.46 seconds Number of files: 3523368 ------------------------------------------------------------------------------ Original size Compressed size Deduplicated size This archive: 240.67 GB 240.83 GB 158.99 GB All archives: 240.67 GB 240.83 GB 158.99 GB Unique chunks Total chunks Chunk index: 2601470 3590384 ------------------------------------------------------------------------------
Teist korda järgmine päev
------------------------------------------------------------------------------ Archive name: postimaja.eenet.ee-2016-09-20 Archive fingerprint: 8086158b4941402184d8ec59f0cc6078f1efa0b8bd303405aae913ed2d1f4a8f Time (start): Tue, 2016-09-20 13:41:39 Time (end): Tue, 2016-09-20 17:18:03 Duration: 3 hours 36 minutes 24.22 seconds Number of files: 3520353 ------------------------------------------------------------------------------ Original size Compressed size Deduplicated size This archive: 240.74 GB 240.89 GB 885.74 MB All archives: 481.41 GB 481.72 GB 159.88 GB Unique chunks Total chunks Chunk index: 2608975 7177674 ------------------------------------------------------------------------------
Ühe repositooriumi piires lähevad kõik nn "tükid" v "chunks" deduplikeerimisele.
Vaikimisi kasutab borg krüpteerimist, selle keelamiseks (ei ole ametliku manuaali järgi küll soovitatav)
$ borg init --encryption=none /path/to/repo
Prune käsk kustutab kõik arhiivid mis ei vasta etteantud võtmetele ja mõeldud on üleliigsete backupide automaatseks eemaldamiseks. Näiteks käsk mis hoiab alles viimased 10 päeva ja neli eelmise nädala varukoopiat
$ borg prune -v --list --keep-within=10d --keep-weekly=4 --keep-monthly=-1 /path/to/repo
Varukoopia protsessi automatiseerimiseks tuleb kasutusele võtta ssh võtmed
Skript automaatse varukoopia tegemiseks serveri kaustadest /home ja /var/www
#!/bin/sh
REPOSITORY=username@remoteserver.com:backup
# Backup all of /home and /var/www except a few
# excluded directories
borg create -v --stats \
$REPOSITORY::'{hostname}-{now:%Y-%m-%d}' \
/home \
/var/www \
--exclude '/home/*/.cache' \
--exclude '*.pyc'
borg prune -v $REPOSITORY --prefix '{hostname}-' \
--keep-daily=7 --keep-weekly=4 --keep-monthly=6
Mõistlik oleks aegajalt (nt kord kuus) lasta borgil ka kogu repositoorium üle kontrollida, selleks serveris
borg check /srv/borgtest/
https://github.com/witten/borgmatic skript backupide lihtsustamiseks