Ich mach das normal so, ich ruf nautilus auf und geh in den Ordner wo das bash Script liegt und öffne dort das Terminal und starte es mit ./script. Dann sehe ich gleich was es macht und kann es überprüfen. Könnte aber einfacher sein indem ich das Script per Verknüpfung aufrufe, allerdings will ich dass sich das Terminal öffnet und ich alles sehen kann und es nicht im Hintergrund läuft. Das könnte man so machen als Menu Launcher:
gedit speichern unter: ~/.local/share/applications/ z.B. als rsync146, als solches erscheint es dann im System Menü:
[Desktop Entry] Name=rsync-home Comment=rsync-home Exec=gnome-terminal -- bash -c "/pfad/script; exec bash" Icon=utilities-terminal Terminal=true Type=Application Categories=Utility;
Oder aber über einen Terminal. Dazu erst mal nen Ordner für scrpite global machen, so dass man sie im Terminal als Befehl aufrufen kann, dann einfach ins Terminal den jeweiligen Scriptnamen eintragen und dann wird es ausgeführt. Dazu Datei ergänzen ~/.bashrc
ans Ende hinzufügen:
1 | PATH="$HOME/pfad/ordner:$PATH" |
dann im terminal:
1 | exec bash |
fertig. Jetzt können die Scripte in dem Ordner einfach aufgerufen werden. Dann könnte man ein Script erstellen, dass das Rsync Script aufruft:
1 2 | #!/bin/bash
/pfad/rsync-script
|
Speichern wir es unter rsync123 ab kann man es mit rsync123 im Terminal aufrufen.
Kommen wir zum Inhalt des rsync Scprits:
Für den Home Ordner:
1 | sudo rsync --delete -avHAXxh --exclude='/user/VirtualBox VMs/' --exclude='/user/vmware/' /home/ /media/user/ssd-1TB/ |
Für den System Ordner:
1 2 3 4 5 6 7 8 9 10 11 | echo "USB Platte muss eingehängt sein, sonst wird Festplatte eigenkopiert bis voll!" echo "ubuntu system ohne /boot partition und snap loops -x" echo "Press any key to continue..." read -n1 -s sudo rsync --delete -avHAXxh --exclude='/user/VirtualBox VMs/' --exclude='/user/vmware/' --exclude=/dev/pts/* --exclude='/media/*/**' --exclude='/proc/**' --exclude='/sys/**' --exclude='/tmp/**' / /media/user/ssd-1TB-root/ echo "boot partition in /boot" sudo rsync --delete -avHAXxh /boot/ /media/user/ssd-1TB-boot/ mpv /home/user/song.mp3 |
Hier wird / root auf die Backup SSD kopiert und zwar nur die Dateien die neu sind, so kann man das Script innerhalb von Sekunden ausführen wenn man es wiederholt. Wenn man Luks verwendet und eine separate Boot Partition hat, dann muss man die noch sichern, kann man dann einfach in den Boot Ordner machen oder auf ne separate Partition. Hier in Ordner von / root:
1 | sudo rsync --delete -avHAXxh /boot/ /media/user/ssd-1TB/boot/ |
Dann wird Ton abgespielt um dem User das akustische Signal zu geben dass die Aufgabe erledigt wurde.
Bitte aufpassen mit den / am Ende des Rsync Scripts, wenn man da nicht aufpasst löscht er alle Daten die auf der Ziel Platte sind. quelle Ziel/ löscht alles auf der Platte oder im Ziel Ordner. quelle Ziel erstellt einen Ordner Ziel und kopiert dann alles da rein. Auch darf man Quelle und Ziel nicht vertauschen. Man kann vorsichtig sein und erst mal mit der Rsync Flag --dry-run
(-n
) simulieren ohne zu schreiben. Also einfach -avHAXxhn
Verbesserungsvorschläge?
Bearbeitet von sebix:
Fehlende Codeblöcke und Syntax-Highlighting ergaenzt
Danke sebix!
Wer Ubuntu mit Luks (extra /boot Paritition) umziehen will kann hier fündig werden: https://forum.ubuntuusers.de/topic/ubuntu-luks-umziehen/
Wer inkrementell Versionen seiner Daten erstellen will um Snapshots je nach Datum zu haben kann ohne mehr Platz zu benötigen folgendes zum Script hinzufügen: Rsync Backup in Ordner: current/
1 2 | sudo mkdir /backupordner/`date +%y%m%d` sudo cp -val /current/* /backupordner/`date +%y%m%d` |
So werden in den Ordnern per Hardlinks die Dateien festgehalten ohne dass die Dateien Speicherplatz brauchen, obwohl sie mehrfach auf dem Datenträger vorhanden sind. Erst wenn der letzte Hardlink gelöscht wurde, wird die eigentliche Datei gelöscht. Funktioniert aber nur wenn die Hardlinks auf einen Datenträger bzw. Partition geschrieben werden. Current wird per Hardlinks in den Ordner mit dem Datum kopiert. Das nächste mal wird Current aktualisiert und wiederum per Hardlinks in den aktuellen Datumsorder kopiert.