Make snapshotLC: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
 
 
(75 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{UnderConstruction}}--[[Benutzer:Framp|Framp]] 21:38, 18. Jun 2007 (CEST) 
 
 
{{Infobox_Software|
 
{{Infobox_Software|
  Name= Name der Software<br />[[Bild:Icon der Software.png|64px]]
+
  Name= make_snapshotLC
|Screenshot= [[Bild:Screenshot der Software.jpg|240px]]
 
 
|Beschreibung=  
 
|Beschreibung=  
|Hersteller= Entwickler der der Software
+
|Hersteller= Idee: Mike Rubel, Erweiterungen: Pfalzwolf
|AktuelleVersion= Version der Software
+
|AktuelleVersion= 0.3
|AktuelleVersionFreigabeDatum=  
+
|AktuelleVersionFreigabeDatum= 20.06.2007
|Betriebssystem= Auf welchen Betriebssystemen die Software lauffähig ist
+
|Betriebssystem= Linux
|Kategorie= [[in welche Kategorie die Software gehört]]
+
|Kategorie= [[Backup]]
|Lizenz= [[Die Lizenz der Software]]
+
|Lizenz= [[GPL]]
|Deutsch = Ist die Software in Deutsch?
+
|Deutsch = Nachrichten english, Handbuch deutsch
|Website= URL der Software
+
|Website= [[Make_snapshotLC_sh]]
 
}}
 
}}
== erste Hauptüberschrift ==
+
= Datensicherung auf Basis von rsync =
 
=== erste Unterüberschrift ===
 
  
hier sollte der Text für diesen Punkt eingefügt werden. Den Fließtext könnt ihr schreiben wie ihr wollt,
+
=== Anlegen von Datensicherungs-Generationen ===
es werden dann beim Anzeigen immer alle überflüssigen Leerzeichen und alle Zeilensprünge entfernt.
 
Wenn ihr wirklich einmal einen Zeilensprung wollt, dann könnt ihr diesen mit        <br>
 
Zeilensprung erzwingen. Diese Art des Zeilensprunges sollte aber eine Ausnahme bleiben, besser ist folgende Methode:
 
  
Eine Leerzeile unterteilt euch einen Fließtext dann in überschaubare Abschnitte.
 
Hin und wieder muss man im Text etwas hervorheben, dazu sind  ''' die Fettschrift '''
 
und die '' Kursivschrift '' gedacht. Aber bedenkt, diese Formatierung endet jeweils, wenn
 
ihr einen Zeilensprung macht automatisch, geht also nicht über mehrere Zeilen.
 
In dem Editorfenster sind auch oben einige Button eingefügt, die euch bei der Formatierung für euren Text hilfreich sein
 
