MySQL Backup auf FTP machen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von MF-Scripts, 05.11.2006.

  1. #1 MF-Scripts, 05.11.2006
    MF-Scripts

    MF-Scripts Mitglied

    Dabei seit:
    05.11.2006
    Beiträge:
    30
    Zustimmungen:
    0
    Ich möchte ein Shellscript machen, dass mir jeden Tag meine MySQL Db als *.sql Datei speichert und auf einen FTP Server wo anders sichert.
    Eine Sicherung kann ich ja wiefolgt machen:
    mysqldump -u USER -p PASSWORT DB > db.sql
    Aber wie füge ich das in die Shell Datei ein, dass jede DB gesichert wird und wie kann ich das über FTP auf einen anderen Server übertragen?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 nikster77, 05.11.2006
    nikster77

    nikster77 Routinier

    Dabei seit:
    15.03.2004
    Beiträge:
    307
    Zustimmungen:
    0
    FTP-Verbindung automatisieren:
    http://www.linux-fuer-alle.de/doc_show.php?docid=27&catid=11

    Da du windowser bist google ich mal 5 sek. fuer dich um dir die "helle Seite" der Macht zu zeigen ;)

    Wenn es mehrere DBs sind machst du dir eine for-schleife, erhaeltlich in jedem guten shell-scripting Buch oder Tutorial. ;)
     
  4. #3 MF-Scripts, 05.11.2006
    MF-Scripts

    MF-Scripts Mitglied

    Dabei seit:
    05.11.2006
    Beiträge:
    30
    Zustimmungen:
    0
    Thx. Aber auf dem anderen Server kann ich keine Shellscripts aufrufen. Also muss ich von meinem Server auf den anderen übertragen, also geht das von dir schonmal nicht ;)
    Forschleifen wären kein Problem, aber wie lese ich die ganzen DB namen aus?
     
  5. #4 nikster77, 05.11.2006
    nikster77

    nikster77 Routinier

    Dabei seit:
    15.03.2004
    Beiträge:
    307
    Zustimmungen:
    0
    Wieso soll das nicht gehen?
    Du baust dir .netrc in z.B. /home/ftpbackup wo du auch das Skript hinlegst.
    Der Cron ruft das Script in dem Verzeichnis auch mit /home/ftpbackup/deinscript.sh auf und das Script schiebt den Kram auf den anderen Server.
    Der andere Server tut nichts als die Daten zu empfangen...

    Werden die dynamisch angelegt? wenn die fest sind musst du Sie ja nur einmal eintragen, wenn da immer neue dazukommen musst du dir halt noch ein "Skript" bauen (bzw. in das andere Skript einbauen) das "show databases" ausfuehrt.

    Einfach den Befehl in ein File schreiben:
    -vi bla
    - show databases;
    - wq

    mysql -u <du> -p <deinpass> < bla;

    zeigt alle Datenbanken an , muss man nur noch weiterverarbeiten.
    Das geht bestimmt auch eleganter aber ich bin nicht son mysql'er...
     
  6. #5 MF-Scripts, 05.11.2006
    MF-Scripts

    MF-Scripts Mitglied

    Dabei seit:
    05.11.2006
    Beiträge:
    30
    Zustimmungen:
    0
    Oki, thx :)
    Daraus krieg ich bestimmt was zusammen gebastelt.
     
  7. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Ich hab da schon eine fertige Lösung (allerdings mit PHP und SH)

    Datenbanken dumpen (make_backup.php)
    Code:
    #!/usr/bin/php
    
    <?
    
    /* needed variables */
    $backup_from = "localhost"; // hier deinen DB-Server eintragen
    $db_pass = "dein_db_root_passwort"; // das Root-Passwort für MySQL
    $db_user = "root"; // damit wir an alle DBs kommen, nutzen wir root
    
    /* Daten vom DB-Server lesen */
    
    /* Verbindung aufbauen */
    $connect = mysql_connect($backup_from, $db_user, $db_pass) or die("Couldn't connect to $backup_from!\n");
    
    /* Welche DBs sind vorhanden? */
    $sql = "SHOW DATABASES";
    $data = mysql_query($sql, $connect);
    while($db = mysql_fetch_row($data)) {
            print "Reading $db[0]...\n";
            /* fuer jede DB einen Dump machen */
            system("/usr/bin/mysqldump -h $backup_from -u $db_user -p$db_pass -l -c -v --quote-names $db[0] > databases/$db[0].sql");
    }
    
    /* Verbindung schliessen */
    echo "Closing connection to $backup_from.\n";
    mysql_close($connect);
    
    ?>
    
    Auf FTP-Server verschieben (make_backup.sh)
    Code:
    #!/bin/bash
    
    # PHP-Skript ausführen und damit die Datenbanken dumpen
    /usr/bin/php make_backup.php
    
    # Verzeichnis mit den Dumps komprimieren und auf FTP-Server laden
    tar -cvpz databases | curl -u ftpuser:ftppasswort ftp://mein.backup.server/databases.tgz -T -
    
    Liesse sich sicherlich auch alles in eine Shell-Skript packen, aber ich mag Shell-Skripte nunmal nicht. ;)
     
  8. #7 theborg, 05.11.2006
    theborg

    theborg KBitdefender Programierer

    Dabei seit:
    06.08.2004
    Beiträge:
    688
    Zustimmungen:
    0
    Ort:
    Hamburg
    hm ich nehme dafür mysqldumper und die sicherung mache ich dann per crontab mysqldumper erstelt auch nen passendes script dafür wenn man möchte
     
  9. #8 Wolfgang, 05.11.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Naja, php ist zwar eine Möglichkeit, aber nicht gerade das beste Mittel für die Shell.
    Zu der ftp-Geschichte hatten wir schonmal einen Thread

    Gruß Wolfgang
     
  10. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Vielleicht ist PHP nicht das ideale Mittel für die Shell, aber für MySQL-Handling schon. ;)
     
  11. #10 Wolfgang, 07.11.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Perl wäre hier wohl das Optimum. ;)

    Gruß Wolfgang
     
  12. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Und wo bitte soll der Vorteil von Perl sein?
     
  13. #12 Xanti, 07.11.2006
    Zuletzt bearbeitet: 07.11.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    http://tnx.nl/php

    Gruss, Xanti
     
  14. #13 supersucker, 07.11.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Jo,

    der Artikel und vor allem die weiterführenden Links erklären exzellent warum PHP IHMO eine der meistüberschätzten script-Sprachen ist.

    Der mediale Hype um PHP ist völlig unverständlich wenn man sich PHP mal etwas genauer anschaut.

    Aber es ist halt neuer als Perl, also muss es nach Denkensart vieler Leute "besser" sein.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 MF-Scripts, 07.11.2006
    MF-Scripts

    MF-Scripts Mitglied

    Dabei seit:
    05.11.2006
    Beiträge:
    30
    Zustimmungen:
    0
    PHP ist für kleinere Websites geil und leicht zu erlernen. Aber wenn das dann in große Sachen und Serverdinge geht, ist Perl einfach viel besser. das ist auch der Grund, wieso ich bald mit PHP aufhöre und mit Perl weitermache ;)
     
  17. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Ja schon, aber wo ist der Vorteil von Perl beim MySQL-Handling?
     
