$ apt-get install borgbackup
13 Februar 2019
Straight forward borg backup
Fork von Attik (2015)
aktuelle Version 1.1.13 (2020-06-06)
Linux/BSD/(cygwin)
Simpel und schnell
Deduplication
Kompression möglich
Verschlüsselung möglich
pruning
fuse support
noch single-threaded (vorrausichtlich erst ab v1.2)
$ apt-get install borgbackup
$ yum install borgbackup
export BORG_PASSPHRASE='kompliziertesPasswort'
oder
export BORG_PASSCOMMAND='cat $HOME/.borg-passphrase'
export BORG_PASSCOMMAND='gpg --decrypt borg-passphrase.gpg'
keine Warnung wegen repo-relocation:
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
borg init --encryption=repokey <repodir>
Bei "repokey" wird Schlüssel verschlüsselt im Repo abgelegt.
borg key export <repodir> repokey.txt
borg create -v -s -p -C lz4 <repodir>::<reponame> <dir1> <dir2> ...
Beispiel
borg create -v -s -p -C lz4 /mnt/backup/$(hostname -s)::{now} /etc /home /opt /usr/local/bin/ /var/www --exclude /home/admin/backup
Nicht vergessen: Symlinks (insb. auf Verzeichnisse) werden natürlich als Solche gespeichert und nicht verfolgt.
-v |
verbose |
-s |
Stats |
-p |
Progress |
-C |
set compression (lz4,zstd,zlib or lzma) |
--exclude |
exclude directory |
none |
wenig CPU |
lz4 |
niedrige Kompression, sehr schnell |
zlib,N (N=0..9) |
medium Kompression, medium schnell |
lzma |
hohe Kompression, CPU heavy |
Die verschiedenen Kompressionsverfahren hängen vom Anwendngsfall ab. Vgl. hier: https://borgbackup.readthedocs.io/en/stable/
borg benchmark crud /mnt/sdb1/backup/$(hostname -s) ./
Alte Backups löschen. Kann mit --dryrun getestet werden:
borg prune -v --list --dry-run --keep-daily=7 --keep-weekly=4 /mnt/backup/repodir
borg prune -v --list --keep-daily=7 --keep-weekly=4 /mnt/backup/repodir
borg extract <repo-dir>::<repo-name> [PATH]
mkdir tmp
borg mount /mnt/backup/repodir::<reponame> ~/tmp
borg unmount ~/tmp
Hinweis: Hierbei handelt es sich um ein fuse-mount. Eignet sich nicht für große Restores, da vergleichsweise langsam.
borg list <repo-dir>
borg list <repo-dir>::<repo-name>
borg delete <repo-dir>::<repo-name>
borg check -v --show-rc /mnt/backup/$(hostname -s)
borg check -v --show-rc --repository-only /mnt/backup/$(hostname -s)
borg check -v --show-rc --archives-only /mnt/backup/$(hostname -s)
borg check -v --show-rc --umask nnnn --[repository/archives]-only --repair /pfad/reponame[::name]
borg list /mnt/sdb1/backup/$(hostname -s)
borg rename -v --show-rc --umask nnnn /mnt/backup/$(hostname -s) /pfad/reponame::name neuer_name
borg list /pfad/reponame
borg info /pfad/reponame::name
borg list /pfad/reponame::name
#!/bin/sh
export BORG_PASSPHRASE="kompliziertesPasswort"
export BORG_REPO=/mnt/backup/$(hostname)
# check cloud mount
if grep -qs '/mnt/sdb1 ' /proc/mounts; then
# backup and prune old
borg create -C lz4 $BORG_REPO::{now} /home/ --exclude /home/*/Downloads
borg prune --keep-daily=7 --keep-weekly=4 $BORG_REPO
else
echo "WARNING: mount offline. NO BACKUP!"
fi
exit 0