Datensicherungskonzept

Ist das folgende Konzept okay, oder sollte ich noch etwas ändern/verbessern?
Es sind weitere Fragen im Text.

==========================================================


Datenicherungsstrategie, es geht nur um die Userdaten (home)
------------------------------------------------------------


System mit einer internen Platte (Notebook) und einer externen Platte:

Gerät       Dateisystemtyp  Einhängepunkt
----------- --------------- -------------
/dev/sda1   Swap            swap
/dev/sda2   BtrFS           /
/dev/sda3   XFS             /home
/div/sda4   XFS             /home/backup


Vorgehensweise:

1. Täglich oder bei Bedarf: Übertragen aller neuen und geänderten Files in eine Backup-Partition auf derselben Platte. 

-----------
#!/bin/bash
rsync -abuv /home /home/backup --progress --stats --exclude "/home/*/.cache" --exclude "/tmp" --exclude "/usr/share/doc/kde/HTML/en/kcontrol/trash" --exclude  "/usr/share/doc/kde/HTML/de/kcontrol/trash" 
-----------

Frage: 
Ist das Sternchen korrekt bei --exclude "/home/*/.cache", oder wie würde man das machen um nicht für jeden User einen eigenen File haben zu müssen?


2. Wöchentlich oder bei Bedarf: Übertragen der Daten der Backup-Partition auf eine externe Platte mit vier Partitionen (immer reihum).

-----------
#!/bin/bash
rsync -abuv /home/backup /run/media/$USER/Plattenid-012345689/partion1 --progress --stats 
-----------
oder rsync -abuv /home/backup /run/media/$USER/Plattenid-012345689/partion2 --progress --stats 
oder rsync -abuv /home/backup /run/media/$USER/Plattenid-012345689/partion3 --progress --stats 
oder rsync -abuv /home/backup /run/media/$USER/Plattenid-012345689/partion4 --progress --stats 

Fragen: 
Ist das mit dem $USER richtig bei /run/media/$USER/Plattenid-012345689/partion1 um nicht für jeden User einen eigenen File haben zu müssen?
Kann man in demselben rsync-Befehl eine evtl. ältere Datensicherung auf der jeweiligen Partition direkt mitlöschen?

Sieht für mich OK aus; für den Heimgebrauch.

Die Cache-Verzeichnisse würde ich so auschließen:

--exclude ".cache"

Hendrik

Den Pfad in /run/media würde ich nicht so wählen. Alles innerhalb /run/media ist Sache des Systems in zusammerarbeit mit den graphische Benützeroverfläche.

Erstens zwingt es zu gebrauch einer GUI (welche?). Und zweitens hat sich da im Laufe der Zeit viel geändert und keiner weiß ob das Anhängepunt morgen noch die Gleiche ist.

Ich wurde immer ein /etc/fstab Eintrag machen und dabei selbst entscheinden wo was gemounted wird (und eben nicht in /media. /run oder solche, eher innerhalb /mnt oder ein extra Verzeichnis).