Thema:

MySQL Backup auf FTP machen

Die Seite wird geladen...

MySQL Backup auf FTP machen - Ähnliche Themen

  1. MySQL Backup mit LiveCD

    MySQL Backup mit LiveCD: Hallo, habe mir kürzlich mein Filesystem zerschossen, habe nun die betroffene Platte mit Knoppix eingebunden und würde gerne meine Daten...
  2. Mysql: Automatischer backup

    Mysql: Automatischer backup: Hallo wie kann ich mysql per command: mysqldump -u root -p passwort DB > db.sql automatisch laufen lassen? da es trozdem immer das...
  3. Backup Script, verzeichnisse + mysqltable

    Backup Script, verzeichnisse + mysqltable: Hi ich möchte ein Backup Script zusammen schustern, dass dann am besten über die cron laufen soll. 1. USB - Platte mounten: mount /dev/sda*...
  4. MySQL Backup/Rechtesystem

    MySQL Backup/Rechtesystem: ---------- das eigentliche Problem ist: 1. Wird in der Datenbank mysql nur das Rechtesystem gespeichert oder speichert der z.B. auch, welche...
  5. Zwei Fragen zum Mysql Backup

    Zwei Fragen zum Mysql Backup: Hi ich hab zwei fragen die ich leider selber nicht gelöst bekomme 1.) Wie mach ich nen backup von einer DB die an die 200MB gross ist...