yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb

MySql Datenbanken per Php sichern

Ganz einfach Tabellen aus Datenbanken per PHP sichern und mit Glib-Kompression auf dem Server speichern

MySQL Datenbanken sind wichtige Bestandteile von Homepages. Deshalb sollte man sich nicht auf den Provider verlassen und die Datenbanken selber sichern!
Dazu dient dieses Script:

Zuerst der Quelltext:

PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
$username 
'';#user
$passwort '';#passort
$db_name '';#Name der Dantenbank
$filename date(d.'.'.m.'.'.Y);
$mail '';#deine Email Adresse
$Betreff "Backup der Datenbank $db_name vom $filename";

system('/usr/bin/mysqldump -u'.$username.' -p'.$passwort.' -h localhost '.$db_name.' | /bin/gzip > '.$filename.'.sql.gz'$fp);
if (
$fp==0) echo ''; else echo 'Es ist ein Fehler aufgetreten';
$filename_n $filename.'.sql.gz';
$Header "From: Backup System <$mail>";
$Trenner md5(uniqid(time()));
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "Backup der Datenbank $db_name vom $filename";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: application/x-gzip; name=$filename_n";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=$filename_n";
$Header .= "\n\n";
$Dateiinhalt .= fread(fopen($filename_n"r"), filesize($filename_n));
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mail($mail$Betreff""$Header);
?>


Einfach deine Daten eintragen und dann macht das Script ein Backup in dem Verzeichniss wo es liegt und schickt dir zusätzlich eine mail mit dem Backup als Anhang.

Viel Spass damit.
Bei Fragen bitte Mailen oder ein Comment schreiben.
MfG, Daywalker

Geschrieben von Daywalker am 18.06.2004 (11146x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

Also ich finde es ja super, wenn man wenigstens ein paar Worte zum Kern der Funktion verliert - in diesem Falle dreht sich ja eigentlich alles um die Funktion system.

Wenn ich mir den Code anschaue, denke ich eher, das Tutorial handelt darüber, wie man mit Hilfe von PHP eine E-Mail perfekt versendet ...
Geschrieben von René
Ich frage mich, was daran ein Tutorial sein soll, denn das ist ein Quelltext, der nicht weiter erklärt ist - mehr nicht.
Geschrieben von michi
der scheiss geht niemals ..
Geschrieben von Trekkie
Bei mir gehts auch nit.
Wird garkein File angelegt. Kann natürlich sein, dass das nicht bei jedem Provider unterstützt wird...

ciao

JoJo
Geschrieben von JoJo
Bei mir kommt immer


Parse error: parse error in /srv/www/htdocs/web<strong>/html/Sicherung/sicherung_web</strong>_1.php
on line 3

(** = mein acc)
Geschrieben von fox34
Also bei mir funktioniert das auch nicht, es wird keine Datei angelegt, habs auf meinem eigenen Webserver probiert, geht nicht!

mfG
Alex
Geschrieben von Alex
hi an alle,
hab mal einwenig getestet und gebastelt.
so funzt das script bei mir jetzt.
ist nicht schön gecodet aber es funzt.


// hier die entsprechenden daten eintragen
$username = '##';#user
$passwort = '##';#passort
$db_name = '##';#Name der Dantenbank
$filename01 = "backup-sql-$db_name-";
$filename02 = date(d.'.'.m.'.'.Y);
$dateiendung = ".sql.gz";
$filename = "$filename01$filename02$dateiendung";
$pfad = "##"; # absoluter pfad zum backup verzeichniss z.b. /srv/www/html/sql-save/backup/
$mail = '##@##. ##';#deine Email Adresse
$Betreff = "Backup der Datenbank $db_name vom $filename";

echo "
Datenbankname: $db_name<br>
Dateiname: $filename<br>
eMail an: $mail<br>
Betreff: $Betreff<br><br>
Bitte Aktion auswählen!<br><br>
Backup Starten: <a href=\"index.php?weiter=yes\" target=\"_self\"><b>STARTEN</b></a><br><br>";

// packen der datei in ein verzeichniss #### ACHTUNG CHMOD 777 setzen ###
if ($weiter == yes ) {
system('/usr/bin/mysqldump -u'.$username.' -p'.$passwort.' -h localhost '.$db_name.' | /bin/gzip > '.$pfad.''.$filename.' ', $fp);
if ($fp==0) {
echo "Daten exportiert<br>
$filename<br><br>
Datei per eMail senden?<br>
<a href=\"index.php?senden=yes\" target=\"_self\">JA</a>      <a href=\"index.php\" target=\"_self\">NEIN</a>";
}else {
echo 'Es ist ein Fehler aufgetreten';
}
}

// zusammen setzen und versenden der email
if ($senden == yes) {

$filename_n = $filename;
$Header = "From: Backup System <$mail>";
$Trenner = md5(uniqid(time()));
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "Backup der Datenbank $db_name vom $filename";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: application/x-gzip; name=$filename_n";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=$pfad$filename_n";
$Header .= "\n\n";
$dateizusenden = "$pfad$filename_n";
$Dateiinhalt .= fread(fopen($dateizusenden, "r"), filesize($dateizusenden));
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mail($mail, $Betreff, "", $Header);
}

muß halt noch angepaßt werden.
wer eine bessere version hat bitte hier posten.
Geschrieben von dorf