Markus Hold: MySQL backup über cronjob?

Hallo, ich bin auf der Suche nach einem Programm welches mir ein Backup meiner SQL Datenbank automatisch erstellen kann.

Ich möchte es im Format wie ich es über phpMyAdmin exportieren kann (sql dump) speichern und zwar so, dass es mir auf meinem linux rechner eine Datei auf Filesystemebene anlegt die mit datum.sql lauten soll. Bin zwar auch schon über ein paar tools gestolpert, war aber noch nicht das richtige dabei, hat mir jemand nen Tipp?

Vielen Dank, grüsse!

  1. Hallo,

    schau dir mal bitte das hier an:

    http://tutorial.riehle-web.com/scripts/#mysql

    oder eben das hier:

    http://www.tutorials.de/tutorials221970.html

    Gruß,
    VampierGirl

    1. Hi, hm geht es nicht auch auf dem weg mysqldump [options] --all-databases? Wäre das nicht über diesen Weg möglich bzw. weniger Fehleranfällig?

      Hallo,

      schau dir mal bitte das hier an:

      http://tutorial.riehle-web.com/scripts/#mysql

      oder eben das hier:

      http://www.tutorials.de/tutorials221970.html

      Gruß,
      VampierGirl

      1. Moin!

        Hi, hm geht es nicht auch auf dem weg mysqldump [options] --all-databases? Wäre das nicht über diesen Weg möglich bzw. weniger Fehleranfällig?

        Mysqldump ist ganz ohne Frage das zu bevorzugende Tool, wenn man Kommandozeile hat.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
        1. sodele habs:

          ##!/usr/bin/ksh

          Erstellt ein Backup der mySQL Datenbanken

          die dann später mal wieder importiert werden können

          (Dieses script wird automatisch täglich durch crontab ausgeführt!

          Aktuelles Datum für Dateinamen setzen

          (Wochentag --> 1=Mo, 7=So, d.h. 7 Backups pro Woche, danach wird wieder überschrieben)

          date=date +%u

          Backup Database: (only tables)

          mysqldump -d --add-drop-table --user=MYSQLUSER --password=KENNWORT DB >/home/www/web/backup/tables_$date.sql

          Backup Database: (only data)

          mysqldump -t -a -C -c --user=MYSQLUSER --password=KENNWORT DB >/home/www/web/backup/data_$date.sql

          1. Hi,

            (Wochentag --> 1=Mo, 7=So, d.h. 7 Backups pro Woche, danach wird wieder überschrieben)

            date=date +%u

            Backup Database: (only tables)

            mysqldump -d --add-drop-table --user=MYSQLUSER --password=KENNWORT DB >/home/www/web/backup/tables_$date.sql

            Backup Database: (only data)

            mysqldump -t -a -C -c --user=MYSQLUSER --password=KENNWORT DB >/home/www/web/backup/data_$date.sql

            das ist schon ganz gut. Aber bei großen Datenbanken empfiehlt sich - auch wenn es länger dauert - eine gleichzeitige Kompression.

            Ich mache das immer so:
            mysqldump --opt -u[username] -p[password] --all-databases|gzip -c > /tmp/mysql.sql.gz

            Gruß
            Reiner

            1. echo $begrüßung;

              Ich mache das immer so:
              mysqldump --opt -u[username] -p[password] --all-databases|gzip -c > /tmp/mysql.sql.gz

              Das Passwort in die Kommandozeile zu schreiben ist keine so tolle Idee, da man das beim Anzeigenlassen der Prozessliste (ps) angezeigt bekommt. Besser ist es, das Passwort in eine ini/cfg-Datei für den ausführenden User zu schreiben. Diese Datei lässt sich mit entsprechenden Rechten vor neugierigen Blicken sichern.

              echo "$verabschiedung $name";

              1. Hi,

                Das Passwort in die Kommandozeile zu schreiben ist keine so tolle Idee, da man das beim Anzeigenlassen der Prozessliste (ps) angezeigt bekommt. Besser ist es, das Passwort in eine ini/cfg-Datei für den ausführenden User zu schreiben. Diese Datei lässt sich mit entsprechenden Rechten vor neugierigen Blicken sichern.

                in meinem Fall nicht notwendig, weil das ein Server ist. Da gibt es keine User, die sich per ps die Prozesse raussuchen. Bei einem Einbruch kann das natürlich ein Problem sein. Aber dann kommt die Person sicher auch an das File dran.

                Gruß
                Reiner