NoPaste

Script-Borgbackup-Neu

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