Perl Backup mit MySQLDumper

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hier habe ich eine Anleitung erstellt wie man per Perlscript und dem MySQLDumper Zeitgesteuerte DB- Backups erstellen kann.
    Eine sehr gute Möglichkeit Datenbank- Sicherungen zu erstellen ist das PHP-Progamm MySQLDumper. Hier kann man sogar einen SQL_Browser verwendet werden um Einträge zu bearbeiten.

    In diesem Thema geht es aber speziell um Backups per Perlscript. Wer kennt dass nicht, die DB Sicherungen werden vernachlässigt und wenn man dann doch eine braucht liegt die letzte sehr weit zurück. Bei Foren sehr Ärgerlich, da hier viele Beiträge/Themen und neue Mitglieder fehlen.

    Die Wiederherstellung mit Backups per ACP im WBB3 hat bei mir noch nie Fehlerfrei geklappt und muss auch Manuell jedesmal gestartet werden. Daher verwende ich für diese Arbeiten nur das Programm MySQLDumper.

    Bei mir habe ich ein Perlscript eingerichtet, dass alle 6 Stunden alleine ein Backup erstellt und mir eine Benachrichtigung Email zukommen lässt. Das mit der Mail muss im Programm unter Einstellungen erst eingerichtet werden. Für mein Server "Linux Lenny" musste ich hier allerdings diesen Eintrag verwenden, damit Emails gesendet werden können "/usr/sbin/sendmail -t -oi -oem".

    1. In der Konfigurationseinstellung musst man die Datenbank bestimmen wo das Backup ausgeführt werden soll, in meinem Beispiel Bild habe ich den Datenbankname ersetzt. Hier bekommt man die Anzeige der Datenbank die es gibt. Man kann hier Multidump auswählen oder einfach alle, das Multidump muss gesondert in einem anderem Bereich der Konfiguration bestimmt werden, also angaben weder Datenbanken die gesichert werden sollen.



    2. Kick auf Backup und dann auf Backup Perl. Hier ist für uns die letzte Zeile mit dem rotem Pfeil wichtig. Dort findet man schon vorgefertigt den Pfand der für uns wichtig ist, der komplett kopiert werden kann.(In meinem Bild habe ich dort Bereiche übermalt, da diese Vertrauliche Daten beinhalten.)

    [Blockierte Grafik: http://s11.directupload.net/images/091223/8g86idr7.jpg]

    3. Diesen Code kann man schon mit Putty im Terminal testen und hier wird ein Backup erstellt und im Ordner Woker/Backup bereit gestellt, was man auch im Programm anwählen kann.

    4. Jetzt benötigen wir ein Crontab, Zeitgesteuerte Aufgaben. Entweder per Crontab-e im Terminal erstellen oder mit Webmin lässt sich dieses sehr einfach einrichten.

    Info bezüglich des Crontab:
    crontab -e für =>Crontab Confixx
    Pico /etc crontab =>Crontab System
    Beispiel einer Crontab:

    #M S T M W Befehl
    5 * * * * /usr/bin/message.sh
    */5 * * * * /usr/bin/message.sh
    59 23 * * 0 cp /var/log/messages /log/backup/messages
    0 0 * * * cp /var/log/syslog /log/backup/syslog
    20,30 1 * * 1-5 /usr/bin/work.sh

    Der erste Befehl (beginnend mit 5…) wird 5 Minuten nach jeder vollen Stunde,
    der zweite alle 5 Minuten (die Schrittweite wird durch */Schrittweite angegeben),
    der dritte einmal pro Woche sonntags um 23:59 Uhr, der vierte täglich um 00:00 Uhr
    und der fünfte montags bis freitags jeweils um 01:20 und 01:30 ausgeführt. Cron bietet noch mehr
    Funktionen, die bei den unten genannten Weblinks eingesehen werden können.

    Die Struktur ist also wie folgt zu verstehen:

    * * * * * auszuführender Befehl
    - - - - -
    ¦ ¦ ¦ ¦ ¦
    ¦ ¦ ¦ ¦ +---- Wochentag (0-7) (Sonntag =0 oder =7)
    ¦ ¦ ¦ +------ Monat (1-12)
    ¦ ¦ +-------- Tag (1-31)
    ¦ +---------- Stunde (0-23)
    +------------ Minute (0-59)


    So vergisst man in Zukunft keine DB- Sicherungen mehr. Bei mir startet eine Sicherung immer um 3:00 Uhr Morgens, - um 9:00 Uhr Morgend, -um 15:00 Uhr Nachmittags und um 21:00 Uhr Abends, dann wieder holt sich das jeden Tag erneut. Ich habe mir das etwas einfach gemacht und Webmin dazu benutzt.

    Oder einfach im Terminal den Befehl "crontab -e" eingeben und den Befehl mit dem kompletten Pfade aus MySQLDumper benutzen.

    Quellcode

    1. 0 3,9,15,21 * * * perl /xxxx/xxxx/xxx/xxxx/xxxxx/msd_cron/crondump.pl -config=mysqldumper -html_output=0


    [Blockierte Grafik: http://s10.directupload.net/images/091224/eyzsgk2a.jpg]

    Stop wir sind noch nicht fertig..... :D

    Dadurch dass man jeden Tag 4 neue DB- Sicherungen hat, kommt mit der Zeit hier schon einiges zusammen, daher habe ich meine auf 100 Sicherungen eingeschränkt. Das kann man sehr gut im Programm einstellen, dass immer neue Backups gespeichert werden, aber alte gelöscht werden wenn die 100 überschritten wird. Die Anzahl kann man uneingeschränkt selber bestimmen.

    [Blockierte Grafik: http://s11b.directupload.net/images/091223/mu7brkwq.jpg]

    Hoffe ich konnte hier eine gute Lösung bereit stellen.

    In meinem nächsten Thema werde ich eine Anleitung schreiben wie man jede Nacht ein Backup von Server inkl. Home Verzeichnis erstellen kann. So konnte ich es einrichten das mein Forum und bereiche des Servers jede Nacht um 2:00 Uhr gesichert werden, denn es bringt nichts wenn man Aktuelle DB- Sicherungen hat und die PHP- Sicherungen veraltet sind.

    Dieser Tipp ist aber nur für Leute gedacht die einen eigenen Server Administrieren.

    Gruß Gero

    9.125 mal gelesen