Make snapshotLC: Unterschied zwischen den Versionen
(→Tages-Sicherung) |
Framp (Diskussion | Beiträge) |
||
(38 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | |||
{{Infobox_Software| | {{Infobox_Software| | ||
− | Name= | + | Name= make_snapshotLC |
− | |||
|Beschreibung= | |Beschreibung= | ||
− | |Hersteller= | + | |Hersteller= Idee: Mike Rubel, Erweiterungen: Pfalzwolf |
− | |AktuelleVersion= | + | |AktuelleVersion= 0.3 |
− | |AktuelleVersionFreigabeDatum= | + | |AktuelleVersionFreigabeDatum= 20.06.2007 |
− | |Betriebssystem= | + | |Betriebssystem= Linux |
− | |Kategorie= [[ | + | |Kategorie= [[Backup]] |
− | |Lizenz= [[ | + | |Lizenz= [[GPL]] |
− | |Deutsch = | + | |Deutsch = Nachrichten english, Handbuch deutsch |
− | |Website= | + | |Website= [[Make_snapshotLC_sh]] |
}} | }} | ||
= Datensicherung auf Basis von rsync = | = Datensicherung auf Basis von rsync = | ||
Zeile 17: | Zeile 15: | ||
=== Anlegen von Datensicherungs-Generationen === | === Anlegen von Datensicherungs-Generationen === | ||
− | |||
− | |||
== Zielanwender == | == Zielanwender == | ||
Zeile 55: | Zeile 51: | ||
Es werden hier in dieser Dokumentation hauptsächlich die Details zur Anwendung im Tagesgeschäft beschrieben, da die technische Beschreibung(englisch) auf der [http://www.mikerubel.org/computers/rsync_snapshots/ Webseite von Mike Rubel] sehr ausführlich ist. | Es werden hier in dieser Dokumentation hauptsächlich die Details zur Anwendung im Tagesgeschäft beschrieben, da die technische Beschreibung(englisch) auf der [http://www.mikerubel.org/computers/rsync_snapshots/ Webseite von Mike Rubel] sehr ausführlich ist. | ||
− | == Aufruf Backup Skript | + | == Aufruf Backup Skript make_snapshotLC.sh == |
=== Tages-Sicherung === | === Tages-Sicherung === | ||
− | + | make_snapshotLC.sh -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. | 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. | ||
Zeile 66: | Zeile 62: | ||
=== Wochen-Sicherung === | === Wochen-Sicherung === | ||
− | + | make_snapshotLC.sh -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. | 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. | ||
Zeile 72: | Zeile 68: | ||
=== Monats-Sicherung === | === Monats-Sicherung === | ||
− | + | make_snapshotLC.sh -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 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. | ||
Zeile 81: | Zeile 77: | ||
=== Anzeige kurzer Hilfetext zum Aufruf === | === Anzeige kurzer Hilfetext zum Aufruf === | ||
− | + | make_snapshotLC.sh -h | |
== Restore == | == Restore == | ||
Zeile 113: | Zeile 109: | ||
=== Beispiel === | === Beispiel === | ||
− | 30 13 * * * /usr/local/bin/ | + | 30 13 * * * /usr/local/bin/make_snapshotLC.sh -d >/dev/null 2>&1 |
− | 35 13 * * 7 /usr/local/bin/ | + | 35 13 * * 7 /usr/local/bin/make_snapshotLC.sh -w >/dev/null 2>&1 |
− | 50 13 1 * * /usr/local/bin/ | + | 50 13 1 * * /usr/local/bin/make_snapshotLC.sh -m >/dev/null 2>&1 |
oder | oder | ||
− | 30 13 * * * /usr/local/bin/ | + | 30 13 * * * /usr/local/bin/make_snapshotLC.sh -d >/home/wolf/TMP/backuplog 2>&1 |
usw. | usw. | ||
'''Erläuterung''' | '''Erläuterung''' | ||
− | Script | + | Script make_snapshotLC.sh -d wird jeden Tag zur Tagessicherung um 13:30 aufgerufen |
− | Script | + | Script make_snapshotLC.sh -w wird jeden Sonntag zur Wochensicherung um 13:35 aufgerufen. |
− | Script | + | Script make_snapshotLC.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. | Die Unterdrückung der Ausgabe außer bei schweren Fehlern(2>&1) soll man erst in crontab eintragen, wenn alles läuft. | ||
=== Installation und Konfiguration === | === Installation und Konfiguration === | ||
− | '''Das Datensicherungs-Skrip | + | '''Das Datensicherungs-Skrip make_snapshotLC.sh wird in das Verzeichnis /usr/local/bin gespeichert''' |
Die folgenden Konstanten können in der '''Customizing Section''' des Backup Skripts nach den speziellen Bedürfnissen des Anwenders angepasst werden: | Die folgenden Konstanten können in der '''Customizing Section''' des Backup Skripts nach den speziellen Bedürfnissen des Anwenders angepasst werden: | ||
Zeile 184: | Zeile 180: | ||
monthly.5 | monthly.5 | ||
</pre> | </pre> | ||
+ | |||
+ | == Download des Scripts make_snapshotLC.sh == | ||
+ | |||
+ | Das Script kann [[make_snapshotLC.sh|hier kopiert]] werden. | ||
+ | |||
+ | ''Anmerkung von framp:'' Es liegt eine eMail des Autors des Originalskripts vor, in der er sein Einverständnis zur Publikation seines geänderten Scripts im LC Wiki gibt. | ||
== Weitere Information == | == Weitere Information == | ||
Zeile 191: | Zeile 193: | ||
+ | '''Danke an framp für die geduldige Unterstützung''' | ||
+ | |||
+ | ---- | ||
+ | [[Backup|zurück zum Backup]]<br /> | ||
[[Hauptseite|Zurück zur Hauptseite]] | [[Hauptseite|Zurück zur Hauptseite]] | ||
+ | [[Category:Backup]] |
Aktuelle Version vom 10. Dezember 2007, 17:48 Uhr
make_snapshotLC | |
---|---|
{{{Screenshot}}} | |
Basisdaten | |
Entwickler: | Idee: Mike Rubel, Erweiterungen: Pfalzwolf |
Aktuelle Version: | 0.3 |
letzte Veröffentlichung: | 20.06.2007 |
Betriebssystem: | Linux |
Kategorie: | Backup |
Lizenz: | GPL |
Deutschsprachig: | Nachrichten english, Handbuch deutsch |
Webseite: | Make_snapshotLC_sh |
Inhaltsverzeichnis
- 1 Datensicherung auf Basis von rsync
- 1.1 Anlegen von Datensicherungs-Generationen
- 1.2 Zielanwender
- 1.3 Was braucht der Privatanwender
- 1.4 Aufruf Backup Skript make_snapshotLC.sh
- 1.5 Restore
- 1.6 Speicherort und Warnung
- 1.7 Speicherplatz
- 1.8 Log Datei
- 1.9 Technische Angaben zum Backup-Script make_snapshot.sh
- 1.10 Tipps
- 1.11 Sicherung von Windows Daten
- 1.12 Beispiel der Directory-Struktur
- 1.13 Download des Scripts make_snapshotLC.sh
- 1.14 Weitere Information
Datensicherung auf Basis von rsync
Anlegen von Datensicherungs-Generationen
Zielanwender
Das hier vorliegende Backup-Skript ist für Privatanwender und kleinere Unternehmen 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).
- ...
Was bietet das beschriebene Tool - Übersicht
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 dem Anwender rsync gut verständlich näher.
Änderungen und Ergänzungen
Basierend auf dem Original 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: Heinlein Professional Linux Support GmbH
Es werden hier in dieser Dokumentation hauptsächlich die Details zur Anwendung im Tagesgeschäft beschrieben, da die technische Beschreibung(englisch) auf der Webseite von Mike Rubel sehr ausführlich ist.
Aufruf Backup Skript make_snapshotLC.sh
Tages-Sicherung
make_snapshotLC.sh -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
make_snapshotLC.sh -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
make_snapshotLC.sh -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
make_snapshotLC.sh -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.
Technische Angaben zum Backup-Script make_snapshot.sh
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_snapshotLC.sh -d >/dev/null 2>&1 35 13 * * 7 /usr/local/bin/make_snapshotLC.sh -w >/dev/null 2>&1 50 13 1 * * /usr/local/bin/make_snapshotLC.sh -m >/dev/null 2>&1 oder 30 13 * * * /usr/local/bin/make_snapshotLC.sh -d >/home/wolf/TMP/backuplog 2>&1 usw.
Erläuterung
Script make_snapshotLC.sh -d wird jeden Tag zur Tagessicherung um 13:30 aufgerufen
Script make_snapshotLC.sh -w wird jeden Sonntag zur Wochensicherung um 13:35 aufgerufen.
Script make_snapshotLC.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.
Installation und Konfiguration
Das Datensicherungs-Skrip make_snapshotLC.sh wird in das Verzeichnis /usr/local/bin gespeichert
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. Dort findet man auch die einfachen Erweiterungen für Sicherungen in Server- und Netzwerk-Umgebungen über SSH .
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
Download des Scripts make_snapshotLC.sh
Das Script kann hier kopiert werden.
Anmerkung von framp: Es liegt eine eMail des Autors des Originalskripts vor, in der er sein Einverständnis zur Publikation seines geänderten Scripts im LC Wiki gibt.
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
Danke an framp für die geduldige Unterstützung