@hendwolt
Ich wollte eigentlich nur “/home/*/.cache” ausschließen, aber alle Cache-Verzeichnisse mit “.cache” auszuschließen macht auch Sinn.

Inzwischen ist mir beim Wiedereinspielen der Daten nach einer Neu-Installation aufgefallen, dass auch Daten aus versteckten Verzeichnissen wie z. b. “.Mozilla”, “.kde” etc. übertragen werden. Das kann natürlich katastrophale Folgen haben. Es ist mir aber vorher nie aufgefallen, weil ich noch eine komplettes, zuvor mit rsync erstelltes Backup eingespielt habe.

Ich wollte das Backup jetzt eigentlich so machen:

rsync -abuv /home /home/backup --exclude=".*" --exclude="/home/backup" --exclude=".cache" --exclude="/tmp" --exclude="/usr/share/doc/kde/HTML/en/kcontrol/trash" --exclude="/usr/share/doc/kde/HTML/de/kcontrol/trash" --progress --stats

Aber das geht nicht, weil so nicht nur die versteckten Files des Systems ausgeschlossen werden, sondern auch die versteckten Files der reinen Anwenderverzeichnisse, z. B. .htaccess-Files.

Mir bleibt also nichts anders übrig, als alle Verzeichnisse und Files auf der home-Ebene exlizit anzugeben, also:

rsync -abuv /home/User1/Bilder         /home/backup --exclude="/home/backup"  --exclude=".cache" --exclude="/tmp" --exclude="/usr/share/doc/kde/HTML/en/kcontrol/trash" --exclude="/usr/share/doc/kde/HTML/de/kcontrol/trash" --progress --stats
rsync -abuv /home/User1/Dokumente      /home/backup --exclude="/home/backup"  --exclude=".cache" --exclude="/tmp" --exclude="/usr/share/doc/kde/HTML/en/kcontrol/trash" --exclude="/usr/share/doc/kde/HTML/de/kcontrol/trash" --progress --stats
...
...
rsync -abuv /home/User1/Vorlagen       /home/backup --exclude="/home/backup"  --exclude=".cache" --exclude="/tmp" --exclude="/usr/share/doc/kde/HTML/en/kcontrol/trash" --exclude="/usr/share/doc/kde/HTML/de/kcontrol/trash" --progress --stats
rsync -abuv /home/User1/EinzelnerFile1 /home/backup --exclude="/home/backup"  --exclude=".cache" --exclude="/tmp" --exclude="/usr/share/doc/kde/HTML/en/kcontrol/trash" --exclude="/usr/share/doc/kde/HTML/de/kcontrol/trash" --progress --stats

Und dass dann für jeden User.
Wenn einer eine bessere Idee hat, her damit :wink:

@hcvv
Was müsste ich denn in die fstab eintragen? Momentan sieht die so aus:

UUID=111111111111111 swap swap defaults 0 0
UUID=222222222222222 / btrfs defaults 0 0
UUID=222222222222222 /boot/grub2/i386-pc btrfs subvol=@/boot/grub2/i386-pc 0 0
UUID=222222222222222 /boot/grub2/x86_64-efi btrfs subvol=@/boot/grub2/x86_64-efi 0 0
UUID=222222222222222 /opt btrfs subvol=@/opt 0 0
UUID=222222222222222 /srv btrfs subvol=@/srv 0 0
UUID=222222222222222 /tmp btrfs subvol=@/tmp 0 0
UUID=222222222222222 /usr/local btrfs subvol=@/usr/local 0 0
UUID=222222222222222 /var/crash btrfs subvol=@/var/crash 0 0
UUID=222222222222222 /var/lib/libvirt/images btrfs subvol=@/var/lib/libvirt/images 0 0
UUID=222222222222222 /var/lib/mailman btrfs subvol=@/var/lib/mailman 0 0
UUID=222222222222222 /var/lib/mariadb btrfs subvol=@/var/lib/mariadb 0 0
UUID=222222222222222 /var/lib/mysql btrfs subvol=@/var/lib/mysql 0 0
UUID=222222222222222 /var/lib/named btrfs subvol=@/var/lib/named 0 0
UUID=222222222222222 /var/lib/pgsql btrfs subvol=@/var/lib/pgsql 0 0
UUID=222222222222222 /var/log btrfs subvol=@/var/log 0 0
UUID=222222222222222 /var/opt btrfs subvol=@/var/opt 0 0
UUID=222222222222222 /var/spool btrfs subvol=@/var/spool 0 0
UUID=222222222222222 /var/tmp btrfs subvol=@/var/tmp 0 0
UUID=222222222222222 /.snapshots btrfs subvol=@/.snapshots 0 0
UUID=333333333333333 /home                xfs        defaults              1 2
UUID=444444444444444 /home/backup         xfs        defaults              1 2

… andererseits könnte ich natürlich auch alles sichern mit

rsync -abuv /home /home/backup --exclude="/home/backup" --exclude=".cache" --exclude="/tmp" --exclude="/usr/share/doc/kde/HTML/en/kcontrol/trash" --exclude="/usr/share/doc/kde/HTML/de/kcontrol/trash" --progress --stats

Dann müsste man nur beim Zurückspielen aufpassen, dass man keine bzw. nur die gewünschten versteckten Verzeichnisse und Files mitüberträgt, d. h. beim Zürückspielen sollte man die Verzeichnisse und Files explizit angeben.
Ich denke, das ist die sinnvollere Variante, oder?
Kann man eigentlich die rsync-Statistik (–stats) in einen File schreiben um sich das Ergebnis später anzuschauen?

Diese sogenannte “versteckte” Verzeichnisse/Dateinen sind nur versteckt weil sie beim normalen arbeiten nur verwirrend wirken wurden (jede Listung from home Verzeichnis würde wenigstens zwei bis dreimal so lang werden und schlecht inetrpretierbar sein). Sie behalten aber Daten die oft wenigstens so wichtig sind wie andere Benützer Dateinen. Und sollten meinens Erachtens auch gesichert werden.

Das ganze “verstecken” besteht nur darin das (laut Absprache) Verzeichnisse/Dateinen wo der Name startet mit . (Punkt) von bestimmte Applikationen (wie z.B. ls und bash und Dolphin) im Normalfall nicht “mitmachen” wenn als Totalliste behandelt.

/etc/fstab wird am einfachsten über YaST > System > Partitionierung (oder glelichwertige deutsche Worte).
In diesem Fall würde ich warscheinlich die Partitionen auch ein Label anhängen und über Label eintragen.

Übrigens kommen die UUID wie von dir gepostet mich ziemlich komisch vor.
Kan das wahr sein oder spielst du uns etwas vor? >:)