können.
 
  
Eine schnelle Übersicht über weiter Formatierungsmöglichkeiten gibt es [http://meta.wikimedia.org/wiki/Help:Wikitext hier]
 
  
 +
== 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 Ziel­gruppe.
  
===  zweite Unterüberschrift ===
+
== Was braucht der Privatanwender ==
 +
Bevor der einzelne Anwender aber in die Auswahl eines Backup Tools einsteigt, sollte er sich über seine Be­dürfnisse im Klaren sein. Der Verfasser schildert seine reine Privatanwender Sicht.
  
'''  Manchmal benötigt man Listen oder Aufzählungen :  '''
+
* Alle Anwender-Daten wie OO Dokumente, Musikstücke, Filme etc. sollen sicher verwahrt werden.
* am Anfang der Zeile
+
* Die Sicherungen sollen im Generationen-Prinzip gemacht werden
* erzwingt einen Zeilensprung mit
+
* 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.
* einem Gliederungspunkt
+
* Alle wichtigen Konfigurationen sollen gesichert werden, dass im Worst Case nach einer Neuinstallation des Systems alles wieder herstellbar ist.
* auch hier gilt die Zeilen und Leerzeichenregelung wie im Fließtext
+
* 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 igno­riert werden(siehe exclude).
** Unterpunkte werden so erzeugt
+
* ...
* danach geht es dann wieder normal weiter
 
  
'''  durchnummerierte Aufzählungsliste Liste : '''
+
===Was bietet das beschriebene Tool - Übersicht===
# am Anfang der Zeile
+
Die Sicherung basiert auf dem extrem variablen und mit vielen Funktionen ausgestatteten Programm rsync.
# erzwingt einen Zeilensprung mit
+
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.
# einer Nummerierung
 
# auch hier gilt die Zeilen und Leerzeichenregelung wie im Fließtext
 
## auch hier werden Unterpunkte so erzeugt
 
# so geht es dann ganz normal mit der höheren Nummerierungsebene weiter
 
  
'''  Begriffsdefinitionen :    '''
+
Gemäß dem Generationen-Prinzip gibt es ein Set von Tagessicherungen, Wochensicherungen und Monatssi­cherungen. Welche Art der Sicherung vorgenommen wird, bestimmt ein Parameter.
; Begriffsdefinitionen  : kann man sehr schön so hier schreiben
 
; nächster Begriff      : auch hier gilt wieder die Zeile und Leerzeilenregelung wie im Fließtext
 
  
 +
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 [http://www.mikerubel.org/computers/rsync_snapshots/ Quelle] für seine Bedürfnisse angepasst. Der Originalbeitrag beschreibt nicht nur das Verfahren sondern bringt dem Anwender rsync gut verständlich näher.
  
'''  Einrückungen als Formatierung :  '''
+
=== Änderungen und Ergänzungen ===
: Einrückungen kann man so hier machen
+
Basierend auf dem Original wurden folgende Veränderungen vorgenommen:
: Das hier ist die erste Einrückungsebene
+
* Weitere Sicherungs-Ebene Monatssicherungen eingeführt
:: die sind auch verschachtelbar
+
* Durch die Änderung der Werte von DAYS, WEEKS und MONTHS im Script kann jeder Anwender die Anzahl seiner Backups einstellen.
:: das ist die 2 Ebene
+
* Die Prüfung der Platzverhältnisse.
::: wenn man das braucht
+
* Zusammenfassung zu einem Skript mit Optionen zur Steuerung
::: Das ist die 3 Ebene
 
: damit kann man sehr Übersichtlich
 
:: seine Punkte
 
::: Gedanklich in ein Format bringen
 
  
 +
In einer recht ähnlichen Variante ist die Sicherung hier zu finden: [http://www.heinlein-support.de/web/support/wissen/rsync-backup/ 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 [http://www.mikerubel.org/computers/rsync_snapshots/ Webseite von Mike Rubel] sehr ausführlich ist.
  
=== dritte Unterüberschrift ===
+
== Aufruf Backup Skript make_snapshotLC.sh ==
Hin und wieder muss man '''Code''' oder '''Ausgaben''' einfügen
+
=== Tages-Sicherung ===
 +
make_snapshotLC.sh -d
  
Bei ein oder zwei Zeilen rückt ihr diese mit einem Leerzeichen ein:
+
Das Script mit Option -d aufgerufen erstellt eine Sicherung die man pro Tag einmal oder auch mehrfach durch­fü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.
  
tail -f /var/log/messages
+
Die letzte Sicherung befindet sich immer im Verzeichnis daily.0
  
Wenn ihr längeren Code formatieren/darstellen wollt, diesen einfach signieren, und mit dem durchgestrichenen W obenbefindlichen Button formatieren. Hier braucht ihr nur das erste <nowiki> mit einer Leerzeile einrücken.
+
'''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.
  <nowiki>robi@LINUX:~> echo "die beste Methode ist immer über pre tag "
 
die beste Methode ist immer über pre tag
 
robi@LINUX:~> echo "dabei werden fast alle Wikiformatierungen"
 
dabei werden fast alle Wikiformatierungen
 
robi@LINUX:~> echo "ignoriert"
 
ignoriert
 
robi@LINUX:~>
 
</nowiki>
 
  
Bis zu drei Zeilen ist es Sinnvoller nur mit Einrücken durch ein Leerzeichen zu arbeiten, da gerade bei längeren Texten im Bearbeitungsmodus sonst eine vermeidbare Unübersichtlichkeit entsteht.  
+
=== Wochen-Sicherung ===
 +
make_snapshotLC.sh -w
  
Einzelne '''Befehlszeilen''' können aber auch durch ein
+
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 ge­löscht.
Leerzeichen am Anfang der Zeile als Code  markiert werden
+
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 ge­macht, wenn die maximale Anzahl Tagessicherungen vorhanden ist.
dabei wird jedoch zum Beispiel die Formatierung von [[LinuxClub:Hilfe|Links]] beibehalten
 
  
 +
=== 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(wee­kly.0). Die älteste Monatssicherung wird dabei gelöscht. Eine Monatssicherung wird nur gemacht, wenn die maximale Anzahl Wochensicherungen vorhanden ist.
  
== zweite Hauptüberschrift ==
+
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 Mo­nat die Monatssicherung - siehe Beispiel für crontab Einstellung.
Mit Tabellen können sehr viele Probleme sehr übersichtlich dargestellt werden. Allerdings
 
sind die gewünschten Formatierungen einer Tabelle genauso vielschichtig wie die Einsatzmöglichkeiten,
 
deshalb ist es unmöglich, eine Universelle Vorlage zu erstellen,
 
benutzt bitte diese [http://meta.wikimedia.org/wiki/Help:Table Tabellenhilfe]
 
  
{| border="1"
+
Eine Sicherung kann von Hand gemacht werden. Wenn der Computer nämlich zu dem vorgesehenen Zeit­punkt 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 Si­cherung der betroffenen Ebene(z.B. Tagessicherung) nach /dev/null wandert. Das wäre nicht sehr sinnvoll.
|+ '''Hier steht die Tabellenüberschrift '''
 
!  Überschrift Spalte 1  !!    Spalte 2     !!  Spalte 3  !!  Spalte 4
 
|-
 
! Zeilenname 1            ||    Inhalt      ||    Inhalt    ||  Inhalt
 
|-
 
! Zeilenname 2            ||    Inhalt      ||    Inhalt    ||  Inhalt
 
|-
 
! Zeilenname 2            ||    Inhalt      ||    Inhalt    ||  Inhalt
 
|}
 
  
   
+
=== Anzeige kurzer Hilfetext zum Aufruf ===
Das hier ist ein [[Link ins Wiki]] das hier ist ein [[Link ins Wiki#auf Unterpunkt]] <br>
+
  make_snapshotLC.sh -h
das ist ein [http://www.link.de/index.html Link ins Netz] oder http://www.link.de/index.html <br>
 
so einfach kann ein Bild [[Bild:Hibiscus.png|hier kann auch noch ein Alternativtext stehen]]
 
eingefügt werden. Alternativtexte kann man auf die selbe Art auch bei Links ins Wiki verwenden:
 
[[Link ins Wiki|Alternativtext]]
 
  
Um Bilder auch immer an die richtige Position zu bekommen
+
== Restore ==
[http://en.wikipedia.org/wiki/Wikipedia:Extended_image_syntax hier gibts Hilfe zu Bildern]
+
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!
  
{{Box Hinweis||
+
Die Sicherungen sollen auch keinesfalls in ein Windows-Dateisystem wie FAT oder NTFS gemacht werden, da sonst wichtige Attribute fehlen.
Die Arbeit mit [[:Kategorie:Vorlagen|Vorlagen und Bausteinen]] kann die Arbeit erleichtern
+
 
}}
+
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 wahrschein­lich 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 Cu­stomizing 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ürf­nissen 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 gesi­chert 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 [http://www.mikerubel.org/computers/rsync_snapshots/ Quelle 1.] in den Ab­schnitten ”Contributed Code” und ”References” viele sehr gute Anregungen. Dort findet man auch die einfachen Erweiterungen für Sicherungen in Server- und Netzwerk-Umgebungen über [http://linuxwiki.de/ssh 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 gesi­chert 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 aufzu­bauen 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:
 +
<pre>
 +
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
 +
</pre>
  
== Weitere Links zum Thema ==
+
== Download des Scripts make_snapshotLC.sh ==
* http://www.link.irgendwohin
 
* [http://www.link.irgendwohin  Bezeichnung für diesen Link]
 
* [[Hauptseite|Wikiinterner Link]]
 
  
 +
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.
  
<!-- hier kann eine Notiz für spätere Editoren dieses Artikels stehen, die sonst nicht sichtbar wird -->
+
== Weitere Information ==
 +
# Easy Automated Snapshot-Style Backups with Rsync [http://www.mikerubel.org/computers/rsync_snapshots/ Original Skript von Mike Rubel] Bei dieser Quelle sind in der Beschreibung eine große Anzahl von ähnlichen Lösungen oder Ver­besserungen genannt. Für Interessierte eine Fundgrube.
 +
# Howto: Backups und Snapshots von Linux-Servern mit rsync und ssh [http://www.heinlein-support.de/web/support/wissen/rsync-backup/ Ähnliches Skript von Heinlein Professional Linux Support GmbH]
 +
# man rsync
  
  
 +
'''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: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

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 Ziel­gruppe.

Was braucht der Privatanwender

Bevor der einzelne Anwender aber in die Auswahl eines Backup Tools einsteigt, sollte er sich über seine Be­dü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 igno­riert 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 Monatssi­cherungen. 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 durch­fü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 ge­lö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 ge­macht, 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(wee­kly.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 Mo­nat die Monatssicherung - siehe Beispiel für crontab Einstellung.

Eine Sicherung kann von Hand gemacht werden. Wenn der Computer nämlich zu dem vorgesehenen Zeit­punkt 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 Si­cherung 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 wahrschein­lich 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 Cu­stomizing 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ürf­nissen 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 gesi­chert 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 Ab­schnitten ”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 gesi­chert 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 aufzu­bauen 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

  1. 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 Ver­besserungen genannt. Für Interessierte eine Fundgrube.
  2. Howto: Backups und Snapshots von Linux-Servern mit rsync und ssh Ähnliches Skript von Heinlein Professional Linux Support GmbH
  3. man rsync


Danke an framp für die geduldige Unterstützung


zurück zum Backup
Zurück zur Hauptseite