|
The more I see, the more I know
The more I know, the less I understand |
|
|
||
|
BackupSpaetestens nach den ersten komplett verlorenen Daten, ueberlegt man sich ein Backup. Traditionell wurden die auf Tape gesichert, bei heutigen Datenmengen sind aber Tape Laufwerke relativ teuer und kaum fuer den privaten oder Small Office bereich einsetzbar.
Hier bietet sich die Sicherung auf einen anderen Backup Rechner (im Lan oder Netzwerk) oder auf eine externe Festplatte an. Festplatten mit 250 GB und Firewire/USB Schnittstelle bekommt man schon "relativ guenstig".
Den Abgleich der Daten kann man unter Linux gut mit rsync vornehmen, das bei jeder Distribution enthalten ist. rsync uebertraegt nur geaenderte Dateien bzw. von einer Datei auch nur den Bereich, der sich wirklich geaendert hat. So kann man selbst Datenbestaende von > 50GB relativ locker ueber eine DSL Leitung sichern.
[Anmerkung: freshmeat.net/projects/storebackup/ sieht sehr interessant aus]
Beispiel 1)rysnc hat eine relativ einfache Syntax. Mit folgendem Beispiel habe ich z.B. gerade von meinem Rechner in Deutschland (mit dem eine VPN Verbindung besteht) mir das Verzeichnis "kbarcode" nach Hause geholt:
rsync -a -z -v --rsh="ssh" --stats --progress stonki@192.168.1.145:/home/stonki/kbarcode /home/stonki/kbarcode
Die Option "-a" bedeutet, dass ein komplettes Backup erstellt werden soll, "-z" komprimiert die Daten, "-v" steht fuer verbose", "--rsh=ssh" sagt, dass die Verbindung ueber einen SSH Tunnel erfolgen soll, "--stats" und "--progress" geben Auskunft ueber die Aktionen. Anschliessen folgt mit "stonki@192.168.1.145:/home/stonki/kbarcode " der Teil von dem Quell Rechner. In diesem Fall melde ich mich also an den Rechner mit der IP "192.168.1.145" mit dem User Namen "stonki" an und will das Verzeichnis "/home/stonki/kbarcode". Davon getrennt ist dann das Zielverzeichnis, naemlich mein Rechner hier "/home/stonki/kbarcode".
Beispiel 2)In der Firma habe ich folgendes Script auf einem Linux installiert:
#!/bin/sh # directory to backup SDIR=/ DDIR=/backup/ BACKUPDIR=$(date '+%A')
# mkdir /$DDIR/$BACKUPDIR rsync -a -z -v --rsh="ssh -i /root/key" --stats --progress --exclude-from=/root/ backup.exclude --delete root@www.stonki.de:/$SDIR $DDIR/$BACKUPDIR
Dieses Script wird per Cron nachts aufgerufen und sichert ALLE Dateien von www.stonki.de, mit ausnahme der Verzeichnis die in der Datei "/root/backup.exclude" stehen. Das koennen z.B. /proc/ oder /tmp sein. Die Besonderheit ist hier, dass der Wochentag beruecksichtig wird. Ich lege pro Wochentag ein Verzeichnis auf dem Backup Rechner an. So liegen mir von www.stonki.de die Backups der letzten 7 Tage vor.
Anmerkung: Automatisches EinloggenNun soll dieses Script sich ja selbststaendig in den anderen Rechner einloggen, also ohne Eingabe des Passwortes. Dabei kann man SSH Anweisen, einen Schluessel zu verwenden.
Auf Rechner 1:
database:~ # ssh-keygen -t rsa -f key -N "" Generating public/private rsa key pair. Your identification has been saved in key. Your public key has been saved in key.pub. The key fingerprint is: xx:yy:xx:xx:xx:xx:xx:xx:76:64:14:20:62:f7:79:6f root@database
Danach auf dem Zielsystem die Datei ".ssh/authorized_keys" in dem HomeDir des verwendeten Users einloggen (also z.B. /root/.ssh/authorized_keys). Dort den Inhalt von "key.pub" eintragen (Achtung in eine Zeile). Nun kann man mittels "ssh -i key <domain>" mit dem Rechner verbinden. (Achtung: beim ersten Start muss man einmal den Host bestaetigen)
Diese Methode hat jedoch den Nachteil, dass der Key ungeschützt auf der Platte liegt, eine andere Möglichkeit beschreibt die SuSE FAQ hier: suse-linux-faq.koehntopp.de/q/q-ssh-without_passwd.html
|
|