přidán skript pro automatické zálohování pomocí Borg
This commit is contained in:
parent
c86ffe29a1
commit
dba509a26f
69
skripty/automatizované_zálohování_borg.sh
Normal file
69
skripty/automatizované_zálohování_borg.sh
Normal file
@ -0,0 +1,69 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Nastavení proměnných
|
||||
# Můžete použít buď lokální repozitář nebo vzdálený repozitář přes SSH
|
||||
# Upravte následující řádky podle vašich potřeb
|
||||
|
||||
# Lokální repozitář
|
||||
# export BORG_REPO=/mnt/backup/archos_repo
|
||||
|
||||
# Vzdálený repozitář přes SSH
|
||||
export BORG_REPO=ssh://user@remote-server:/cesta/k/repozitáři
|
||||
|
||||
# Poznámka: Z bezpečnostních důvodů není vhodné ukládat heslo přímo ve skriptu
|
||||
# Doporučujeme použít Borg s `borg init --encryption=repokey` a nastavit heslo v interaktivním módu
|
||||
# Alternativně můžete použít BORG_PASSPHRASE prostředí nastavené v systémových proměnných nebo z jiného bezpečného zdroje
|
||||
# export BORG_PASSPHRASE='vaše_heslo'
|
||||
|
||||
# Pomocné funkce a ošetření chyb
|
||||
info() { printf "\n%s %s\n\n" "$(date)" "$*" >&2; }
|
||||
trap 'echo $(date) Backup interrupted >&2; exit 2' INT TERM
|
||||
|
||||
info "Starting backup"
|
||||
|
||||
# Zálohování důležitých adresářů do archivu pojmenovaného podle hostname a aktuálního data
|
||||
borg create \
|
||||
--verbose \
|
||||
--filter AME \
|
||||
--list \
|
||||
--stats \
|
||||
--show-rc \
|
||||
--compression lz4 \
|
||||
--exclude-caches \
|
||||
--exclude '/home/*/.cache/*' \
|
||||
--exclude '/var/cache/*' \
|
||||
--exclude '/var/tmp/*' \
|
||||
--exclude '/home/archos/.local/share/Trash' \
|
||||
--exclude '/home/archos/Stažené' \
|
||||
::'{hostname}-{now}' \
|
||||
/home/archos
|
||||
|
||||
backup_exit=$?
|
||||
|
||||
info "Pruning repository"
|
||||
|
||||
# Použití příkazu `prune` pro udržování 7 denních, 4 týdenních a 6 měsíčních záloh tohoto stroje
|
||||
# Prefix '{hostname}-' je důležitý pro omezení operace prune na zálohy tohoto stroje
|
||||
borg prune \
|
||||
--list \
|
||||
--glob-archives '{hostname}-*' \
|
||||
--show-rc \
|
||||
--keep-daily 7 \
|
||||
--keep-weekly 4 \
|
||||
--keep-monthly 6 \
|
||||
--keep-yearly 2
|
||||
|
||||
prune_exit=$?
|
||||
|
||||
# Použití nejvyššího exit kódu jako globálního exit kódu
|
||||
global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit ))
|
||||
|
||||
if [ ${global_exit} -eq 0 ]; then
|
||||
info "Backup and Prune finished successfully"
|
||||
elif [ ${global_exit} -eq 1 ]; then
|
||||
info "Backup and/or Prune finished with warnings"
|
||||
else
|
||||
info "Backup and/or Prune finished with errors"
|
||||
fi
|
||||
|
||||
exit ${global_exit}
|
Loading…
Reference in New Issue
Block a user