Seite 1 von 1

Cronjob: MySQL Exportieren und Importieren

Verfasst: 18.10.2006, 15:51
von cbatik
Hallo!

Ist es technisch möglich, mittels Cronjob einen MySQLDump zu erstellen und diesen Dump dann automatisch in eine andere MySQL-Datenbank auf einen anderen Server zu importieren. Das heisst: Vom Server1 soll die Datenbank1 täglich auf den Server2 als Datenbank1 importiert und gespeichert werden.

Ist das generell möglich und wenn ja wie?

Danke im Vorhinein und beste Grüße
Christoph

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 18.10.2006, 18:53
von twitch
na klar!
Mach ich auch bei manchen Sachen...

z.B. mit PERL oder PHP...

perl:
# Alle Databases dumpen
system("/usr/bin/mysqldump --all -e -l --add-drop-table --host=$host --user=$user --password=$passwort $dbname > $dir/fullbackup_$datum_zeit.sql") == 0 or &error("Konnte Dump nicht anlegen!");

# Zurückspielen:
system("mysql -e \"source /pfad-zur-datensicherung/datensicherung.sql\" datenbank=);

Schau mal in der MySQL-Doku, was mysqldump alles kann. Da kannst du einiges mit machen...

Cronjobsuche: Täglich Datenbanken / Verzeichnisse sichern

Verfasst: 18.10.2006, 19:06
von ghostrider123
Hi @ll,

ich häng mich mal an diesen Thread dranne, weil es ja um Cronjobs geht. Leider hab ich damit keine Erfahrung, wie man das am besten Codet, sorry.

Also ich würde folgenden Cronjob bzw. einzelne Cronjobs benötigen:

- Datenbanksicherung mit komprimierung (gzip) oder was auf dem Server möglich ist.

- Sicherung eines bestimmten Verzeichnisses auf dem Server inkl. Unterverzeichnisse und enthaltene Dateien inkl. Rechte-Beibehaltung

- Versand dieser Sicherung an externe Emailaddy unter folgender Dateikonvention:

Backup_zuübernehmenderName_Datum_Uhrzeit

können einzelne Cronjobs sein oder ein gesamter.

Wäre nett, wenn er mit Erläuterung zum Code wäre, damit man ihn ggfs. anpassen kann.

Vielen Dank schon mal im Voraus für Eure Hilfe.

Verfasst: 18.10.2006, 19:09
von cbatik
Danke schon einmal für die Antworten. Das Coding in PHP würde mich sehr interessieren. @twitch: Hast Du das auch in PHP bzw. weisst Du wie das zu schreiben ist (bin leider nicht so fit in PHP)?

Danke
Christoph

Verfasst: 19.10.2006, 18:14
von godzilla
Naja, in PHP das selbe in grün :-)
man könnte auch exec() verwenden.

Verfasst: 20.10.2006, 08:44
von Outman
Hallo Leute,

schaut Euch einfach mal das Tool an: https://www.php-space.info/scripte/date ... utine.html

Gruß Nico

Verfasst: 20.10.2006, 13:01
von busTa
Hm wie sind die beiden Server verbunden? Kann der eine aufs Dateisystem von dem anderen rauf?

Ansonsten schonmal:

Code: Alles auswählen

mysqldump -u benutzer -p DATENBANKNAME > datenbank-dump.sql
Das erzeugt dir die Datei "datenbank-dump.sql" mit dem Inhalt der Datenbank "DATENBANKNAME".

Jetzt mußt du sehn, wie du die Datei auf den anderen Server bekommst.

Da dann:

Code: Alles auswählen

mysql -u benutzer -p < datenbank-dump.sql
Importiert die die Datenbank von Server1.

Verfasst: 20.10.2006, 13:45
von sean
die "System" Funktion wird bei vielen Hostern abgeschaltet aus Sicherheitsgründen.

Gruß

sean

Verfasst: 20.10.2006, 13:56
von cren
Wenns über system() oder exec() nicht geht, dann mal als Bash-Script über die CGI-Schnittstelle probieren ;)

Ungefähr so:

Code: Alles auswählen

#!/bin/bash

cd /www/htdocs/verzeichnis

FILENAME="`date +backup_db_%d%m%Y`_dump.sql"
mysqldump -h localhost -u deindatabaseuser --password=deindatabasepassword deindatabasename >$FILENAME --add-drop-table
gzip -9 $FILENAME
rm $FILENAME
Da wirds auch gleich mit gezippt :)

Verfasst: 20.10.2006, 14:20
von Outman
sean hat geschrieben:die "System" Funktion wird bei vielen Hostern abgeschaltet aus Sicherheitsgründen.

Gruß

sean
Deswegen mein Linktipp^^

Gruß Nico