Make snapshotLC: Unterschied zwischen den Versionen
(→Speicherort und Warnung) |
(→Speicherplatz) |
||
Zeile 93: | Zeile 93: | ||
Wer seine Mails sichert, kann davon ausgehen, dass dies wegen häufiger Änderungen durch neue Mails einen sehr großen Platzbedarf auslöst! Der Verfasser sichert seine Mails(nicht in dieses Skript eingebaut) immer wieder in das gleiche Verzeichnis ohne Generationen anzulegen. Für ein Geschäftsumfeld ist das wahrscheinlich zu wenig, es sei denn, alte Mails werden nie gelöscht. | Wer seine Mails sichert, kann davon ausgehen, dass dies wegen häufiger Änderungen durch neue Mails einen sehr großen Platzbedarf auslöst! Der Verfasser sichert seine Mails(nicht in dieses Skript eingebaut) immer wieder in das gleiche Verzeichnis ohne Generationen anzulegen. Für ein Geschäftsumfeld ist das wahrscheinlich zu wenig, es sei denn, alte Mails werden nie gelöscht. | ||
− | + | == Speicherplatz == | |
− | Durch geschickte Verlinkung wird trotz der vielen Sicherungen | + | Durch geschickte Verlinkung der Linux Daten wird trotz der vielen Sicherungen sehr wenig Speicherplatz benötigt. Nur wenn sich Dateien ändern oder neue hinzukommen, wird zusätzlich Platz verbraucht. |
+ | Man muss etwa mit dem doppelten Speicherplatz der Originaldaten(z.B. /home) rechnen, wenn man 10 Backups vorsieht. Das ist aber eine sehr grobe Angabe! | ||
=== Dateien, die nicht gesichert werden === | === Dateien, die nicht gesichert werden === |
Version vom 20. Juni 2007, 13:27 Uhr
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist. |
--Framp 21:38, 18. Jun 2007 (CEST)
Name der Software 64px | |
---|---|
240px | |
Basisdaten | |
Entwickler: | Entwickler der der Software |
Aktuelle Version: | Version der Software |
letzte Veröffentlichung: | |
Betriebssystem: | Auf welchen Betriebssystemen die Software lauffähig ist |
Kategorie: | in welche Kategorie die Software gehört |
Lizenz: | Die Lizenz der Software |
Deutschsprachig: | Ist die Software in Deutsch? |
Webseite: | URL der Software |
Inhaltsverzeichnis
Datensicherung auf Basis von rsync
Anlegen von Datensicherungs-Generationen
Backup-Skript make_snapshot.sh
Quelle: Easy Automated Snapshot-Style Backups with Linux and Rsync
Zielanwender
Das hier vorliegende Backup-Skript ist für Privatanwender geeignet. Mit geringen Änderungen ist ein Backup eines oder mehrerer Server über SSH möglich. Es gibt sicher bessere und umfassendere Lösungen. Dieses Skript ist aber einfach, gut zu handhaben und von seinen Leistungen her mehr als ausreichend für die Zielgruppe.
Was braucht der Privatanwender
Bevor der einzelne Anwender aber in die Auswahl eines Backup Tools einsteigt, sollte er sich über seine Bedürfnisse im Klaren sein. Der Verfasser schildert seine reine Privatanwender Sicht.
- Alle Anwender-Daten wie OO Dokumente, Musikstücke, Filme etc. sollen sicher verwahrt werden.
- Die Sicherungen sollen im Generationen-Prinzip gemacht werden
- Dokumente, die ewig nicht gebraucht wurden und die man vielleicht aus Platzgründen gelöscht hat, sollen für den Fall eines Falles aus einem Langzeitarchiv wieder geholt werden können.
- Alle wichtigen Konfigurationen sollen gesichert werden, dass im Worst Case nach einer Neuinstallation des Systems alles wieder herstellbar ist.
- Im Home Verzeichnis ist ja meist viel Bewegung. Es gibt Testversionen oder Spiele usw. die man nicht in voller Pracht und Schönheit auf ewig sichern möchte. Die sollten daher von einer Sicherung ignoriert werden(siehe exclude).
- ...
Die Sicherung basiert auf dem extrem variablen und mit vielen Funktionen ausgestatteten Programm rsync. Es gibt für die Sicherung ein Script, das in bestimmten Abständen per cronjob gestartet wird. Starten von Hand ist genau so möglich.
Gemäß dem Generationen-Prinzip gibt es ein Set von Tagessicherungen, Wochensicherungen und Monatssicherungen. Welche Art der Sicherung vorgenommen wird, bestimmt ein Parameter.
Wie oft ein Sicherungslauf gestartet wird und wie viele der umlaufenden Sicherungen man einrichtet, ist im höchsten Maße individuell. Das Sicherungsprogramm braucht nur entsprechend konfiguriert werden.
Der Verfasser hat die Skripte aus der ersten Quelle für seine Bedürfnisse angepasst. Der Originalbeitrag beschreibt nicht nur das Verfahren sondern bringt auch rsync dem Anwender gut verständlich näher.
Änderungen und Ergänzungen
Basierend auf dem Original(siehe Quelle 1) wurden folgende Veränderungen vorgenommen:
- Weitere Sicherungs-Ebene Monatssicherungen eingeführt
- Durch die Änderung der Werte von DAYS, WEEKS und MONTHS im Script kann jeder * * Anwender die Anzahl seiner Backups einstellen.
- Die Prüfung der Platzverhältnisse.
- Zusammenfassung zu einem Skript mit Optionen zur Steuerung
In einer recht ähnlichen Variante ist die Sicherung hier zu finden: [1]
Es werden hier nur noch grob die Details beschrieben, da die Dokumentation auf der Webseite(Quelle) sehr ausführlich ist.
Aufruf Backup Skript make_snapshot.sh
Tages-Sicherung
Aufruf mit Parameter -d
Das Script mit Option -d aufgerufen erstellt eine Sicherung die man pro Tag einmal oder auch mehrfach durchführen kann. Die Sicherungen werden zyklisch erstellt. Das heißt, es wird immer die älteste gelöscht und eine neue dazu gestellt. Wenn man 8 Sicherungen eingestellt hat(DAYS = 7), geht das so: Zuerst wird Sicherung 7 gelöscht. Dann wird Sicherung 6 auf 7 geschoben, Sicherung 5 wird auf 6 geschoben usw. zum Schluss wird Sicherung daily.0 neu erstellt.
Die letzte Sicherung befindet sich immer im Verzeichnis daily.0
Hinweis: Da man sehr viele Tagessicherungen machen kann - manche machen im Abstand von Stunden einen Lauf - werden nicht alle Sicherungen lückenlos in die Ebene Wochensicherung geschoben. Bei einer Wochensicherung wird die älteste vorhandene Tagessicherung genommen.
Wochen-Sicherung
– Aufruf mit Parameter -w
Das Script nimmt bei dem Aufruf mit Option -w die gerade älteste Tages-Sicherung(z.B. daily.7) und wandelt sie in die neueste Wochen-Sicherung weekly.0 . Zuvor werden die vorhandenen Wochensicherungen eine Nummer höher geschoben(weekly.0 -> weekly.1 usw.)Die älteste Wochensicherung(z.B. weekly.4) wird gelöscht. Eine Wochensicherung stellt daher im ursprünglichen Sinn keine separate Sicherung dar! Es wird lediglich die älteste Tagessicherung auf die Ebene Wochensicherung verschoben. Eine Wochensicherung wird nur gemacht, wenn die maximale Anzahl Tagessicherungen vorhanden ist.
Monats-Sicherung
– Aufruf mit Parameter -m
Die vorhandenen Monatssicherungen werden zunächst eine Nummer höher geschoben(monthly.0 -> monthly.1 usw.) Das Script nimmt dann die älteste Wochen-Sicherung und speichert sie als neue Monats-Sicherung(weekly.0). Die älteste Monatssicherung wird dabei gelöscht. Eine Monatssicherung wird nur gemacht, wenn die maximale Anzahl Wochensicherungen vorhanden ist.
Die Sicherungen werden über die crontab automatisch gestartet. Siehe Beispiel unten. Jeden Tag um 13:00 Uhr läuft die Tagessicherung. Jeden Sonntag um 13:30 läuft die Wochensicherung und an jedem 1. Tag im Monat die Monatssicherung - siehe Beispiel für crontab Einstellung.
Eine Sicherung kann von Hand gemacht werden. Wenn der Computer nämlich zu dem vorgesehenen Zeitpunkt nicht läuft, wird auch keine Sicherung gemacht. Davon ist besonders die Monatssicherung betroffen. Die kann bei Bedarf nachgeholt werden. Es gilt also, ein waches Auge auf die Sicherungen zu haben. Man kann zwar zu jedem beliebigen Zeitpunkt eine Sicherung von Hand anstoßen, sollte aber wissen, dass 2 dicht aufeinander folgende Aufrufe nur die selbe Sicherung ein weiteres mal erstellen und dabei die älteste Sicherung der betroffenen Ebene(z.B. Tagessicherung) nach /dev/null wandert. Das wäre nicht sehr sinnvoll.
Anzeige kurzer Hilfetext zum Aufruf
– Parameter -h
Restore
Muss man auf Sicherungsdaten zurück greifen, sucht man sich das passende Backup, welches das richtige Element(Datei oder Verzeichnis) enthält und kopiert es einfach wieder an die Original Stelle zurück. Natürlich muss auch eine gesicherte Version vorliegen, die nicht vorher per Exclude ausgeschlossen wurde...
Speicherort und Warnung
Die Sicherungen sollen auf keinen Fall auf die selbe Platte, auf der die Originaldaten liegen, gemacht werden!
Die Sicherungen sollen auch keinesfalls in ein Windows-Dateisystem wie FAT oder NTFS gemacht werden, da sonst wichtige Attribute fehlen.
Wer seine Mails sichert, kann davon ausgehen, dass dies wegen häufiger Änderungen durch neue Mails einen sehr großen Platzbedarf auslöst! Der Verfasser sichert seine Mails(nicht in dieses Skript eingebaut) immer wieder in das gleiche Verzeichnis ohne Generationen anzulegen. Für ein Geschäftsumfeld ist das wahrscheinlich zu wenig, es sei denn, alte Mails werden nie gelöscht.
Speicherplatz
Durch geschickte Verlinkung der Linux Daten wird trotz der vielen Sicherungen sehr wenig Speicherplatz benötigt. Nur wenn sich Dateien ändern oder neue hinzukommen, wird zusätzlich Platz verbraucht. Man muss etwa mit dem doppelten Speicherplatz der Originaldaten(z.B. /home) rechnen, wenn man 10 Backups vorsieht. Das ist aber eine sehr grobe Angabe!
Dateien, die nicht gesichert werden
In der Datei backup_exclude werden alle Verzeichnisse und Dateien aufgelistet, die nicht gesichert werden sollen. Wo die Datei liegt, bestimmt der Anwender und schreibt den Ort in die Konstante EXCLUDE in der Customizing Section des Skriptes.
Log Datei
Mit der Einrichtung der cron Jobeinträge kann auch eine Log Datei angegeben werden, die entweder immer wieder überschrieben oder fortgeschrieben wird. (> oder >>) siehe Beispiel unten.
Script
Das Datensicherungs-Skrip make_snapshot.sh wird in das Verzeichnis /usr/local/bin gespeichert
Sicherungszeiten
Die Sicherungen werden in der crontab eingestellt im privilegierten Modus(su) eingestellt Aufruf: crontab -e Man sollte dazu die Kommandos des Linux-Editors vi kennen! Alternativ dazu kann das grafische Frontend kcron zur Verwaltung der cron-Jobs verwendet werden.
Beispiel
30 13 * * * /usr/local/bin/make_snapshot.sh -d >/dev/null 2>&1 35 13 * * 7 /usr/local/bin/make_snapshot.sh -w >/dev/null 2>&1 50 13 1 * * /usr/local/bin/make_snapshot.sh -m >/dev/null 2>&1 oder 30 13 * * * /usr/local/bin/make_snapshot.sh -d >/home/wolf/TMP/backuplog 2>&1 usw.
Erläuterung
Script make_snapshot.sh -d wird jeden Tag zur Tagessicherung um 13:30 aufgerufen
Script make_snapshot.sh -w wird jeden Sonntag zur Wochensicherung um 13:35 aufgerufen.
Script make_snapshot.sh -m wird jeden ersten Tag im Monat zur Monatssicherung um 13:50 aufgerufen.
Die Unterdrückung der Ausgabe außer bei schweren Fehlern(2>&1) soll man erst in crontab eintragen, wenn alles läuft.
Einstellung
Die folgenden Konstanten können in der 'Customizing Section des Backup Skripts nach den speziellen Bedürfnissen des Anwenders angepasst werden:
MOUNT_DEVICE Device auf das die Datensicherung kommt z.B. /dev/sda2 MOUNT_RO Die Backups im normalen Betrieb read only machen: true, sonst false SNAPSHOT_RW Verzeichnis der Sicherungen z.B. /DASI/snapshot Verzeichnis musst Du selbst anlegen. ALLES kommt unter snapshot(daily.0, daily.1 usw.) EXCLUDE Verzeichnis, in dem Dateien oder Verzeichnisse benannt sind, welche NICHT gesichert werden sollen z.B. /home/wolf/nobackup/backup_exclude Das musst Du selbst anlegen. CHECK_HDMINFREE Prüfen ob genug Speicherplatz vorhanden ist. Werte true | false HDMINFREE gibt den maximal belegten Platz auf dem Sicherungsmedium in % an, bis zu dem ein Backup durchgeführt wird. DAYS Anzahl der Tages-Sicherungen z.B. 6 ergibt 7Sicherungen, da ab 0 gezählt wird WEEKS Anzahl der Wochen-Sicherungen z.B. 3 ... MONTHS Anzahl der Monats-Sicherungen z.B. 5 ...
Backups Read-Only
In dem Script ist ein Mechanismus, um die Sicherungsdaten auf read-only zu setzen. Wer will, kann das wieder aktivieren. Dazu setzt man in der Customizing Section den Wert MOUNT_RO=true.
Tipps
Bei normalem Betrieb werden die Sicherungsverzeichnisse automatisch angelegt, sofern die Backup-Läufe wie vorgesehen in der Reihenfolge daily, weekly und monthly aufgerufen werden.
Wer sich selbst für die eigenen Bedürfnisse etwas zurechtschneidern möchte, erhält aus Quelle(1) in den Abschnitten ”Contributed Code” und ”References” viele sehr gute Anregungen.
Sicherung von Windows Daten
Einige Anwender haben zusätzlich zu Linux noch Windows. Das oben beschriebene Konzept lässt sich auch in begrenztem Umfang für Windows nutzen. Windows Daten können mit kleinen Anpassungen des Skripts gesichert werden - auch über Samba.
Wer seine Daten unter Windows sinnvoll angelegt hat, wird es leicht haben. Der Verfasser hat alle seine Windows-Daten unter der Sammel-Directory \Data angelegt. Da gibt es Directories wie \Word, \Excel, \PDF \Fotos usw. darunter. Man braucht nur \Data zu sichern.
Wer das nicht hat, muss halt mit Include und Exclude Dateien hantieren. Diese Dinger sind zwar leicht aufzubauen aber mit der Pflege sieht es meist nicht so gut aus. Schnell hat man vergessen, etwas in die Exclude Liste zu schreiben und schon ballert das Programm im ungünstigen Fall das Datensicherungsmedium voll.
Beispiel der Directory-Struktur
Sicherungen entsprechend den Parametern oben für DAYS, WEEKS, MONTHS:
- /DASI
- snapshot
- home
- daily.0
- daily.1
- daily.2
- daily.3
- daily.4
- daily.5
- daily.6
- weekly.0
- weekly.1
- weekly.2
- weekly.3
- monthly.0
- monthly.1
- monthly.2
- monthly.3
- monthly.4
- monthly.5
- home
- snapshot
Weitere Information
- Easy Automated Snapshot-Style Backups with Rsync Original Skript von Mike Rubel Bei dieser Quelle sind in der Beschreibung eine große Anzahl von ähnlichen Lösungen oder Verbesserungen genannt. Für Interessierte eine Fundgrube.
- Howto: Backups und Snapshots von Linux-Servern mit rsync und ssh Ähnliches Skript von Heinlein Professional Linux Support GmbH
- man rsync