Automatisches Backups bestimmter Datenbanken...

  • Hallo zusammen,


    ich vermute, dass das wieder so ne triviale Frage ist, aber... Wie geht es denn, dass ich mir z.B. einmal wöchentlich den gesamten Inhalt einer Datenbank irgendwo im Filesystem wegschreibe?


    Ich denke ich brauche dafür wieder irgendwie CRON und MYSQL, aber... So recht weiß ich nicht wie (noch nicht).


    Hoffe ihr habt nen schönes Wochenende!
    Benny


    //EDIT:
    Wahrscheinlich wäre es das sinnvollste den SQL-Befehl in eine Skritp-Datei zu schreiben und diese dann einmal wöchentlich aufzurufen, richtig? Es wird auch jeweils nur das Backup der letzten Woche benötigt, also kann man die "Backup"-Datei getrost überschreiben.
    Könnte man in dieses "Skript" dann auch mehrere Tasks einbauen, die wöchentlich gefahren werden sollen? (Backup eines Ordners [macht man wohl am besten mit tar?] im FS z.B.) Oder ist es sinnvoller dafür mehrere Skritpe zu haben?


    Wollte mich nochmal bedanken, ohne Euch würde mir das alles viel schwerer fallen!

  • Hi,


    im Prinzip ist es fast sinnlos ein Backup auf dem Server zu machen ;)


    Also entweder anderer Server/Webspace und/oder du kannst dir das ganze per Mail zuschicken lassen (Wobei das Postfach wiederum nicht auf dem Server liegen sollte ;) ).


    Wenn der Server nämlich down ist, ist es zu spät;)


    Ein Ansatz von so einem mysql2mail Script hab ich kurz rausgesucht[1].


    Gruß,


    Stefan


    [1] hier

  • Hierfür eignet sich mysqldump.


    Code
    man mysqldump


    zeigt was für schöne Dinge mit mysqldump alles angestellt werden können.


    Wie mein Vorredner angemerkt hat, die Daten sollten in jedem Fall noch einmal extern gespeichert werden. Zumindest solange wie es unser Rettungssystem noch nicht gibt ;)

  • Servus,


    ich hab das Skript jetzt mal manuell ausgeführt, und es funzt super, aber.... Ich bin wieder etwas zu schwer von Begriff um das ganze per Cron zu starten :/


    Könnte mir da nochmal jemand kurz unter die Arme greifen? Muss ich das ins Crontab für den User root schreiben? Oder für nen speziellen? (am liebsten wäre mir es würde vo root ausgeführt, wenn das nicht toal doof ist).


    Grüße,
    Benny

  • Hi,


    auf dem Entwicklungsserver in der Firma habe ich folgendes stehen:

    Code
    10 03 * * 1-5 root /usr/local/bin/automysqlbackup.sh

    Da wird Mo-Fr von um jeweils 03:10 das Backup ausgeführt.


    Auf einem Produktionsserver wäre eher eine tägliche Sicherung sinnvoll:

    Code
    10 3 * * * root /usr/local/bin/automysqlbackup.sh


    Viele Grüße
    Sven

  • Zitat von [netcup] Oli;578

    Sollte wohl so heißen:


    Code
    10 3 * * * root /usr/local/bin/automysqlbackup.sh


    Natürlich! Verdammt, da waren die Finger wieder schneller als das Hirn ;)

  • Hallo Sven,
    danke für die Antwort.



    1-5 heisst dann soviel wie Montag-Freitag? Wenn ich dort nur 1 reinischreibe macht er es nur Montags?
    Geht mir nur ums Verständnis DB-Backup stimme ich dir zu, lieber zu oft als zu selten:)

  • Zitat von tux;580

    Natürlich! Verdammt, da waren die Finger wieder schneller als das Hirn ;)


    jetzt bin ich verwirrt und ziehe meine aussage zurück.


    ist es übrigens richtig, dass ich da mit "crontab -e" reinkomme? auch schon direkt als root?
    Bei mir öffnet sich da nämlich irgendwie nen komischer anderer editor (nano).

    Code
    # m h  dom mon dow   command


    und was enspricht denn hier "#"? Dem Tag oder wie? :)

  • Ja, die 1 ist Montag und 7 Sonntag. Mit 1-5 gibst du einen Bereich an.
    Zur der Raute. Alles was dahinter steht wird als Komentar gewertet und vom Interpreter ignoriert.


    Viele Grüße
    Sven

  • Eine Sache wunder mich jetzt nur,
    er sagt immer dass er diese Datei hier nimmt:


    Datei: /tmp/crontab.NUlMus/crontab


    Das passt doch net? Muss ich unter /etc/cron.d/ ne Datei mit dem Namen root anlegen und dann dort eben folgendes eintragen?

    Code
    # m h  dom mon dow   command
    */10 * * * * /home/teamspeak/ts_monitoring.sh >/dev/null 2>&1
    1-7 * * * * root /root/automysqlbackup.sh.2.5
    6 * * * * root /root/dvip_backup.sh


    Das steht im Moment nämlich scheinbar in nem tmp-File, zumindest wird das ts_monitoring nicht gestartet. :/


  • Nicht ganz, es sei denn du möchtest stündlich 7 Backups erstellen.

    Code
    30 3 * * * root /root/automysqlbackup.sh.2.5


    Mach das hier. Also täglich ein Backup, das jede Nacht um 3:30Uhr erstellt wird.