0) ? $config["minspeed"] : 50); $dump["totalrecords"]=(isset($_GET["totalrecords"])) ? $_GET["totalrecords"] : 0; $mp2=array("Bytes","Kilobytes","Megabytes","Gigabytes"); $cancelurl='dump.php?cancel=1&part='.$dump["part"].'&backupdatei='.urlencode($dump["backupdatei"]).'&backupdateistructure='.urlencode($dump["backupdatei_structure"]); $aus2=$page_parameter=$debugausgabe=$a=""; $dump["tabellen_gesamt"]=0; if($cancel==1) { //Abbruch durch Benutzer //Wildcard erzeugen $wildcard=substr($dump["backupdatei"],0,strlen($databases["db_actual"])+17); $wildcard2=$dump["backupdatei_structure"]; echo "$pageheader

Abruch durch Benutzer

Der Backupvorgang wurde unterbrochen.

"; echo "Folgende angefangene Backupdateien wurden gelöscht:

"; echo $wildcard."*
".$wildcard2; echo ''; exit; } FillMultiDBArrays(); if($databases["db_actual_tableselected"]!="" && $config["multi_dump"]==0) { $dump["tblArray"]=explode("|",$databases["db_actual_tableselected"]); $tbl_sel=true; $msgTbl=" - mit ".count($dump["tblArray"])." selektierten Tabellen"; } //Zeitzähler aktivieren $dump["max_zeit"]=intval($config["max_execution_time"]*$config["time_buffer"]); $dump["startzeit"]=time(); if (isset($_GET['xtime'])) { $xtime=$_GET['xtime']; } else { $xtime=time(); } $dump["countdata"]= (!empty($_GET['countdata'])) ? $_GET['countdata'] : 0; $dump["aufruf"]= (!empty($_GET['aufruf'])) ? $_GET['aufruf'] : 0; MSD_mysql_connect(); $flipped = array_flip($databases["Name"]); $dump["tables"]=Array(); for($ii=0;$ii0) { for ($i=0;$i<$num_tables;$i++) { $erg=mysql_fetch_row($tabellen); if($config["optimize_tables_beforedump"]==1 && $dump["table_offset"]==-1) { //Tabelle optimieren mysql_query("OPTIMIZE `$erg[0]`"); } if (isset($tbl_sel)) { if (in_array($erg[0],$dump["tblArray"])) $dump["tables"][]=$databases["Name"][$dump["dbindex"]].".".$erg[0]; } elseif ($databases["praefix"][$dump["dbindex"]]>"" && !isset($tbl_sel)) { echo "$erg[0] - ".$databases["praefix"][$dump["dbindex"]]."
"; if (substr($erg[0],0,strlen($databases["praefix"][$dump["dbindex"]]))==$databases["praefix"][$dump["dbindex"]]) $dump["tables"][]=$databases["Name"][$dump["dbindex"]].".".$erg[0];; } else $dump["tables"][]=$databases["Name"][$dump["dbindex"]].".".$erg[0]; } } else $aus_error[]= '

'.$lang["error"].": ".sprintf($lang["dump_notables"],$databases["Name"][$dump["dbindex"]]).'

'; } $num_tables=count($dump["tables"]); if($config["optimize_tables_beforedump"]==1 && $dump["table_offset"]==-1) $out.=''.$num_tables.' Tabellen wurden optimiert.
'; $dump["data"]=""; $dump["structure"]=""; $dump["dbindex"]=(isset($_GET["dbi"])) ? $_GET["dbi"] :$flipped[$databases["multi"][0]]; //Ausgaben-Header bauen $aus_header[]= PicCache($relativ_path); $aus_header[]= headline('Backup: '.(($config["multi_dump"]==1) ? "Multidump (".count($databases["multi"])." ".$lang["dbs"].")" : $lang["db"].': '.$databases["Name"][$dump["dbindex"]].(($databases["praefix"][$dump["dbindex"]]!="") ?' ('.$lang["withpraefix"].' '.$databases["praefix"][$dump["dbindex"]].')' : ''))); if(isset($aus_error) && count($aus_error)>0) $aus_header=array_merge($aus_header,$aus_error); $aus_header[]='Browser : '.(($config["browser_switch"]==0) ? " (automatisch erkannt)" : ""); //.' / '.$frames; if(count($dump["tables"])==0) { //keine Tabellen gefunden $aus[]='

'.sprintf($lang['dump_notables'],$databases["Name"][$dump["dbindex"]]).'

'; if($config["multi_dump"]==1) { } } else { if ($dump["table_offset"]==-1) { // File anlegen, da Erstaufruf new_file(); $dump["table_offset"]=0; // jetzt kanns losgehen flush(); } else { // SQl-Befehle ermitteln $dump["restzeilen"]=$dump["anzahl_zeilen"]; WHILE ( ($dump["table_offset"] < $num_tables) && ($dump["restzeilen"]>0) ) { $table = substr($dump["tables"][$dump["table_offset"]],strpos($dump["tables"][$dump["table_offset"]],".")+1); $adbname=substr($dump["tables"][$dump["table_offset"]],0,strpos($dump["tables"][$dump["table_offset"]],".")); if($databases["Name"][$dump["dbindex"]]!=$adbname) { //neue Datenbank WriteLog("Dump '".$dump["backupdatei"]."' finished."); ExecuteCommand("a"); if($config["multi_part"]==1) { $out.=$lang['finished'].'
'; $dateistamm=substr($dump["backupdatei"],0,strrpos($dump["backupdatei"],"part_"))."part_"; $dateiendung=($config["compression"]==1)?".sql.gz":".sql"; for ($i=1;$i<($dump["part"]-$dump["part_offset"]);$i++) { $mpdatei=$dateistamm.$i.$dateiendung; clearstatcache(); $sz=byte_output(@filesize($config["paths"]["backup"].$mpdatei)); $out.= $lang["file"].' '.$mpdatei.' ('.$sz.') '.$lang["dump_successful"].'
'; } $out.='

'; } else { clearstatcache(); $out.=$lang['finished'].': '.$dump["backupdatei"].' ('.byte_output(filesize($config["paths"]["backup"].$dump["backupdatei"])).")
"; } if ($config["send_mail"]==1) DoEmail(); if($config["ftp_transfer"]==1) DoFTP(); if(isset($flipped[$adbname])) $dump["dbindex"]=$flipped[$adbname]; $dump["part_offset"]=$dump["part"]-1; new_file(); } $aktuelle_tabelle=$dump["table_offset"]; //echo "$adbname - $table
"; if ($dump["zeilen_offset"]==0) { if($config["minspeed"]>0) { $dump["anzahl_zeilen"]=$config["minspeed"]; $dump["restzeilen"]=$config["minspeed"]; } $dump["data"] .= get_def($adbname,$table); $dump["structure"].=get_def($adbname,$table,0); } WriteToDumpFile(); get_content($adbname,$table); $dump["restzeilen"]--; if($config["memory_limit"]>0 && strlen($dump["data"])>$config["memory_limit"]) { WriteToDumpFile(); } } } ///////////////////////////////// // Anzeige - Fortschritt ///////////////////////////////// if($config["multi_dump"]==1) { $aus[]= '
'; for($i=0;$i '; else $aus[]= ''.$databases["multi"][$i].' '; if(strlen($a)>60) {$aus[]='
';$a="";} } $aus[]= '
'; } if($config["multi_part"]==1) $aus[]= '
Multipart-Backup: '.$config["multipartgroesse1"].' '.$mp2[$config["multipartgroesse2"]].'
'; $aus[]= '

'.$lang["dump_headline"].'

'; if($dump["kommentar"]) $aus[]= $lang['comment'].': '.$dump["kommentar"].'
'; if($config["multi_dump"]==1) $aus[]= $lang["db"].': '.$databases["Name"][$dump["dbindex"]].''.(($databases["praefix"][$dump["dbindex"]]!="") ?' ('.$lang["withpraefix"].' '.$databases["praefix"][$dump["dbindex"]].')' : '').'
'; if(isset($tbl_sel)) $aus[]= $msgTbl.'

'; if($config["multi_part"]==1) { $aus[]= 'Multipart-Backup File '.($dump["part"]-$dump["part_offset"]-1).'
'; $aus2=", ".($dump["part"]-1)." files"; } $aus[]= $lang["dump_filename"]."".$dump["backupdatei"].""; $aus[]= '
'.$lang['filesize'].': '.byte_output($dump["filesize"]).'

'.$lang["gzip_compression"].' '; $aus[]= ($config["compression"]==1) ? $lang["activated"] : $lang["not_activated"]; $aus[]= '.
'; $table = @substr($dump["tables"][$dump["table_offset"]],strpos($dump["tables"][$dump["table_offset"]],".")+1); $adbname=@substr($dump["tables"][$dump["table_offset"]],0,strpos($dump["tables"][$dump["table_offset"]],".")); $sql="SELECT COUNT(*) AS anzahl FROM `$table`"; $res=mysql_query($sql); if ($res) { $row=mysql_fetch_object($res); $dump["zeilen_total"]=intval($row->anzahl); if ($dump["zeilen_total"]>0) { $fortschritt=round(((100*$dump["zeilen_offset"])/$dump["zeilen_total"]),0); if ($dump["anzahl_zeilen"]>=$dump["zeilen_total"]) $fortschritt=100; } else $fortschritt=100; //Debug-Ausgabe //$aus[]="Restzeilen: ".$dump["zeilen_total"]." (".$dump["zeilen_offset"].")
"; //$aus[]='

'; $aus[]= $lang["saving_table"].''.($dump["table_offset"]+1).' '.$lang["of"].' '.sizeof($dump["tables"]).'
' .$lang["actual_table"].': '.$table.'

' .$lang["progress_table"].':
'; $aus[]= '' .'' .'' .''; if ($dump["anzahl_zeilen"]+$dump["zeilen_offset"]>=$dump["zeilen_total"]) { $eintrag=$dump["zeilen_offset"]+1; $zeilen_gesamt=$dump["zeilen_total"]; if ($zeilen_gesamt==0) $eintrag=0; } else { $zeilen_gesamt=$dump["zeilen_offset"]+$dump["anzahl_zeilen"]; $eintrag=$dump["zeilen_offset"]+1; } $aus[]= '' .'
 '.($fortschritt).'%
'.$lang["entry"].' '.number_format($eintrag,0,",",".").' '.$lang["upto"].' ' .number_format(($zeilen_gesamt),0,",",".").' '.$lang["of"].' ' .number_format($dump["zeilen_total"],0,",",".").'
'; $dump["tabellen_gesamt"]=(isset($dump["tables"])) ? count($dump["tables"]) : 0; //$noch_zu_speichern=$dump["tabellen_gesamt"]-$dump["table_offset"]; //$prozent= ($dump["tabellen_gesamt"]>0) ? round(((100*$noch_zu_speichern)/$dump["tabellen_gesamt"]),0) : 100; $noch_zu_speichern=$dump["totalrecords"]-$dump["countdata"]; $prozent= ($dump["totalrecords"]>0) ? round(((100*$noch_zu_speichern)/$dump["totalrecords"]),0) : 100; if ($noch_zu_speichern==0) $prozent=100; $aus[]= '
'.$lang["progress_over_all"].':' .'' .'' .'' .'
'.(100-$prozent).'%
'; //Speed-Anzeige $fw=($config["maxspeed"]==$config["minspeed"]) ? 300 : round(($dump["anzahl_zeilen"]-$config["minspeed"])/($config["maxspeed"]-$config["minspeed"])*300,0); if($fw>300)$fw=300; $aus[]= '
'; $aus[]= '
'; $aus[]= 'Speed
'.$dump["anzahl_zeilen"].'
'; $aus[]= ''; $aus[]= '
'; $aus[]= '
'; $aus[]= ''; $aus[]= ''; $aus[]= '
'.$config["minspeed"].''.$config["maxspeed"].'
'; //Status-Text $aus[]= '

'.zeit_format(time()-$xtime).', '.$dump["aufruf"].' pages'.$aus2; $aus[]= ($dump["errors"]>0) ? ', '.$dump["errors"].' errors' : ''; $aus[]= '

'; $aus[]= '
'.$out.'
'; } ////////////////////////////////////// // Ende Anzeige ////////////////////////////////////// WriteToDumpFile(); flush(); if(!isset($summe_eintraege)) $summe_eintraege=0; if ($dump["table_offset"]<=$dump["tabellen_gesamt"]) { $dauer=time()-($xtime+$dump["verbraucht"]); $dump["verbraucht"]+=$dauer; $summe_eintraege+=$dump["anzahl_zeilen"]; //Zeitanpassung if($config["direct_connection"]==1) { if ($dauer<$dump["max_zeit"]) $dump["anzahl_zeilen"]=$dump["anzahl_zeilen"]*$config["tuning_add"]; else $dump["anzahl_zeilen"]=$dump["anzahl_zeilen"]*$config["tuning_sub"]; $dump["anzahl_zeilen"]=round($dump["anzahl_zeilen"],0); if($config["minspeed"]>0) {if ($dump["anzahl_zeilen"]<$config["minspeed"]) $dump["anzahl_zeilen"]=$config["minspeed"];} if($config["maxspeed"]>0) {if($dump["anzahl_zeilen"]>$config["maxspeed"]) $dump["anzahl_zeilen"]=$config["maxspeed"];} } $dump["aufruf"]++; // Selbstaufruf starten $page_parameter='table_offset='.$dump["table_offset"].'&zeilen_offset='.$dump["zeilen_offset"]; $page_parameter.='&countdata='.$dump["countdata"].'&part='.$dump["part"].'&part_offset='.$dump["part_offset"]; $page_parameter.='&backupdatei='.urlencode($dump["backupdatei"]).'&backupdateistructure='.urlencode($dump["backupdatei_structure"]); $page_parameter.='&xtime='.$xtime.'&aufruf='.$dump["aufruf"].'&filename_stamp='.$dump["filename_stamp"]; $page_parameter.='&anzahl_zeilen='.$dump["anzahl_zeilen"].'&verbraucht='.$dump["verbraucht"].'&comment='.urlencode($dump["kommentar"]).'&dbi='.$dump["dbindex"].'&err='.$dump["errors"].'&totalrecords='.$dump["totalrecords"]; } else { //Backup fertig // Zeitmessung wird beendet $dump["data"]="\n".$mysql_commentstring." EOB\n\n\n"; WriteToDumpFile(); ExecuteCommand("a"); if($config["multi_part"]==1) { $out.=$lang['finished'].'
'; $dateistamm=substr($dump["backupdatei"],0,strrpos($dump["backupdatei"],"part_"))."part_"; $dateiendung=($config["compression"]==1)?".sql.gz":".sql"; clearstatcache(); for ($i=1;$i<($dump["part"]-$dump["part_offset"]);$i++) { $mpdatei=$dateistamm.$i.$dateiendung; $sz=byte_output(@filesize($config["paths"]["backup"].$mpdatei)); $out.= $lang["file"].' '.$mpdatei.' ('.$sz.') '.$lang["dump_successful"].'
'; } $out.='
'; } else { $out.=$lang['finished'].': '.$dump["backupdatei"].' ('.byte_output(filesize($config["paths"]["backup"].$dump["backupdatei"])).")
"; } $backup_ready=1; $xtime=time()-$xtime; $aus=Array(); $aus[]= "
"; if($config["multi_dump"]==1) { WriteLog("Dump '".$dump["backupdatei"]."' finished."); WriteLog("Multidump: ".count($databases["multi"])." Datenbases in ".zeit_format($xtime)."."); } else { WriteLog("Dump '".$dump["backupdatei"]."' finished in ".zeit_format($xtime)."."); } if ($config["send_mail"]==1) DoEmail(); if($config["ftp_transfer"]==1) DoFTP(); @unlink($config["paths"]["log"]."out.tmp"); $aus[]= '

'.$lang["done"]."

"; if($dump["errors"]>0) $aus[]='

Es sind '.$dump["errors"].' Fehler aufgetreten: ansehen

'; if($config["multi_dump"]==1) { $aus[]= sprintf($lang['multidump'],count($databases["multi"]))."
"; } $aus[]= '
'.sprintf($lang["dump_endergebnis"],$num_tables,number_format($dump["countdata"],0,",",".")).'

'.$out.'

' .'

'.zeit_format($xtime).', '.$dump["aufruf"].' pages'.$aus2.'

' //.$dump["fileoperations"].' Schreibzugriffe' .str_repeat(" ",60).'
'; $aus[]= "

"; $aus[]= "   "; $aus[]= "   "; $DumpFertig=1; } } //===================================================================== //================= Anzeige =========================================== //===================================================================== //Seite basteln $svice=(isset($_GET["svice"])) ? $_GET["svice"] : 0; $config_array=(isset($config)) ? "CONFIG
".@print_r($config,true)."
": ""; $database_array=(isset($database)) ? "DATABASE
".@print_r($database,true)."
": ""; $dump_array=(isset($dump)) ? "DUMP
".@print_r($dump,true)."
": ""; $aus=array_merge($aus_header,$aus); //DEBUGGER //$debugausgabe='
Aufruf:'.$dump["aufruf"].'   Datensätze: '.$dump["countdata"].'   Dateigrösse: '.$dump["filesize"].'

'.$page_parameter.'

'; $manuell=0; $pagefooter=($DumpFertig==1) ? '

Autoren: Daniel Schlichtholz & Steffen Kamper - Infoboard: '.$config["homepage"].'

' : ''; if($svice==1) $pagefooter.='
'.$config_array.'
'.$database_array.'
'.$dump_array.'
'.$restore_array.'
'; $pagefooter.=''; if($frames==1) { $js_aufruf_automatisch=($page_parameter=="") ? ">" : "onload=\"restart_dump()\">"; $js_aufruf_manuell=($page_parameter=="") ? ">" : '>

'; $s="\n"; $pageheader=''.$meta.'MySqlDump'.$s.' parent.msd_ausgabe.location.href="./work/log/out.html";'; } else { $js_aufruf_automatisch=''; $js_aufruf_manuell=''; $selbstaufruf=($page_parameter=="") ? "" : (($manuell==1) ? $js_aufruf_manuell : $js_aufruf_automatisch); $complete_page=$pageheader.implode("\n",$aus).$debugausgabe.$selbstaufruf.$pagefooter; // und raus WriteTempOut($out); echo $complete_page; flush(); } ?>