Backup / RSYNC Problem bei Übertragung vom "/etc" Ordner

Hallo.
Ich bin seit längerem am schreiben von einem Backup-Script mittels rsync.
Jetzt wollte ich zusätzlich zum “home”-Verzeichnis noch das “/etc” Verzeichnis mit rsync backupen, aber da bekomme ich bei einem Teil der Dateien den Fehler: (Am Beispiel einer der Fehler-Dateien)

  rsync: [sender] send_files failed to open "/etc/pacman.d/gnupg/secring.gpg": Permission denied (13) 

Am Ende des durchlaufs kommt dann natürlich noch der übliche Fehler von rsync sobald irgendwas nicht übertragen wurde:

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender=v3.2.3]

Hat jemand eine Idee wie ich die Dateien übertragen kann, oder zumindest dass kein Fehler mehr kommt (also das die Dateien wo die Berechtigung fehlt übersprungen werden)?

Vielen Dank im Voraus

Hallo Medds,

Da /etc/pacman.d/gnupg/secring.gpg nur für root lesbar ist würde es helfen, das Skript mit sudo, also mit root-Rechten, zu starten.

so auf Anhieb fällt mir da nur eine umständliche Lösung ein. Du kannst Dateien und Verzeichnisse mit der Option --exclude-from=LISTE ausschliessen, wobei LISTE eine Datei ist, in der die Namen drin stehen, die nicht übertragen werden, also z.B.

*.bak
dir1
dir2

und zumindest die Dateien und Verzeichnisse, die nur root gehören und nur für root lesbar sind, kannst Du mit einem find-Befehl rausfinden und in die LISTE umleiten. Kann man entweder einmalig machen (etwas unsicherer) ode eben ins Skript mit einbauen.
Ob das aber bei einem Backup-Skript Sinn macht, das auch /etc sichern soll, da habe ich meine Zweifel. Ein Backup mit Lücken ist eigentlich nicht viel wert. Aber vielleicht ist das ganze Skript auch nur eine Fingerübung zum Skripten. Und hoffentlih fällt jemandem noch eine bessere Lösung ein.

viele Grüße gosia

PS. den find Befehl ins Skript einbauen ist eigentlich Quatsch, denn der kann ja auch nur wie gewünscht funktionieren, wenn er mit root-Rechten gestartet wird, da kannst Du also gleich das ganze Skript so starten.

Hallo gosia,

danke für deine Antwort.

Eine Fingerübung ist es eigentlich nicht. Bin zwar Anfänger, aber das Skript nutze ich eigentlich fast täglich um meine Backups zu machen. Es ist in Python geschrieben und die rsync Befehle übergebe ich variabel in einer Liste und die Pfade über ein Dictionary. sudo fällt daher eigentlich flach, weil sonst glaub ich müsste ich ja während des Script-Ablaufs das sudo Passwort eingeben oder in klarschrift rein schreiben. Was beides ungünstig ist.
In den verschiedenen Backups benutze ich schon entweder exclude oder include (je nachdem welches Backup).
Hätte schon im Internet gesucht welche Dateien für eine eventuelle Neuinstallation von Linux nötig sind, aber da ich da nicht so richtig fündig geworden bin dachte ich nehm mal das ganze /etc Verzeichnis.
Aber da das anscheinend etwas schwieriger ist glaub ich mach einfach nur ein Backup von der fstab und dem grub Ordner. Weil ich befürchte nur ein paar Dateien ausschließen macht auf die Dauer bestimmt Probleme, weil bestimmt immer wieder mal was verändert wird oder hinzukommt was nur mit root lesbar ist.
Oder hast du vielleicht noch Vorschläge was noch wichtig wäre ausser fstab und grub?

Vielen Dank nochmal im Voraus für die Hilfe.

Wieder herstellen geht über

  1. Backup (am besten für Daten)
    [HowTo] make a crash-proof backup in Manjaro for your entire system
  2. rollback(nur system)
    mit Timeshift z.B. oder manuell mit btrfs
    [HowTo]Rollback mit btrfs von Hand
  3. snapshots (kleinere Patzer ausbessern, gelöschte Dateien wiederherstellen, verpatzte Konfigurationen vergleichen …)
    einfach mit snapper :wink:
1 Like

Hallo Medds,

Naja, ich denke, was wichtig ist, ist auch etwas eine individuelle Entscheidung. Für mich sind meine privaten Daten das wichtigste, also das Homeverzeichnis. Eine ISO von einer Distri bekomme ich problemlos im Internet (auch wenn ich das noch nie gebraucht habe), aber meine privaten Fotos, pdf-Dateien usw. bekomme ich nie (oder kaum) wieder, wenn meine Festplatte abraucht.
Aber gut, wenn man z.B. mal eine systemweite Konfigurationsdatei versaut hat, ist es schon gut, davon ein Backup zu haben, also ganz grob gesagt /etc
Dann wird es wirklich sehr individuell, ich sichere noch /boot, das liegt bei mir auf einer Extra-Partition, dann /var/www (selbstgebastelte Homepages), /var/mail (bei IMAP eigentlich überflüssig, aber was solls), dann noch /opt weil dort selbstgebastelte Programme liegen.
Aber wie gesagt, das wichtigste sind die eigenen Dateien, die bekommt man im Gegensatz zu Systemdateien ohne Backup von nirgendwo wieder zurück.

viele Grüße gosia

PS. Aber was spricht denn dagegen, dein Skript mit sudo zu starten, dann hast Du das ganze /etc gesichert. Ist mehr als man braucht, aber am Platz sollte es heutzutage doch nicht scheitern.

Hallo nochmal.

Das ganze Script mit sudo ausführen klappt. Dann bekomm ich hier keinen Fehler mehr. Aber es ist ungünstig immer das Passwort eingeben zu müssen. Da muss ich noch abwägen ob mir Komfort oder Vollständigkeit wichtiger ist.
Danke für den Tipp /boot zu kopieren. Den hätte ich übersehen.

Hallo Medds,

es geht auch ohne Passwort. Mit dem Kommando
sudo visudo
kannst Du die Datei /etc/sudoers editieren. Dort diese Zeile einfügen

medds ALL=(ALL) NOPASSWD: /PFAD/ZUM/BACKUP-SKRIPT

deinen Usernamen und den Pfad zum Skript anpassen. Im Detail vorher das hier lesen und unbedingt die beschriebenen Vorsichtsmassnahmen beachten.
https://kofler.info/sudo-ohne-passwort/

viele Grüße gosia