Backup Skript

  • Code
    1. mysqldump Datenbank-Name | gzip > mysqldump Datenbank-Name.sql.gz

    danke erst mal für deine Hilfe bin dafür echt dankbar nun hbe ich da noch eine frage hoffe ich nerve nicht ;(

    mit den Befehl kann ich ja die Datenbank backup machen alles gut nun möchte ich aber drei Datenbanken sichern alles gut und schön.

    den würde er mir die 3 in einer .sql.gz datei machen möchte aber das er in drei erstellt würde das auch gehen in einer zeile als Befehl?


    Habe das zurzeit noch so


    Code
    1. mysqldump -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE_DB| gzip > $BACKUPDIR/${MYSQL_DATABASE_DB}_${FILEDATUM}.sql.gz
    2. mysqldump -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE_DAEMON| gzip > $BACKUPDIR/${MYSQL_DATABASE_DAEMON}_${FILEDATUM}.sql.gz
    3. mysqldump -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE_PANEL| gzip > $BACKUPDIR/${MYSQL_DATABASE_PANEL}_${FILEDATUM}.sql.gz

    hast du da ne idee oder geht das nur durch den Code von mir und garnicht anderes ?

  • Ich hab hier ein bash-Fragment, mit dem du all DBs sichern kannst.


    Das ist schon recht alt - heute gibt s sicher noch mehr DBs, die mit geeigneten Parametern spezill gesichert werden können (--events, --routines, --skip-lock-tables etc)


    Aber sicher mal ein Start, um drauf aufzubauen und mit deinem Ansatz kombinieren...


    /J

  • Joximu hat Dir ja bereits ein Beispiel-skript gemacht. Alternativ kannst Du auch sowas machen:


    Für jede DB ein separates File:

    Code
    1. for db in datenbank1 datenbank2 datenbank3 ; do
    2. mysqldump $db | gzip > ${db}.sql.gz
    3. done

    Alle DBs in ein File:

    Code
    1. for db in datenbank1 datenbank2 datenbank3 ; do
    2. mysqldump $db
    3. done | gzip > databases.sql.gz
    4. # Oder:
    5. mysqldump --databases datenbank1 datenbank2 datenbank3 | gzip > databases.sql.gz

    Einzeiler sind ja schön und gut, aber lesbar sollte es noch sein ;-) Das lernst Du spätestens dann, wenn Du mal Perl- oder PHP-Code lesen und verstehen musst :D


    Es gibt aber, wie bereits von Joximu angedeutet, spezielle Tabellen, die man noch separat sichern kann. Jetzt kommt es darauf an, was Du da gerne hättest bzw. was Dein Ziel list.


    Auch ist MySQL-Dump an und für sich bereits ein sehr mächtiges Tool. Schau auch mal die Ausgabe folgender Befehle an:

    Code
    1. mysqldump --help
    2. # oder:
    3. man mysqldump

    Grundsätzlich kannst Du auch den bequemen Weg gehen und alles in einmal sichern:

    Code
    1. mysqldump --add-drop-database --all-databases

    Du siehst, Du hast hier zig Varianten zur Verfügung. Insbesondere solltest Du noch darauf achten, dass MySQL-Dump weitere Optionen zur Verfügung hat, wie zum Beispiel "--add-drop-database". Das siehst Du alles in der Hilfe bzw. Man-Page.

    Edited once, last by fluser ().