- Bearbeitet
fdell Falls jetzt der Hinweis kommt, nicht mit 7zip zu sichern weil userrechte und Pfadangben nicht einbezogen werden, da kann ich beruhigen. Der Schalter -spf sichert diese zumindest für /home, das habe ich mehrfach getestet.
Das ist leider nicht der Fall.
Schau dir mal:
man 7za -> Backup and limitations
an. Ebenfalls für -spf gilt das nicht:
7za --help
schreibt für -spf: use fully qualified file paths
Eigentümer der zu sichernden Datei im Archiv ist immer der User/Gruppe, welcher das Archiv erstellt. Hast du ja bei root schon gemerkt. Auch werden nicht die Zugriffsrechte(?), zumindest nicht die ggf. vorhandenen erweiterten und ACLs gesichert. Wahrscheinlich ebensowenig wie Sym-/Hard-Links und spezielle Dateien(Pipes, Devices,etc). Kurz: 7z ist für richtiges Backup unter Linux nicht geeignet, allenfalls für den Inhalt einer Datei.
Wenn du (wie bisher) als dein USER einfach nur Dateien deines USERS unbedingt in ein 7z-Archiv packen willst, dann geht das mit den o.a. Einschränkungen. Du kannst halt als USER wieder Texte, Bilder etc. aus dem Archiv holen. Es werden aber nur Inhalte gesichert.
Wenn es allerdings darum geht auch andere als DEINE Dateien "wie das Original" (aus Sicht des Dateisystems) zu sichern, dann führt kein Weg über die in der manpage angemerkte Kombination von tar und 7z. Wenn es denn unbedingt ein 7z-Archiv sein muß.
(Oder überhaupt ein Archiv. Ich habe böses Lehrgeld bezahlt, ein BACKUP (also die einzige KOPIE) in ein Archiv-Format abzulegen. Nie wieder! Archive sind nur dazu nutze, eine Ansammlung von Daten ressourcenschonend zu transportieren. My 2 ¢).
Überlegung zu deinem Backup-Skript:
- Lass das ganze Skript als root-Skript laufen
Das spart dir u.a. wieder die sudo-Orgien. - Ändere zu tar (und ggf. 7z Komprimierung)
Mittels der Kombi tar/7z(a) bleiben alle UNIX-Eigentümer/Rechte/Flags an zu sichernden Inhalten erhalten. Du kannst also z.B. sowohl Dateien aus /etc als auch /home/USER (und/oder /home/FRAU_DES_USERS) wirklich "original" in das tar-Archiv(plus ggf. 7z komprimiert) packen lassen.
tar kann alles was du in deinem Skript mit 7z machst, z.B. in-/exclude-Listen. Die Syntax ist halt anders.