Skip to content
iphone 3G S

!!updated!!! MYSQL Backup BASH-Skript

Das skript macht Backups beliebig vieler Datenbanken und löscht Backups die älter als TAGE sind.

Ich hab die vorherige Version überarbeitet.
Die neue Version (0.2) ist wesentlich eleganter.

Backup Skript:

  mysqlbackup (1.4 KiB, 1,749 hits)

Konfigurationsdatei:

  mysqlbackup.cnf (1.1 KiB, 1,164 hits)

Naja prinziepell ist dieses MYSQL-Backub Skript einsatzfähig, jedoch ist das mit dem Passwort etwas unelegant!
Jemanden einen Vorschlag.

Denke die Sache mit dem Passwort ist so gut gelöst.
Das Passwort steht nicht im Script und stattet man die Konfigurationsdatei(hier steht das pw) mit den richtigen Zugriffsrechten aus , kann es von keinem anderen Benutzer eingesehen werden.
$ chmod 600 mysqlbackup.cnf
Eignet sich übrigens gut als Cronjob ( /etc/crontab )

10 0 * * * root mysqlbackup db1 db2 db3| mail -s "MYSQL Backup Status - domain.de" admin@domain.de


Mobile Navigation von NAVIGON

8 Kommentare

  1. Kann sein, dass ich da was mit Oracle verwechsle, aber wenn Du einen Account einrichtest, der sich nur von localhost connecten kann, könnte der auf ein Passwort verzichten. Das Drumherum muss natürlich unter Deiner Kontrolle sein und der Rest des Rechners entsprechend gehärtet.

    Ich könnte mich auch täuschen, wie gesagt.

    Posted on 13-Feb-08 at 10:40 pm | Permalink
  2. also ich würde auf keinesfalls auf ein PW verzichten egal welche Konfiguration du hast. Ohne Pw ist es immer unsicherer als mit. Man weiß ja nie was passiert!

    Posted on 17-Feb-08 at 9:17 pm | Permalink
  3. Helge

    Passwort kann nicht schaden und macht in einer Multiuserumgebung mit gemeinsamen MySQL-Server, wie bei den meisten Webhostanbietern üblich, absolut Sinn.

    Posted on 22-Feb-08 at 12:07 am | Permalink
  4. Buxul

    Warum nicht einfach in der my.cnf den Abschnitt [mysqldump] füllen?:

    [mysqldump]
    quick
    quote-names
    max_allowed_packet = 16M
    user=backup
    password=xxx

    Dann benötigt man beim Aufruf von mysqldump kein Passwort. Geht aber nur, wenn man Zugriff auf die my.cnf hat.

    Posted on 16-Jul-08 at 9:56 am | Permalink
  5. AxelK

    Ich habe auf meinem Server ca. 60 Databeses, wie kann man denn am elegantesten ALLE sichern ?

    Posted on 20-Dec-08 at 9:32 pm | Permalink
  6. Lord_Pinhead

    @AxelK
    Indem du deine Datenbanken auflistest und in ein Array schreibst. Beispiel:

    DB=`find /var/lib/mysql -maxdepth 1 -type d | \
    sed -e ’s/\/var\/lib\/mysql//g’ |\
    sed -e ’s/\///g’ | \
    sed ‘/^$/d’ | \
    sed ’s/^/”/g’ | \
    sed -e ’s/$/”/g’ | \
    tr -s ‘\n’ ‘ ‘`; echo “DBS=( $DB )” >> datenbanken.list
    (du kannst die sed auch zusammenfassen)

    In deinem Script einfach via source ./datenbank.list importieren und dann die while schleife mit dem mysqldump das DBS Array abarbeiten. Etwas Shellspaß eben, sollte doch kein Problem sein ;) 60 Datenbanken ist überhaupt kein Problem, wie sehen uns bei 2000 wieder :D

    Posted on 25-Jan-09 at 2:16 am | Permalink
  7. Daniel

    Hallo
    Ich habe ein kleines Problem:

    Ich benutze das Programm und habe ein kleines unter-Script geschrieben in dem mysqlbackup steht und alle meine Datenbanken aufgelistet sind, dieses führe ich mit einem Cronjob aus. Das “| mail -s “MYSQL Backup Status – domain.de”admin@domain.de” seht bei mir nicht im Script.

    Jetzt wusste ich nicht das alle Ausgeben des Cronjobs via E-Mail an den root gesendet werden und habe diese Mails jetzt an mich umgeleitet. (vorher wars “>> mysqlba.log”)

    Jetzt ist aber folgendes: Ich bekomme 23 Mails für ein mal sichern (ich sichere 24 DBs)

    Woran könnte das liegen das ich so viele Mails bekomme?
    Handelt es sich um einen Fehler von cron oder gibt das Script diese Meldungen so oft aus?

    Ich hoffe ich habe das Problem ausreichend beschrieben.(danke auch für den E-Mail Support)

    mfg
    Daniel

    Posted on 02-Sep-10 at 2:35 pm | Permalink
  8. post doch mal dein skript, zb hier oder bei einem nopaste service (zB http://nopaste.info/ ).

    Posted on 02-Sep-10 at 2:41 pm | Permalink

Eintrag kommentieren

Deine Email-Adresse wird weder veröffentlicht noch an Dritte weitergegeben.
Pflichtfelder sind markiert *
*
*