NoPaste

Script-Borgbackup

von Strunz_1975

SNIPPET_TEXT:
  1. #!/bin/bash
  2.  
  3. # Skriptvorlage BorgBackup
  4. # https://wiki.ubuntuusers.de/BorgBackup/
  5. # https://borgbackup.readthedocs.io/en/stable/
  6.  
  7.  
  8. # Hier Pfad zum Sicherungsmedium angeben.
  9. # z.B. zielpfad="/media/peter/HD_Backup"
  10. zielpfad=""
  11.  
  12. # Hier Namen des Repositorys angeben.
  13. # z.B. repository="borgbackups"
  14. repository=""
  15.  
  16. # Hier eine Liste mit den zu sichernden Verzeichnissen angeben
  17. # z.B. sicherung="/home/peter/Bilder /home/peter/Videos --exclude *.tmp"
  18. sicherung=""
  19.  
  20. # Hier die Art der Verschlüsselung angeben
  21. # z.B. verschluesselung="none"
  22. verschluesselung="repokey"
  23.  
  24. # Hier die Art der Kompression angeben
  25. # z.B. kompression="none"
  26. kompression="lz4"
  27.  
  28. # Hier angeben, ob vor der Ausführung von BorgBackup auf vorhandene Root-Rechte geprüft werden soll
  29. # z.B. rootuser="ja"
  30. rootuser="nein"
  31.  
  32. # Hier angeben nach welchem Schema alte Archive gelöscht werden sollen.
  33. # Die Vorgabe behält alle Sicherungen des aktuellen Tages. Zusätzlich das aktuellste Archiv der
  34. # letzten 7 Sicherungstage, der letzten 4 Wochen sowie der letzten 12 Monate.
  35. pruning="--keep-within=1d --keep-daily=7 --keep-weekly=4 --keep-monthly=12"
  36.  
  37. ###################################################################################################
  38.  
  39. repopfad="$zielpfad"/"$repository"
  40.  
  41. # check for root
  42. if [ $(id -u) -ne 0 ] && [ "$rootuser" == "ja" ]; then
  43.   echo "Sicherung muss als Root-User ausgeführt werden."
  44.   exit 1
  45. fi
  46.  
  47. # Init borg-repo if absent
  48. if [ ! -d $repopfad ]; then
  49.   borg init --encryption=$verschluesselung $repopfad
  50.   echo "Borg-Repository erzeugt unter $repopfad"
  51. fi
  52.  
  53. # backup data
  54. SECONDS=0
  55. echo "Start der Sicherung $(date)."
  56.  
  57. borg create --compression $kompression --exclude-caches --one-file-system -v --stats --progress \
  58.             $repopfad::'{hostname}-{now:%Y-%m-%d-%H%M%S}' $sicherung
  59.  
  60. echo "Ende der Sicherung $(date). Dauer: $SECONDS Sekunden"
  61.  
  62. # prune archives
  63. borg prune -v --list $repopfad --prefix '{hostname}-' $pruning

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN