Relation Backup und Schlafqualität heute: Mysql

Posted by Daniel on März 28, 2007

Als Administrator, im Sinne von “für die Daten Verantwortlicher”, schläft man im Allgemeinen schlechter als der normale DAU. Nachts schweißgebadet aufwachen, wieder vom großen Daten-GAU geträumt… das muss nicht sein!

Ich will nun ein wenig dazu beitragen, dass all die Adminis da draußen zumindest nicht wegen der Mysql Datenbanken schlecht schlafen müssen und sogar mit “Welche Version willst du denn” reagieren können!

Die Lösung kommt wie so oft in Form eines Sourceforge Projektes, AutoMySQLBackup sichert so oft und so lange man will alle Datenbanken sie man will.
Im meinem Fall will ich alle Datenbanken sichern.
Der User backup bekommt Leserechte auf alle Datenbanken. Dies probiere ich im zweiten Schritt gleich aus.

mysql -u root -p -e “GRANT SELECT, LOCK TABLES ON *.* TO ‘backup’@'localhost’ IDENTIFIED BY ‘geheimesbackuppw’;”
mysqlshow –user=backup –password=geheimesbackuppw

Da AutoMySQLBackup mit dieser Ausgabe noch wenig anfangen kann filter ich die gerade, wenngleich ein wenig “quick and dirty” aber bei mir läuft (Verbesserungen gerne in den Kommentaren), und trage in das Skript ein (an der richtigen Stelle natürlich):

DBNAMES=$(mysqlshow –user=backup –password=geheimesbackuppw | sed ’s/^|[ \t]*//;s/[ \t]*|$//;’ | sed ‘$!N;s/\n/ /’ | sed ‘$!N;s/\n/ /’ | sed ‘$!N;s/\n/ /’ | sed ‘$!N;s/\n/ /’ | sed ‘$!N;s/\n/ /’ | sed ‘$!N;s/\n/ /’ | sed ’s/+-*-+ Databases +-*-+ //;s/ +-*-+//;’)

Fertig ist die (für mich) perfekte Mysql-Backup Lösung, gute Nacht.

ftplicity Howto 2

Posted by Daniel on März 17, 2007

Da ich gerade mal wieder einen neuen Server aufsetze will ich nun auch mal endlich was zu ftplicity schreiben:

Was ftplicity ist sollte den Stammlesern (Hallo Andi) bekannt sein (siehe hier oder hier), wies geht folgt jetzt.

Zunächst braucht man librsync und duplicity

emerge -va duplicity

und ftplicity:

wget ftp://ftp.heise.de/pub/ct/listings/0613-216.tar.gz
tar -xvzf 0613-216.tar.gz
cd ftplicity-1.1.1/
cp ftplicity /usr/local/bin

Einen GnuPG Key benötigen wir auch noch, ich erstelle einen Key extra fürs Backup:

gpg –gen-key

Und dann kanns auch schon losgehen.

ftplicity backup

Nach dem ersten Start werden unter /root/.ftplicity ein paar selbsterklärende Dateien erstellt. Dort muss man z.B. noch den ftp Server einstellen.

Wiederherstellung mit

ftplicity fetch var/www /root/varwwwwiederherstellung 4D

Cronjob: In die Crontab der Wahl muss noch folgendes eingetragen werden. Der zweite Befehl löscht alte Backups monatlich.

00 2 * * * root /usr/local/bin/ftplicity backup
00 4 1 * * root /usr/local/bin/ftplicity full && /usr/local/bin/ftplicity purge –force

Edit: Hab grad noch nen Artikel gefunden der meinem sehr ähnelt, wenngleich ich ihn eben erst gefunden habe… blog.splash.de hat auch ein schönes howto geschrieben.

Rdiff-backup 1.1.5 mit Windows XP und cygwin nutzen 2

Posted by Daniel on Februar 25, 2007

Auf der Suche nach einer flexiblen, freien, unkomplizierten Backuplösung bin ich schon vor längerer Zeit auf rdiff-backup gestoßen. Leider gibts dieses Programm nur für Linux, deshalb hab ich mich nun mal daran gemacht, es unter Windows bzw. cygwin zum Laufen zu bringen.
Wer diese Anleitung befolgt sollte wissen was er tut oder zumindest keine Angst davor haben, alle seine Daten zu verlieren. Es gibt von mir keine Funktionsgarantie. Diese Anleitung funktioniert für mich und sonst kann ich nichts garantieren.

Also: cygwin setup.exe herunterladen und cygwin unter c:\cygwin installieren.
Für rdiff-backup im speziellen brauchen wir: Devel/{autoconf,automake,binutils,gcc,make,patchutils} Interpreters/python Web/wget
Darüber hinaus müssen wir librsync und rdiff-backup selbst kompillieren.

## librsync installieren:
wget http://switch.dl.sourceforge.net/sourceforge/librsync/librsync-0.9.7.tar.gz
tar -xzvf librsync-0.9.7.tar.gz
cd librsync-0.9.7
./configure –prefix=/usr –bindir=/bin –libdir=/lib
make all
make install
## rdiff-backup installieren:
wget http://savannah.nongnu.org/download/rdiff-backup/rdiff-backup-1.1.5.tar.gz
tar -zxf rdiff-backup-1.1.5.tar.gz
cd rdiff-backup-1.1.5/rdiff_backup/
# sehr einfachen patch installieren
wget http://www.17od.com/files/rpath-fsync.patch
patch < rpath-fsync.patch
rm rpath-fsync.patch
cd ..
python setup.py install

FERTIG!

rdiff-backup sollte jetzt verfügbar sein. Zur Anwendung erzähl ich ein anderes mal was…

Zum Schluss möchte ich noch 17od.com und katastrophes.net danken, da ich eigentlich nur kopiert hab…

Update: Seit Verion 1.1.12 ist der Patch laut Andrew Ferguson im July 2007 im FAQ nicht mehr notwendig.
Nach librsync heißt das konkret:

## rdiff-backup installieren:
wget http://savannah.nongnu.org/download/rdiff-backup/rdiff-backup-1.1.14.tar.gz
tar -zxf rdiff-backup-1.1.14.tar.gz
cd rdiff-backup-1.1.14
python setup.py install

Danke den Patchern.

Rsync

Posted by Daniel on Februar 10, 2007

Nur falls jemanden gibt, dem ich damit helfen kann (und wenn ich es irgendwann selbst bin…): “Read from remote host bla.blub.de: Connection reset by peer” muss nicht an der Verbindung liegen!
http://lists.samba.org/archive/rsync/2006-May/015603.html schreibt dazu: “There is a bug in rsync 2.6.8 causing this.”

Die Lösung des Problems: rsync-2.6.9.tar.gz nach /usr/local/bin, entpacken, ./configure (je nach bedarf anpassen), make, make install. Ich hab in meinem Fall /usr/bin/rsync umbenannt und mit nem Symlink auf die Datei in /usr/local/bin/ ersetzt aber man könnte auch direkt nach /usr/bin installieren, je nach Geschmack halt… -> geht wieder! So, jetzt kann mein rdiff-backup endlich ungestört (haha) Daten sichern…

NTFS Hardlinks für “Hard-Link-Backups für Windows” Skript aus c’t

Posted by Daniel on November 18, 2006

Ich nutze seit einiger Zeit das c’t Skript namens rsyncbackup.vbs aus diesem Artikel.
Dieses funktioniert auch wunderbar, nur leider stört es mich, dass der aktuelle Stand immer erst nach einem Blick in das Backup-Verzeichnis verfügbar ist.
Problemlösung: eine schöne Anwendung für Hardlinks mit NTFS.

Theorie dazu: Hardlinks allgemein bei Wikipedia, Wieder Wikipedia aber NTFS, Explorer Erweiterung zur komfortablen Benutzung von NTFS Harslinks.
Tool der Wahl: Junction. Kommandozeilentool zum erstellen von Hardlinks. Der Aufruf erfolgt mit:

junction.exe linkname name

Praktischerweise für meine Anwendung werden bestehende Hardlinks auch enfach ohne Fehlermeldung überschrieben.

Junction hab ich vor allem deshalb genommen, weil ich keine Ahnung habe wie ich mit “fsutil hardlink create” Verzeichnisse linken kann. Hardlinks erkennt man übrigens daran, dass wenn man “dir” eingibt, oder erscheint. Der Unterschied zu Linux Hardlinks besteht zum Beispiel darin, dass WinXP Hardlinks nicht gelöscht werden können, solange darauf zugegriffen wird.

Die Lösung zu oben beschriebenem Problem ist jetzt auch schon nicht mehr spannend: An der richtigen Stelle muss Junction (Junction.exe muss im gleichen Verzeichnis wie rsyncbackup.vbs liegen) aufgerufen werden und den Hardlink anlegen, fertig. Eigentlich sollte ich nur ein wenig über Hardlinks reden.

ftplicity Artikel vom heise security

Posted by Daniel on Oktober 20, 2006

Seitdem ich diesen eigentlich nichtssagenden “Artikel” gepostet habe, landen jeden Tag ein paar Leute per Google auf meinem Blog. Dafür, dass es hier eigentlich garnicht so viel über ftplicity zu sehen gibt, möchte ich mich entschuldigen. Ich bin noch nicht dazu gekommen, einen Artikel, den ich für veröffentlichungswürdig halte, zu verfassen…

Umso besser, dass von heise selbst nun ein Artikel erschienen ist.
Heise Security über ftplicity und duplicity
Lesenswert und eine sehr gute Anleitung wie was funktioniert. Ich setzt ftplicity übrigens immer noch sehr erfolgreich ein.

Dank an c’t für ftplicity

Posted by Daniel on August 24, 2006

Das Backup von Omschallom wird seit ich diesen Artikel gelesen habe mit Hilfe von ftplicity, einem Wrapper-Skript um duplicity, realisiert. Da 1blu eben nur einen ftp-Server zur Verfügung stellt ist Verschlüsslung unerlässlich, gnupg bietet sich an und letztes Argument: Man kann nicht alles selber schreiben, da der Tag ja nur 24h hat…
Kurz zusammengefasst: Das Skript funktioniert wunderbar, nicht nur im “Backupsystem steht, also Disaster spielen” Fall, sondern dank 1blu “durfte” es sich auch einmal in einem ernsten Fall beweisen. Für die großartige Arbeit von c’t und vor allem auch dem duplicity und rdiff-backup Team möchte ich mich an dieser Stelle im Namen der ganzen Omschallom-Community bedanken. Eine Anleitung zu dem Skript gibts auf Anfrage (Kommentar) oder wenn ich mal Lust habe was dazu zu schreiben.