phpMyBackupPro
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
array
date
datei
datenbank
email
file
header
http
index
list
message
mime
null
pfad
show
text
type
url
verbindung
-
Hallo,
Ich habe mehrere Probleme mit phpMyBackupPro.
1. Ich verstehe nicht die Anleitung was ich machen soll also würde mich über eine Deutsch schnell Erklärung freuen.
2. Wenn ich jetzt bei phpBB3 einfach die Datei Includiere die er mir erstellt zum Backuppen kommt einfach nur noch ein weiße Seite.
Gruß -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wie wärs wenn du einfach MySQLDumper(http://www.mysqldumper.de/) nutzt oder hat es irgendwelche Gründe das du unbedingt phpMyBackupPro nutzen musst?^^ MySQLDumper ist einfach zu Bedienen und hat viele nette Extras... :)
-
Ok aber wo kann ich Automatisches Backup Einstellen?
-
Die Einfachste Möglichkeit ist per Cronjob(z.B. http://www.cron-job.org/ es gibt noch einige andere einfach mal googeln ) Für weiter Infos benutzt du am besten mal die Sufu hier da gibts einige Themen oder du suchst bei Google mal da gibts auch massen
-
Ok aber MySQLDumper geht damit ja nicht oder kannst du mir eine URL nennen die er Aufrufen soll.
Ich bitte um Hilfe.
Danke in Vorraus -
Schau dir den Dumper genau an. Er bietet u.a. ein Untermenü für Cronjobs, welche eine URL beinhaltet, die für den externen Aufruf genutzt werden kann.
-
Ok habe ich gefunden aber ich verstehe nicht was ich da Einstellen muss.
Entschuldigung aber manchmal bin ich schwer von Begriff
EDIT:
Also so http://elitehacking.lima-city.de/backup/msd_cron/crondump.pl aber dann kommt wenn ich es so mal aufrufe Zugriff Verweigert.
Beitrag zuletzt geändert: 29.5.2010 19:58:05 von elitehacking -
Ich hatte schonmal die gleiche Frage/ bzw. das gleiche Problem... Alle Infos und Möglichkeiten findest du hier: http://www.lima-city.de/thread/php-backup-skript
Ich machs mittlerweile so: Ich habe einen PHP Backup Skript gefunden denn nachgeladen und nun wird er alle 24h ausgeführt. Der Nachteil daran: Du hast keine weiteren groß artigen Tools wie bei MySQLDumper...^^ Mit dem Dumper "spiele" ich ab und zu noch rum^^
Beitrag zuletzt geändert: 29.5.2010 20:03:28 von volnerius -
Ich verstehe das alles nicht schade also werde ich wohl unsicher bleiben müssen
-
Da beim Dumper die Cronjob Skripts Perl Datein sind und Perl hier nicht erlaubt ist werden die Cronjob Skritps vom Dumper hier nicht funktionieren... Daher empfehle ich dir diese Methode:
Mit diesen Skript kannst du einen Backup deiner DB durchführen und sogar in eine GZip-Datei packen und per E-mail versenden.
<?php @set_time_limit(0); //Verbindung zur Datenbank $verbindung = mysql_connect("mysql.lima-city.de","USERNAME","geheim") or die("Username/Passwort falsch"); // MySQL Datenbanken $dbname = array(); $dbname[]= "datenbankname"; // 0: Normale Datei // 1: GZip-Datei $compression = 0; //Falls Gzip nicht vorhanden, kein Gzip if(!extension_loaded("zlib")) $compression = 0; // Pfad zur aktuellen Datei $path = ereg_replace ("\\\\","/",__FILE__); $path = dirname ($path); $path = trim($path); // Pfad zum Backup $path .= "/"; //Speicherart //0: Nur Server speichern //1: Zusätzlich per Email versenden $send = 0; //Email-Adresse für Backup $email = "email@adresse"; //Dateityp if ($compression==1) $filetype = "sql.gz"; else $filetype = "sql"; //Dateieigenschaften $cur_time=date("d.m.Y H:i"); $cur_date=date("Y-m-d"); //Pfade zu den neuen Backup-Dateien (fur den Mailversand) //__Nicht verändern___ $backup_pfad = array(); //Erstelle Struktur von Datenbank function get_def($dbname, $table) { global $verbindung; $def = ""; $def .= "CREATE TABLE $table (\n"; $result = mysql_db_query($dbname, "SHOW FIELDS FROM $table",$verbindung); while($row = mysql_fetch_array($result)) { $def .= " $row[Field] $row[Type]"; if ($row["Default"] != "") $def .= " DEFAULT '$row[Default]'"; if ($row["Null"] != "YES") $def .= " NOT NULL"; if ($row[Extra] != "") $def .= " $row[Extra]"; $def .= ",\n"; } $def = ereg_replace(",\n$","", $def); $result = mysql_db_query($dbname, "SHOW KEYS FROM $table",$verbindung); while($row = mysql_fetch_array($result)) { $kname=$row[Key_name]; if(($kname != "PRIMARY") && ($row[Non_unique] == 0)) $kname="UNIQUE|$kname"; if(!isset($index[$kname])) $index[$kname] = array(); $index[$kname][] = $row[Column_name]; } while(list($x, $columns) = @each($index)) { $def .= ",\n"; if($x == "PRIMARY") $def .= " PRIMARY KEY (" . implode($columns, ", ") . ")"; else if (substr($x,0,6) == "UNIQUE") $def .= " UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")"; else $def .= " KEY $x (" . implode($columns, ", ") . ")"; } $def .= "\n);"; return (stripslashes($def)); } //Erstelle Eintäge von Tabelle function get_content($dbname, $table) { global $verbindung; $content=""; $result = mysql_db_query($dbname, "SELECT * FROM $table",$verbindung); while($row = mysql_fetch_row($result)) { $insert = "INSERT INTO $table VALUES ("; for($j=0; $j<mysql_num_fields($result);$j++) { if(!isset($row[$j])) $insert .= "NULL,"; else if($row[$j] != "") $insert .= "'".addslashes($row[$j])."',"; else $insert .= "'',"; } $insert = ereg_replace(",$","",$insert); $insert .= ");\n"; $content .= $insert; } return $content; } //Funktion um Backup auf dem Server zu speichern function write_backup($val,$newfile,$newfile_data) { global $compression,$path,$cur_date,$filetype,$backup_pfad; $backup_pfad[] = $path.$val."_structur_".$cur_date.".".$filetype; $backup_pfad[] = $path.$val."_data_".$cur_date.".".$filetype; if ($compression==1) { $fp = gzopen($path.$val."_structur_".$cur_date.".".$filetype,"w9"); gzwrite ($fp,$newfile); gzclose ($fp); $fp = gzopen($path.$val."_data_".$cur_date.".".$filetype,"w9"); gzwrite ($fp,$newfile_data); gzclose ($fp); } else { $fp = fopen ($path.$val."_structur_".$cur_date.".".$filetype,"w"); fwrite ($fp,$newfile); fclose ($fp); $fp = fopen($path.$val."_data_".$cur_date.".".$filetype,"w"); fwrite ($fp,$newfile_data); fclose ($fp); } } //Backup per Email verschicken function mail_att($to, $from, $subject, $message) { // $to Empfänger // $from Absender ("email@domain.de" oder "Name <email@domain.de>") // $subject Betreff // $message Inhalt der Email global $backup_pfad; //Die Pfade zu den Dateien if(is_array($backup_pfad) AND count($backup_pfad) > 0) { $mime_boundary = "-----=" . md5(uniqid(rand(), 1)); $header = "From: ".$from."\r\n"; $header.= "MIME-Version: 1.0\r\n"; $header.= "Content-Type: multipart/mixed;\r\n"; $header.= " boundary=\"".$mime_boundary."\"\r\n"; $content = "This is a multi-part message in MIME format.\r\n\r\n"; $content.= "--".$mime_boundary."\r\n"; $content.= "Content-Type: text/plain charset=\"iso-8859-1\"\r\n"; $content.= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $content.= $message."\r\n"; //Dateien anhaengen foreach($backup_pfad AS $file) { $name = basename($file); $data = chunk_split(base64_encode(implode("", file($file)))); $len = filesize($file); $content.= "--".$mime_boundary."\r\n"; $content.= "Content-Disposition: attachment;\r\n"; $content.= "\tfilename=\"$name\";\r\n"; $content.= "Content-Length: .$len;\r\n"; $content.= "Content-Type: application/x-gzip; name=\"".$file."\"\r\n"; $content.= "Content-Transfer-Encoding: base64\r\n\r\n"; $content.= $data."\r\n"; } if(mail($to, $subject, $content, $header)) return true; else return false; } return false; } //Backup erstellen while (list(,$val) = each($dbname)) { $newfile="# Strukturbackup: $cur_time \r\n# www.php-einfach.de \r\n"; $newfile_data="# Datenbackup: $cur_time \r\n# www.php-einfach.de \r\n"; //backup schreiben $tables = mysql_list_tables($val,$verbindung); $num_tables = @mysql_num_rows($tables); $i = 0; while($i < $num_tables) { $table = mysql_tablename($tables, $i); $newfile .= "\n# ----------------------------------------------------------\n#\n"; $newfile .= "# structur for Table '$table'\n#\n"; $newfile .= get_def($val,$table); $newfile .= "\n\n"; $newfile_data .= "\n# ----------------------------------------------------------\n#\n"; $newfile_data .= "#\n# data for table '$table'\n#\n"; $newfile_data .= get_content($val,$table); $newfile_data .= "\n\n"; $i++; } write_backup($val,$newfile,$newfile_data); } //End: while //Backup per Email senden if($send == 1) { $text="Datenbank-Backup vom: ".date("d.m.Y H:i").""; $from = "backup@server.de"; if(!mail_att($email, $from, "Datenbank-Backup ".date("Y-m-d"), $text)) echo "Es konnte <b>keine</b> Email gesendet werden<br>"; } echo "<h3>Backup ist fertig</h3>"; ?>
In diesem Skript musst du einfach noch die passenden Daten eingeben: Verbindund zu Datenbank, Ob du es gepackt haben möchtest oder nicht, ob du es per E-mail gesendet haben willst...
Dann in einen durch .htacess gesicherten Ordner hochladen
Und zum Schluss dann per Cronjob ausführen lassen...^^
Beitrag zuletzt geändert: 29.5.2010 20:20:37 von volnerius -
Danke an alle es geht jetzt
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage