Debian Backup: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 4: Zeile 4:


Optional ist es möglich eine Festplatte, deren Netzteil an der [[Debian_SisPM|→ Schaltbaren Steckdosenleiste]] angeschlossen ist, für das Backup automatisch ein- und danach wieder auszuschalten.  
Optional ist es möglich eine Festplatte, deren Netzteil an der [[Debian_SisPM|→ Schaltbaren Steckdosenleiste]] angeschlossen ist, für das Backup automatisch ein- und danach wieder auszuschalten.  
Desweiteren besteht die Möglichkeit, Remote-Systeme via ssh-Verbindung verschlüsselt zu sichern.


==Voraussetzung==
==Voraussetzung==
* EXT2- oder EXT3- formatierte zusätzliche USB-Festplatte oder USB-Stick.  
* EXT2- oder EXT3- formatierte zusätzliche USB-Festplatte oder USB-Stick.  
* Optional: [[Debian_SisPM|→ Schaltbaren Steckdosenleiste]] zum automatischen ein- und ausschalten der Backup Platte  
* Optional: [[Debian_SisPM|→ Schaltbaren Steckdosenleiste]] zum automatischen ein- und ausschalten der Backup Platte  


==Installation==
==Installation==
Zeile 17: Zeile 20:
  wget ftp://download:download@schiele.homelinux.org/debian/backup.sh
  wget ftp://download:download@schiele.homelinux.org/debian/backup.sh
  chmod +x backup.sh
  chmod +x backup.sh


==Konfiguration==
==Konfiguration==
Zeile 35: Zeile 39:
   
   
  #Verzeichnis, in dem die ganzen Sicherungsdaten liegen
  #Verzeichnis, in dem die ganzen Sicherungsdaten liegen
  BASISDIR=/usr/share/backup
  BASISDIR=/usr/shares/backup
   
   
  #LOGFILE
  #LOGFILE
  LOGFILE=/var/log/backup.log
  LOGFILE=/var/log/backup.log
   
   
  #Zu sicherndes Verzeichnis
  #Zu sicherndes Verzeichnis (Syntax: host:/path)
  ZUSICHERN=/
  ZUSICHERN=localhost:/
#Von der Sicherung auszuschließen
EXCLUDE=( "/dev/*" "/sys*" "/proc/*" "/mnt/*" "/media/*" )
   
   
  #Prefix der Sicherungen  
  #Prefix der Sicherungen  
Zeile 59: Zeile 66:
* Nach dem Bakup ist es möglich, alte Backups zu löschen. Dadurch wird das Backup-Archiv nicht unnötig groß. Dies schafft Übersicht und spart Speciherplatz.Mit '''''DEL_OLD_BAKCUP''''' kann das automatische Löschen alter Backups aktiviert (1) oder deaktiviert (0) werden. Mit dem Eintrag '''''KEEP_BACKUP_DAYS''''' wird bestimmt, wieviel Tage lang alte Backups aufbewahrt werden sollen. Z.B. hier 30 Tage lang. Ältere Backups werden gelöscht.
* Nach dem Bakup ist es möglich, alte Backups zu löschen. Dadurch wird das Backup-Archiv nicht unnötig groß. Dies schafft Übersicht und spart Speciherplatz.Mit '''''DEL_OLD_BAKCUP''''' kann das automatische Löschen alter Backups aktiviert (1) oder deaktiviert (0) werden. Mit dem Eintrag '''''KEEP_BACKUP_DAYS''''' wird bestimmt, wieviel Tage lang alte Backups aufbewahrt werden sollen. Z.B. hier 30 Tage lang. Ältere Backups werden gelöscht.


* '''''ZUSICHERN''''' gibt das Wurzelverzeichnis an, das gesichert wird. Sämtliche darunter liegenden Files und Directories werden rekursiv gesichert. Für '''''ZUSICHERN=/''''' ergibt ein Vollbackup des Rechners, wobei Verzeichnisse wie /dev , /sys und /proc nicht gesichert werden, da rsync bei diesen nur Lesefehler erzeugen würde.  
* '''''ZUSICHERN''''' gibt das zu sichernde Verzeichnis im Format '''''Host/Verzeichnisdas''''' an. Sämtliche darunter liegenden Files und Directories werden rekursiv gesichert. '''''ZUSICHERN=localhost:/''''' ergibt ein Vollbackup des Rechners (mit Ausnahme der ausgeschlossenen Files und Directories: siehe '''''EXCLUDE''''').
 
* '''''EXCLUDE''''' enthält eine Auflistung aller auszuschließenden Files und Ordner. Standardmäßig sind dies '''''EXCLUDE'''''=( "/dev/*" "/sys*" "/proc/*" "/mnt/*" "/media/*" ), da diese Ordner Lesefehler beim Backup verursachen würden und beim Rechnerneustart ohnehin automatisch neu erstellt werden (/dev/ , /proc/ , /sys/) bzw. in /mnt/ und /media/ andere Dateisysteme wie z.B. CD-Roms oder USB-Sticks gemounted werden.


* '''''PREFIX''''' bestimmt den Namen der Backups. Die Backups werden nach folgendem Schema benannt: PREFIX-Datum_Zeit. Z.B. für PREFIX=vollsicherung: vollsicherung-2009-04-23_02:00  für ein Backup am 23.04.2009 um 2:00 Uhr.
* '''''PREFIX''''' bestimmt den Namen der Backups. Die Backups werden nach folgendem Schema benannt: PREFIX-Datum_Zeit. Z.B. für PREFIX=vollsicherung: vollsicherung-2009-04-23_02:00  für ein Backup am 23.04.2009 um 2:00 Uhr.
Zeile 80: Zeile 89:
Einen neuen Eintrag erzeugen, z.B. für ein wöchentliches Backup am Mittwoch (=Wochentag 3) um 2.00 Uhr nachts.
Einen neuen Eintrag erzeugen, z.B. für ein wöchentliches Backup am Mittwoch (=Wochentag 3) um 2.00 Uhr nachts.
  0 2 * * 3 root /usr/local/bin/backup.sh > dev/null
  0 2 * * 3 root /usr/local/bin/backup.sh > dev/null
==Ideen==
Es können auch mehrere Backup-Scripte verwendet werden. Z.B. eines um wöchentlich ein Vollbackup zu erstellen und täglich nur die Mailserver-Files zu sichern (Nachts um 1:15 Uhr).
Dies kann erreicht werden, indem eine Kopie des Backupscripts angelegt wird, dieses entsprechend konfiguriert wird, und der Cronjob erweitert wird.
cd /usr/local/bin
Kopie anlegen:
cp -up backup.sh mailbackup.sh
Ändern der Konfiguration, sodass nur noch die Mails gesichert werden:
vi mailbackup.sh
Den beiden Einträge anpassen:
ZUSICHERN=/var/spool/cyrus/mail/
PREFIX="mailsicherung"
und evtl. DEL_OLD_BACKUP und KEEP_BACKUP_DAYS anpassen.
Cronjob:
vi /etc/cron.d/backup
Eine neue Zeile hinzufügen, sodass das File nun folgendermaßen aussieht:
0 2 * * 3 root /usr/local/bin/backup.sh > dev/null
15 1 * * * root /usr/local/bin/mailbackup.sh > dev/null

Version vom 15. Oktober 2009, 18:25 Uhr

Einleitung

Hier soll ein komfortables Backup-Script vorgestellt werden, das vollautomatisch regelmäßige Backups anfertigt. Herz des Backup-Scriptes ist rsync (http://de.wikipedia.org/wiki/Rsync). Das Script sichert nicht bei jedem lauf erneut alle Files, sondern nur geänderte bzw. neue Files. Dabei kommt aber nicht ein Vollbackup und weitere Incrementelle Backups zum Einsatz, wie bei vielen anderen Backuplösungen. Vielmehr enthält jedes neu angelegte Backup alle Files. Was zunächst wie ein Widerspruch aussieht, wird durch sog. Hardlinks im Dateisystem möglich.

Optional ist es möglich eine Festplatte, deren Netzteil an der → Schaltbaren Steckdosenleiste angeschlossen ist, für das Backup automatisch ein- und danach wieder auszuschalten. Desweiteren besteht die Möglichkeit, Remote-Systeme via ssh-Verbindung verschlüsselt zu sichern.


Voraussetzung

  • EXT2- oder EXT3- formatierte zusätzliche USB-Festplatte oder USB-Stick.
  • Optional: → Schaltbaren Steckdosenleiste zum automatischen ein- und ausschalten der Backup Platte


Installation

Installation von rsync:

apt-get install rsync

Download des Backup-Scripts:

cd /usr/local/bin
wget ftp://download:download@schiele.homelinux.org/debian/backup.sh
chmod +x backup.sh


Konfiguration

Die Konfiguaration des Scriptes erfolgt am Beginn des Files:

vi /usr/local/bin/backup.sh
#-----------------------Konfiguration-------------------
#SIS-PM Schaltbare Steckdosenleiste
SIS_PM_USE=1
SIS_PORT=4

#Automount
AUTO_MOUNT=1

#Destination Device
DEST_DEVICE=/dev/sdc1

#Verzeichnis, in dem die ganzen Sicherungsdaten liegen
BASISDIR=/usr/shares/backup

#LOGFILE
LOGFILE=/var/log/backup.log

#Zu sicherndes Verzeichnis (Syntax: host:/path)
ZUSICHERN=localhost:/

#Von der Sicherung auszuschließen
EXCLUDE=( "/dev/*" "/sys*" "/proc/*" "/mnt/*" "/media/*" )

#Prefix der Sicherungen 
PREFIX="vollsicherung" 

#Alte Backups löschen:
DEL_OLD_BACKUP=0
KEEP_BACKUP_DAYS=30
#-----------------------------------------------------
  • Falls eine → Schaltbare Steckdosenleiste vorhanden und eigerischtet ist, kann eine daran angesteckte externe USB-Festplatte automatisch vom Script angesteuert werden. Die betreffende Steckdose wird eingeschaltet, die Festplatte gemountet, das Backup durchgeführt und anschließend die Festplatte wieder unmounted und abgeschalten. In diesem Fall wird der Eintrag SIS_PM_USE=1 gesetzt. Mit dem Eintrag SIS_PORT wird die Nummer der Steckdose bestimmt, an dem das Netzteil der USB-Platte hängt.
  • Falls die Festplatte nicht permanent ins Dateisystem eingebunden ist, z.B. weil diese nur für das Backup entweder manuell oder automatisch mittels SISPM eingeschaltet wird, kann die Festplatte für die Dauter des Backups ins Filesystem eingehängt werden. Dies erfolgt, falls der Eintrag AUTO_MOUNT=1 ist. Gemounted wird dabei die Festplatte DEST_DEVICE. Dies ist die Device-Bezeichnung, die die externe USB-Festplatte zugewiesen bekommt, nachdem diese eingeschaltet wurde. Diese Device-Kennung läßt sich relativ einfach herausfinden, indem in einem Putty-Fenster der Befehl "tail -f /var/log/kern.log" eingegeben wird, und die Platte dann an den USB-Port gehängt und eingeschaltet wird. Der Kernel wird die Platte erkennen und dann einige Ausgaben im Puuty-Fenster ausgeben. Diese enthalten unter anderem die Device-Kennung. Ausgabe z.B. "sd 6:0:0:0: [sdc] Write Protect is off" => DEST_DEVICE=dev/sdc1 (erste Partition der Festplatte sdc).
  • BASISDIR bezeichnet das Verzeichnis, unter dem die Backups abgelegt werden. Die mit Hilfe der Einstellung AUTO_MOUNT eingebundene Festplatte, wird in dieses Verzeichnis gemounted, und darauf dann die Backups angelegt. Falls die Ziel-Festplatte permanent im Dateisystem verankert ist, hier den entsprechenden Pfand angeben.
  • Nach dem Bakup ist es möglich, alte Backups zu löschen. Dadurch wird das Backup-Archiv nicht unnötig groß. Dies schafft Übersicht und spart Speciherplatz.Mit DEL_OLD_BAKCUP kann das automatische Löschen alter Backups aktiviert (1) oder deaktiviert (0) werden. Mit dem Eintrag KEEP_BACKUP_DAYS wird bestimmt, wieviel Tage lang alte Backups aufbewahrt werden sollen. Z.B. hier 30 Tage lang. Ältere Backups werden gelöscht.
  • ZUSICHERN gibt das zu sichernde Verzeichnis im Format Host/Verzeichnisdas an. Sämtliche darunter liegenden Files und Directories werden rekursiv gesichert. ZUSICHERN=localhost:/ ergibt ein Vollbackup des Rechners (mit Ausnahme der ausgeschlossenen Files und Directories: siehe EXCLUDE).
  • EXCLUDE enthält eine Auflistung aller auszuschließenden Files und Ordner. Standardmäßig sind dies EXCLUDE=( "/dev/*" "/sys*" "/proc/*" "/mnt/*" "/media/*" ), da diese Ordner Lesefehler beim Backup verursachen würden und beim Rechnerneustart ohnehin automatisch neu erstellt werden (/dev/ , /proc/ , /sys/) bzw. in /mnt/ und /media/ andere Dateisysteme wie z.B. CD-Roms oder USB-Sticks gemounted werden.
  • PREFIX bestimmt den Namen der Backups. Die Backups werden nach folgendem Schema benannt: PREFIX-Datum_Zeit. Z.B. für PREFIX=vollsicherung: vollsicherung-2009-04-23_02:00 für ein Backup am 23.04.2009 um 2:00 Uhr.


Test

Hinweis: Beim ersten Start des Backup-Scriptes kann es sehr lange dauern, bis dieses fertiggestellt ist. Dies liegt daran, dass rsync beim ersten Start, sämtliche Files kopieren muß. Bei den folgenden Backup-Läufen werden nur noch geänderte bzw. neue Files übertragen, so dass diese dann schneller durchlaufen. Während das Backup läuft, darf das Putty-Fenster nicht geschlossen werden, da ansonsten das Backup abgebrochen wird.
/usr/local/bin/backup.sh


Optional: Regelmäßiges Backup

Um das Backups regelmäßig durchzuführen, wird ein Cron-Job eingerichtet. Dies macht natürlich nur Sinn, wenn die Zielfestplatte entweder permanent im Dateisystem verankert ist, oder die Festplatte automatisch mittels Debian_SisPM eingeschaltet wird.

vi /etc/cron.d/backup

Einen neuen Eintrag erzeugen, z.B. für ein wöchentliches Backup am Mittwoch (=Wochentag 3) um 2.00 Uhr nachts.

0 2 * * 3 root /usr/local/bin/backup.sh > dev/null