|
|
Autor |
Nachricht |
V.K.B. [Error C7: not in list]
Alter: 51 Beiträge: 6154 Wohnort: Nullraum
|
04.05.2018 02:10 Datensicherung unter Linux – Meine neue Lösung von V.K.B.
|
|
|
Hallo Linux-Nutzer,
ich habe mein Backupscript perfektioniert und möchte es mit euch teilen, vielleicht findet es ja jemand so nützlich wie ich selbst.
Was es macht?
Es kopiert alle Dateien, die man gesichert haben will, in einen Cloudordner und einen lokalen Backup-Ordner. Alte Versionen bleiben dabei erhalten, falls man später mal darauf zurückgreifen muss. Doch jede Version wird nur einmal gespeichert und Duplikate von Dateien, die nicht verändert wurden, werden aus den alten Backups gelöscht, so dass nur immer im neusten Ordner wirklich alle Dateien vorliegen und in den älteren Ordnern nur die alten Versionen verbleiben, die mittlerweile geändert wurden. Auf diese Weise werden Cloud und Festplatte nicht mit Duplikaten vollgemüllt.
Das Script ist für ein KDE-System ausgelegt, läuft aber auch auf anderen Desktops, man muss nur die Popup-Benachrichtigungsbefehle (kdialog) durch die Benachrichtigungsbefehle des verwendeten Desktops ersetzen.
Installiert sein müssen "sox" (für den Play-Befehl zum abspielen eines Benachrichtigungstons am Ende), sowie "rsync", "fdupes" und "xargs"
Außerdem sind folgende Vorbereitungen zu treffen (Anleitung für Nicht-Systemexperten, wer sich etwas auskennt braucht die nicht und muss nur einen Blick ins Script werfen, um sich herauszuziehen, was vielleicht nützlich ist):
- "veith" ersetzt man im script natürlich durch den eigenen Benutzernamen
- ein Ordner auf der Cloud, in dem die Backups gespeichert werden sollen, muss nach /home/veith/cloud_secure/ gemountet sein. Man kann auch einen symlink zu einem Ordner in einem anderen Cloudverzeichnis anlegen (drag-and-drop+hiermit verknüpfen und die Verknüpfung dann in cloud_secure umbenennen). Ich verwende in diesem Ordner ein encfs-Filesystem auf einer Spideroak-Cloud, aber das ist beliebig. Wichtig ist nur, dass der cloud_secure Ordner automatisch mit der Cloud synchronisiert wird. Nutzt man keine Cloud, kann man auch eine externe Platte oder einen USB-Stick in den cloud_secure Ordner mounten oder verlinken.
- im cloud_secure Ordner eine (leere) Datei namens ".marker" erstellen. Diese Datei ist unsichtbar und dient der Überprüfung, ob die Cloud wirklich online ist. Oder die externe Festplatte/Stick verfügbar ist, wenn man keine Cloud verwendet.
- einen Ordner /home/veith/buch_backup/ anlegen, hier werden die lokalen Backups gespeichert. Wenn man keine doppelte Sicherheit will, kann man die Teile im Script, die sich darauf beziehen, entfernen.
- einen Ordner namens /home/veith/Buchbackup_links/ anlegen und in diesen alle Dateien symlinken ("hier verknüpfen" mit drag&drop), die gesichert werden sollen. Diese können in ganz verschiedenen Ordnern auf der Platte liegen. Alles, was in diesen Ordner verlinkt ist, wird gesichert.
- das folgende Script in eine Textdatei kopieren und unter dem Namen buchbackup speichern, dann ausführbar machen. Startet man diese Datei, wird alle 30 Minuten ein Backup erstellt, bis das Script mittels "killall buchbackup" in einer Konsole beendet wird. (Man kann auch ein Desktopicon mit diesem Befehl erzeugen und "buckbackup aus" nennen, wenn man es durch Klicken deaktivieren will). Das ist dazu gedacht, es vor dem Schreiben zu starten und danach zu beenden, damit man nie mehr als die Arbeit der letzten halben Stunde verliert. Wer kürzere oder längere Intervalle will, ändert den sleep-Befehl am Ende. Soll das Script sich nicht automatisch wiederholen, sondern nur einmal durchlaufen (und jedes mal manuell gestartet werden, oder als chronjob), nimmt man die Zeilen "while [ true ]; do", "sleep 30m" und das "done" am Ende heraus.
- wie gesagt die kdialog-Befehle durch Benachrichtigungsbefehle des verwendeten Desktop Systems ersetzten, wenn man nicht KDE benutzt. Oder durch ein "play sounddatei" ersetzten, wenn die Benachrichtigung nur akustisch sein soll.
- Die Sounddatei beim play Befehl am Ende "/usr/share/00mystuff/sounds/reaper_sounds/ThisFormIsRedundant2.wav" durch eine eigene Sounddatei ersetzten, oder die Zeile rauslöschen, wenn man kein akustisches Signal am Ende will
- Ein Desktopicon erzeugen, das "buchbackup" aufruft, um es per Klick starten zu können. Oder die while-Schleife rausnehmen und als chronjob eintragen, wenn man es voll automatisiert haben will
- Das mag (besonders für nicht-Systemkenner) ein bisschen Einrichtungsarbeit sein, aber es lohnt sich. Einmal eingerichtet hat man ein Backupsystem, das so gut wie automatisch funktioniert. Sollen neue Dateien zum Backup hinzukommen, einfach zu den Links in "/home/veith/Buchbackup_links/" hinzufügen oder dort Links löschen, deren Dateien nicht mehr gesichert werden sollen
- Falls ihr trotz der detaillierten Anleitung nicht klarkommt und Hilfe braucht, fragt mich ruhig, ich helfe gerne
Hier das Script:
in eine Textdatei namens buchbackup kopieren und ausführbar machen hat Folgendes geschrieben: | #!/bin/bash
if [ -f /home/veith/cloud_secure/.marker ]
then
echo cloud online
else
kdialog --error "Please make sure the cloud is unlocked!"
exit
fi
while [ true ]; do
DAY=`date "+%d"`
MONTH=`date "+%m"`
YEAR=`date "+%y"`
UHR=`date "+%R"`
fName=y$YEAR-m$MONTH-d$DAY-t$UHR-Desktop
mkdir "/home/veith/buch_backup/$fName"
mkdir "/home/veith/cloud_secure/buchbackup/$fName"
rsync -vruLpth /home/veith/Buchbackup_links/ "/home/veith/buch_backup/$fName/"
rsync -vruLpth /home/veith/Buchbackup_links/ "/home/veith/cloud_secure/buchbackup/$fName/"
kdialog --title "Writing" --passivepopup "Backups von Büchern im Linkverzeichnis gemacht" 5
#remove duplicates and empty folders
fdupes /home/veith/cloud_secure/buchbackup/ -r -d -N
find /home/veith/cloud_secure/buchbackup/. -type d -print | xargs rmdir
fdupes /home/veith/buch_backup/ -r -d -N
find /home/veith/buch_backup/. -type d -print | xargs rmdir
play /usr/share/00mystuff/sounds/reaper_sounds/ThisFormIsRedundant2.wav
sleep 30m
done |
Jetzt viel Spaß mit dem Ding und nie wieder Datenverlust!
beste Grüße,
Veith
_________________ Hang the cosmic muse!
Oh changelings, thou art so very wrong. T’is not banality that brings us downe. It's fantasy that kills … |
|
Nach oben |
|
|
Michel Bücherwurm
Alter: 52 Beiträge: 3376 Wohnort: bei Freiburg
|
04.05.2018 08:12
von Michel
|
|
|
Vielen Dank fürs Zurverfügungstellen!
Nutzt Du als Cloud-Ordner den Spideroak-Hive?
|
|
Nach oben |
|
|
V.K.B. [Error C7: not in list]
Alter: 51 Beiträge: 6154 Wohnort: Nullraum
|
04.05.2018 13:07
von V.K.B.
|
|
|
Zitat: | Vielen Dank fürs Zurverfügungstellen! | Bitte
Zitat: | Nutzt Du als Cloud-Ordner den Spideroak-Hive? | Jupp. In dem liegt aber ein encfs-Ordner, also zusätzlich zur Cloudsicherheit nochmal eine zusätzliche Verschlüsselung, weil die Dateien sonst ja unverschlüsselt auch auf dem Firmenrechner liegen würden (ich nutze keine Vollverschlüsselung der Festplatte). Den Ordner mounte ich über encfs beim Anmelden nach cloud_secure, das ist also der Hive-Odner in unverschlüsselter Form (als benutzbares, virtuelles Dateisystem, tatsächlich bleibt der Ordner leer und es wird nur verschlüsselt in den Hive Ordner geschrieben, wenn ich was nach cloud_secure kopiere).
_________________ Hang the cosmic muse!
Oh changelings, thou art so very wrong. T’is not banality that brings us downe. It's fantasy that kills … |
|
Nach oben |
|
|
Rainer Prem Reißwolf
R Alter: 66 Beiträge: 1271 Wohnort: Wiesbaden
|
R 07.05.2018 06:23
von Rainer Prem
|
|
|
Hallo,
für Windows-User wäre das dann
robocopy /mir (Buchverzeichnis) C:\Users\(username)\OneDrive\Books
Unterverzeichnisse, Versionierung, Prüfung auf Verfügbarkeit, Synchronisierung mit der Cloud, und alles andere geht automatisch.
Grüße
Rainer
|
|
Nach oben |
|
|
V.K.B. [Error C7: not in list]
Alter: 51 Beiträge: 6154 Wohnort: Nullraum
|
09.05.2018 00:15
von V.K.B.
|
|
|
Zitat: | für Windows-User wäre das dann |
Naja, nicht ganz. Robocopy löscht mit dieser Einstellung soweit ich weiß Dateien, die nicht mehr im Quellverzeichnis vorliegen, auch aus dem Zielverzeichnis. Und es kann keine Dateien kopieren, die gerade geöffnet und "gelocked" sind, also kann man es nicht im Hintergrund laufen lassen, während man z.B. mit LibreOffice an einer der zu sichernden Dateien arbeitet.
Außerdem geht es hier gar nicht darum, einen Ordner mit Unterverzeichnissen zu sichern (dazu reicht ein rsync-Befehl), sondern überall im System verteilte einzelne Dateien, die man sichern und versionieren will, übersichtlich in einem Cloudordner zu archivieren.
Du vergleichst hier also Äpfel mit Bildern von Glühbirnen, metaphorisch gesprochen. Windows-ist-besser-Trollversuch?
_________________ Hang the cosmic muse!
Oh changelings, thou art so very wrong. T’is not banality that brings us downe. It's fantasy that kills … |
|
Nach oben |
|
|
Rainer Prem Reißwolf
R Alter: 66 Beiträge: 1271 Wohnort: Wiesbaden
|
R 09.05.2018 11:04
von Rainer Prem
|
|
|
V.K.B. hat Folgendes geschrieben: | Zitat: | für Windows-User wäre das dann |
Naja, nicht ganz. Robocopy löscht mit dieser Einstellung soweit ich weiß Dateien, die nicht mehr im Quellverzeichnis vorliegen, auch aus dem Zielverzeichnis. Und es kann keine Dateien kopieren, die gerade geöffnet und "gelocked" sind, also kann man es nicht im Hintergrund laufen lassen, während man z.B. mit LibreOffice an einer der zu sichernden Dateien arbeitet.
Außerdem geht es hier gar nicht darum, einen Ordner mit Unterverzeichnissen zu sichern (dazu reicht ein rsync-Befehl), sondern überall im System verteilte einzelne Dateien, die man sichern und versionieren will, übersichtlich in einem Cloudordner zu archivieren.
Du vergleichst hier also Äpfel mit Bildern von Glühbirnen, metaphorisch gesprochen. Windows-ist-besser-Trollversuch? |
War absolut kein Trollversuch, nur die Info, dass es nicht nur für Unix-Insider mit langer bash-Erfahrung solche Möglichkeiten gibt.
Wenn man OneDrive benutzt, muss man die Versionierung auch nicht mühselig selbst machen, sondern kann tatsächlich mit /mir veraltete Dateien einfach weglöschen. Die sind beliebig lange wiederherstellbar, solange nicht der Gesamtspeicher überschritten wird.
Und wenn die Dateien "überall im System verteilt sind" (was bei Windows schon einer gewissen aktiven Chaotik des Benutzers bedarf), schreibt man halt in der Skriptdatei mehrere Kopierbefehle untereinander.
Versteh mich nicht falsch; ich habe auch über ein Jahrzehnt Unix-Erfahrung auf dem Buckel und tausende von Zeilen Bash-Skripte geschrieben. Aber für simple Tasks eines Nicht-Gurus gibt es halt auch einfachere Lösungen.
Übrigens kann man bei RC auch einstellen, wie oft und in welchen Abständen versucht wird, eine gesperrte Datei zu öffnen, und es hat auch eine "Monitor"-Option, die das Dateisystem konstant überwacht, um mitzubekommen, wann sich etwas ändert.
|
|
Nach oben |
|
|
|
|
Seite 1 von 1 |
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst Deine Beiträge in diesem Forum nicht bearbeiten. Du kannst Deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht teilnehmen. In diesem Forum darfst Du Ereignisse posten Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum nicht herunterladen
|
Empfehlung | Empfehlung | Empfehlung | Empfehlung | Empfehlung | Buch | Buch | Empfehlung | Buch | Empfehlung |
|
|
|
|
|
|
|
|
|
|
|