429 Zeilen
19 KiB
PHP
429 Zeilen
19 KiB
PHP
|
<?
|
|||
|
include_once("inc/functions_dump.php");
|
|||
|
include_once($config["files"]["parameter"]);
|
|||
|
include_once("inc/mysql.php");
|
|||
|
include_once("language/lang_".$config["language"].".php");
|
|||
|
|
|||
|
@TestWorkDir();
|
|||
|
$pageheader='<html><head>'.$meta.'<title>MySqlDump</title><link rel="stylesheet" type="text/css" href="styles.css"></head><body bgcolor="#F5F5F5">'.headline();
|
|||
|
|
|||
|
|
|||
|
$relativ_path=($config["interface_browser_ie"]) ? "../../" : "./";
|
|||
|
|
|||
|
|
|||
|
//$_GET-Parameter lesen
|
|||
|
$dump["kommentar"]=(isset($_GET['comment'])) ? urldecode($_GET['comment']): "";
|
|||
|
$dump["backupdatei"]=(isset($_GET['backupdatei'])) ? $_GET['backupdatei'] :"";
|
|||
|
$dump["backupdatei_structure"]= (isset($_GET['backupdateistructure'])) ? $_GET['backupdateistructure'] : "";
|
|||
|
$cancel=(isset($_GET["cancel"])) ? 1 : 0;
|
|||
|
$dump["part"]=(isset($_GET["part"])) ? $_GET["part"] : 1;
|
|||
|
$dump["part_offset"]=(isset($_GET["part_offset"])) ? $_GET["part_offset"] : 0;
|
|||
|
$dump["verbraucht"]=(isset($_GET["verbraucht"])) ? $_GET["verbraucht"] : 0;
|
|||
|
$out=(file_exists($config["paths"]["log"]."out.tmp")) ? implode("\n",file($config["paths"]["log"]."out.tmp")) : "";
|
|||
|
$dump["errors"]= (isset($_GET['err'])) ? $_GET['err'] : 0;
|
|||
|
$dump["table_offset"]=(isset($_GET["table_offset"])) ? $_GET["table_offset"] : -1;
|
|||
|
$dump["zeilen_offset"]= (isset($_GET['zeilen_offset'])) ? $_GET['zeilen_offset']:0;
|
|||
|
$dump["filename_stamp"]= (isset($_GET['filename_stamp'])) ? $_GET['filename_stamp'] : "";
|
|||
|
$dump["anzahl_zeilen"]= (isset($_GET["anzahl_zeilen"])) ? $_GET["anzahl_zeilen"] : (($config["minspeed"]>0) ? $config["minspeed"] : 50);
|
|||
|
|
|||
|
|
|||
|
$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<h1>Abruch durch Benutzer</h1>Der Backupvorgang wurde unterbrochen.<br><br>";
|
|||
|
echo "Folgende angefangene Backupdateien wurden gel<65>scht:<br><br>";
|
|||
|
echo $wildcard."*<br>".$wildcard2;
|
|||
|
echo '</body></html>';
|
|||
|
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<74>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;$ii<count($databases["multi"]);$ii++) {
|
|||
|
$dump["dbindex"]=$flipped[$databases["multi"][$ii]];
|
|||
|
$tabellen = mysql_list_tables($databases["Name"][$dump["dbindex"]],$config["dbconnection"]);
|
|||
|
$num_tables = mysql_num_rows($tabellen);
|
|||
|
// Array mit den gew<65>nschten Tabellen zusammenstellen... wenn Pr<50>fix angegeben, werden die anderen einfach nicht <20>bernommen
|
|||
|
if ($num_tables>0)
|
|||
|
{
|
|||
|
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"]]."<br>";
|
|||
|
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[]= '<p class="smallwarnung">'.$lang["error"].": ".$lang["dump_notables"].$databases["Name"][$dump["dbindex"]].$lang['dump_notables2'].'</p>';
|
|||
|
}
|
|||
|
|
|||
|
$num_tables=count($dump["tables"]);
|
|||
|
if($config["optimize_tables_beforedump"]==1 && $dump["table_offset"]==-1) $out.='<span class="smallblue">'.$num_tables.' Tabellen wurden optimiert.</span><br>';
|
|||
|
|
|||
|
$dump["data"]="";
|
|||
|
$dump["structure"]="";
|
|||
|
$dump["dbindex"]=(isset($_GET["dbi"])) ? $_GET["dbi"] :$flipped[$databases["multi"][0]];
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//Ausgaben-Header bauen
|
|||
|
$aus_header[]= '<div style="display:none"><img src="'.$relativ_path.'images/fbd.gif" width="40" height="16" alt=""><img src="'.$relativ_path.'images/fbs.gif" width="40" height="16" alt=""></div>';
|
|||
|
$aus_header[]= '<h3>Backup: '.(($config["multi_dump"]==1) ? "Multidump (".count($databases["multi"])." ".$lang["dbs"].")" : $lang["db"].': '.$databases["Name"][$dump["dbindex"]].(($databases["praefix"][$dump["dbindex"]]!="") ?' ('.$lang["withpraefix"].' <span style="color:blue">'.$databases["praefix"][$dump["dbindex"]].'</span>)' : '')).'</h3>';
|
|||
|
if(isset($aus_error) && count($aus_error)>0) $aus_header=array_merge($aus_header,$aus_error);
|
|||
|
|
|||
|
|
|||
|
if(count($dump["tables"])==0) {
|
|||
|
//keine Tabellen gefunden
|
|||
|
$aus[]='<p class="Warnung">'.$lang['dump_notables'].$databases["Name"][$dump["dbindex"]].$lang['dump_notables2'].'</p>';
|
|||
|
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();
|
|||
|
}
|
|||
|
|
|||
|
// 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'].'<br><div style="padding-left:20px;">';
|
|||
|
$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;
|
|||
|
$sz=byte_output(@filesize($config["paths"]["backup"].$mpdatei));
|
|||
|
$out.= $lang["file"].' <a href="'.$config["paths"]["backup"].$mpdatei.'" class="smallblack">'.$mpdatei.' ('.$sz.')</a> '.$lang["dump_successful"].'<br>';
|
|||
|
}
|
|||
|
$out.='</div><br>';
|
|||
|
} else {
|
|||
|
$out.=$lang['finished'].': <a href="'.$config["paths"]["backup"].$dump["backupdatei"].'" class="smallblack">'.$dump["backupdatei"].' ('.byte_output(filesize($config["paths"]["backup"].$dump["backupdatei"])).")</a><br>";
|
|||
|
}
|
|||
|
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<br>";
|
|||
|
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);
|
|||
|
}
|
|||
|
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[]= '<div style="word-spacing:3mm; white-space:normal;">';
|
|||
|
for($i=0;$i<count($databases["multi"]);$i++) {
|
|||
|
$a.=$databases["multi"][$i];
|
|||
|
if($databases["Name"][$dump["dbindex"]]==$databases["multi"][$i])
|
|||
|
$aus[]= '<span style="color:red"><strong>'.$databases["multi"][$i].'</strong></span> ';
|
|||
|
else
|
|||
|
$aus[]= '<span style="color:green">'.$databases["multi"][$i].'</span> ';
|
|||
|
if(strlen($a)>60) {$aus[]='<br>';$a="";}
|
|||
|
}
|
|||
|
$aus[]= '</div>';
|
|||
|
}
|
|||
|
if($config["multi_part"]==1) $aus[]= '<h5>Multipart-Backup: '.$config["multipartgroesse1"].' '.$mp2[$config["multipartgroesse2"]].'</h5>';
|
|||
|
|
|||
|
$aus[]= '<h3>'.$lang["dump_headline"].'</h3>';
|
|||
|
|
|||
|
if($dump["kommentar"]) $aus[]= $lang['comment'].': <span style="color:green;">'.$dump["kommentar"].'</span><br>';
|
|||
|
if($config["multi_dump"]==1) $aus[]= $lang["db"].': <strong>'.$databases["Name"][$dump["dbindex"]].'</strong>'.(($databases["praefix"][$dump["dbindex"]]!="") ?' ('.$lang["withpraefix"].' <span style="color:blue">'.$databases["praefix"][$dump["dbindex"]].'</span>)' : '').'<br>';
|
|||
|
if(isset($tbl_sel)) $aus[]= $msgTbl.'<br><br>';
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if($config["multi_part"]==1)
|
|||
|
{
|
|||
|
$aus[]= '<span style="color:green;">Multipart-Backup File <strong>'.($dump["part"]-$dump["part_offset"]-1).'</strong></span><br>';
|
|||
|
$aus2=", ".($dump["part"]-1)." files";
|
|||
|
}
|
|||
|
$aus[]= $lang["dump_filename"]."<b>".$dump["backupdatei"]."</b>";
|
|||
|
$aus[]= '<br>'.$lang['filesize'].': <b>'.byte_output($dump["filesize"]).'</b><br><br>'.$lang["gzip_compression"].' <b>';
|
|||
|
$aus[]= ($config["compression"]==1) ? $lang["activated"] : $lang["not_activated"];
|
|||
|
$aus[]= '</b>.<br>';
|
|||
|
|
|||
|
$aus[]='<br><br>';
|
|||
|
|
|||
|
$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);
|
|||
|
$gesamt=intval($row->anzahl);
|
|||
|
|
|||
|
if ($gesamt>0)
|
|||
|
{
|
|||
|
$fortschritt=round(((100*$dump["zeilen_offset"])/$gesamt),0);
|
|||
|
if ($dump["anzahl_zeilen"]>=$gesamt) $fortschritt=100;
|
|||
|
}
|
|||
|
else $fortschritt=100;
|
|||
|
|
|||
|
$aus[]= $lang["saving_table"].'<b>'.($dump["table_offset"]+1).'</b> '.$lang["of"].'<b> '.sizeof($dump["tables"]).'</b><br>'
|
|||
|
.$lang["actual_table"].': <b>'.$table.'</b><br><br>'
|
|||
|
.$lang["progress_table"].':<br>';
|
|||
|
|
|||
|
|
|||
|
$aus[]= '<table border="0" width="380"><tr>'
|
|||
|
.'<td width="'.($fortschritt*3).'"><img src="'.$relativ_path.'images/fbd.gif" alt="" width="'.($fortschritt*3).'" height="16" border="0"></td>'
|
|||
|
.'<td width="'.((100-$fortschritt)*3).'"> </td>'
|
|||
|
.'<td width="80" align="right">'.($fortschritt).'%</td>';
|
|||
|
|
|||
|
if ($dump["anzahl_zeilen"]+$dump["zeilen_offset"]>=$gesamt)
|
|||
|
{
|
|||
|
$eintrag=$dump["zeilen_offset"]+1;
|
|||
|
$zeilen_gesamt=$gesamt;
|
|||
|
if ($zeilen_gesamt==0) $eintrag=0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
$zeilen_gesamt=$dump["zeilen_offset"]+$dump["anzahl_zeilen"];
|
|||
|
$eintrag=$dump["zeilen_offset"]+1;
|
|||
|
}
|
|||
|
|
|||
|
$aus[]= '</tr><tr>'
|
|||
|
.'<td colspan="3">'.$lang["entry"].' <b>'.number_format($eintrag,0,",",".").'</b> '.$lang["upto"].' <b>'
|
|||
|
.number_format(($zeilen_gesamt),0,",",".").'</b> '.$lang["of"].' <b>'
|
|||
|
.number_format($gesamt,0,",",".").'</b></td></tr></table>';
|
|||
|
|
|||
|
$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;
|
|||
|
if ($noch_zu_speichern==0) $prozent=100;
|
|||
|
|
|||
|
$aus[]= '<br>'.$lang["progress_over_all"].':'
|
|||
|
.'<table border="0" width="550" cellpadding="0" cellspacing="0"><tr>'
|
|||
|
.'<td width="'.(5*(100-$prozent)).'"><img src="'.$relativ_path.'images/fbd.gif" alt="" width="'.(5*(100-$prozent)).'" height="16" border="0"></td>'
|
|||
|
.'<td width="'.($prozent*5).'" align="center"></td>'
|
|||
|
.'<td width="50">'.(100-$prozent).'%</td></tr></table>';
|
|||
|
|
|||
|
//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[]= '<br><table border="0" cellpadding="0" cellspacing="0"><tr nowrap>';
|
|||
|
$aus[]= '<td class="nomargin" width="60" valign="top" align="center" style="color:#990000; font-size:10px;" >';
|
|||
|
$aus[]= '<strong>Speed</strong><br>'.$dump["anzahl_zeilen"].'</td><td class="nomargin" width="300">';
|
|||
|
$aus[]= '<table border="0" width="100%" cellpadding="0" cellspacing="0"><tr nowrap>';
|
|||
|
$aus[]= '<td class="nomargin" align="left"class="small" width="300" bgcolor="#e9e9e9" nowrap><img src="'.$relativ_path.'images/fbs.gif" alt="" width="'.$fw.'" height="14" border="0" vspace="0" hspace="0">';
|
|||
|
$aus[]= '</td></tr></table><table border="0" width="100%" cellpadding="0" cellspacing="0"><tr nowrap>';
|
|||
|
$aus[]= '<td class="nomargin" align="left" width="50%" nowrap style="font-size:10px;" >'.$config["minspeed"].'</td>';
|
|||
|
$aus[]= '<td class="nomargin" align="right" width="50%" nowrap style="font-size:10px;" >'.$config["maxspeed"].'</td>';
|
|||
|
$aus[]= '</tr></table></td></tr></table>';
|
|||
|
|
|||
|
//Status-Text
|
|||
|
$aus[]= '<p class="small">'.zeit_format(time()-$xtime).', '.$dump["aufruf"].' pages'.$aus2;
|
|||
|
$aus[]= ($dump["errors"]>0) ? ', <span style="color:red;">'.$dump["errors"].' errors</span>' : '';
|
|||
|
$aus[]= '</p>';
|
|||
|
$aus[]= '<div style="position:absolute;width:600px;height:90px;overflow:auto;"><span class="smallgrey">'.$out.'</span></div>';
|
|||
|
|
|||
|
}
|
|||
|
//////////////////////////////////////
|
|||
|
// 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) {
|
|||
|
//echo "<h3>Zeitanpassung</h3>dauer=$dauer max_zeit=$dump["max_zeit"] minspeed=$config["minspeed"] $config["maxspeed"]=$config["maxspeed"]";
|
|||
|
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"];
|
|||
|
//WritePageParams($page_parameter);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//Backup fertig
|
|||
|
// Zeitmessung wird beendet
|
|||
|
ExecuteCommand("a");
|
|||
|
if($config["multi_part"]==1) {
|
|||
|
$out.=$lang['finished'].'<br><div style="padding-left:20px;">';
|
|||
|
$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;
|
|||
|
$sz=byte_output(@filesize($config["paths"]["backup"].$mpdatei));
|
|||
|
$out.= $lang["file"].' <a href="'.$config["paths"]["backup"].$mpdatei.'" class="smallblack">'.$mpdatei.' ('.$sz.')</a> '.$lang["dump_successful"].'<br>';
|
|||
|
}
|
|||
|
$out.='</div>';
|
|||
|
} else {
|
|||
|
$out.=$lang['finished'].': <a href="'.$config["paths"]["backup"].$dump["backupdatei"].'" class="smallblack">'.$dump["backupdatei"].' ('.byte_output(filesize($config["paths"]["backup"].$dump["backupdatei"])).")</a><br>";
|
|||
|
}
|
|||
|
$backup_ready=1;
|
|||
|
$xtime=time()-$xtime;
|
|||
|
$aus=Array();
|
|||
|
$aus[]= "<br>";
|
|||
|
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"]."<br><br>";
|
|||
|
if($dump["errors"]>0) $aus[]='<p class="warnung">Es sind '.$dump["errors"].' Fehler aufgetreten: <a href="log.php?r=3">ansehen</a></p>';
|
|||
|
|
|||
|
if($config["multi_dump"]==1) {
|
|||
|
$aus[]= $lang['multidump1'].count($databases["multi"]).$lang['multidump2']."<br>";
|
|||
|
}
|
|||
|
$aus[]= '<br>'.$lang["dump_endergebnis1"].'<strong>'.$num_tables.'</strong>'.$lang["dump_endergebnis2"]
|
|||
|
.'<strong>'.number_format($dump["countdata"],0,",",".").'</strong>'.$lang["dump_endergebnis3"].'<br><br><span class="smallgrey">'.$out.'</span><br><br>'
|
|||
|
.'<p class="small">'.zeit_format($xtime).', '.$dump["aufruf"].' pages'.$aus2.'</p>' //.$dump["fileoperations"].' Schreibzugriffe'
|
|||
|
.str_repeat(" ",60).'<br>';
|
|||
|
$aus[]= "<br><br><input class=\"Formbutton\" type=\"button\" value=\"".$lang["back_to_control"]."\" onclick=\"self.location.href='".$relativ_path."filemanagement.php'\"></a>";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//=====================================================================
|
|||
|
//================= Anzeige ===========================================
|
|||
|
//=====================================================================
|
|||
|
|
|||
|
//Seite basteln
|
|||
|
|
|||
|
$aus=array_merge($aus_header,$aus);
|
|||
|
//DEBUGGER
|
|||
|
//$debugausgabe='<hr><table width="600"><tr><td>Aufruf:'.$dump["aufruf"].' Datens<6E>tze: '.$dump["countdata"].' Dateigr<67>sse: '.$dump["filesize"].'<br><br><span class="small">'.$page_parameter.'</span></td></tr></table><hr>';
|
|||
|
$manuell=0;
|
|||
|
|
|||
|
if($config["interface_browser_ie"]) {
|
|||
|
|
|||
|
$js_aufruf_automatisch=($page_parameter=="") ? ">" : "onload=\"restart_dump()\">";
|
|||
|
$js_aufruf_manuell=($page_parameter=="") ? ">" : '><input type="Button" value="weitermachen" onclick="restart_dump()"><br><br>';
|
|||
|
|
|||
|
|
|||
|
$s="\n<script type=\"text/javascript\">\n";
|
|||
|
$s.="function restart_dump()\n{\n";
|
|||
|
$s.="parent.msd_action.location.href=\"".$relativ_path."dump.php?".$page_parameter."\";\n";
|
|||
|
$s.="\n}\n";
|
|||
|
$s.="</script>";
|
|||
|
$pageheader='<html><head>'.$meta.'<title>MySqlDump</title><link rel="stylesheet" type="text/css" href="'.$relativ_path.'styles.css">'.$s.'</head>
|
|||
|
<body bgcolor="#F5F5F5" '.(($manuell==1) ? $js_aufruf_manuell : $js_aufruf_automatisch).headline();
|
|||
|
$pagefooter='</body></html>';
|
|||
|
$complete_page=$pageheader.$debugausgabe.implode("\n",$aus).$pagefooter;
|
|||
|
// und raus
|
|||
|
WriteTempOut($out);
|
|||
|
$f=fopen("work/log/out.html","w");
|
|||
|
fwrite($f,$complete_page);
|
|||
|
fclose($f);
|
|||
|
flush();
|
|||
|
echo '<script type="text/javascript">parent.msd_ausgabe.location.href="./work/log/out.html";</script>';
|
|||
|
|
|||
|
} else {
|
|||
|
$pagefooter='</body></html>';
|
|||
|
$js_aufruf_automatisch='<script language="javascript">self.location="dump.php?'.$page_parameter.'";</script>';
|
|||
|
$js_aufruf_manuell='<input type="Button" value="weitermachen" onclick="self.location.href=\'dump.php?'.$page_parameter.'\'">';
|
|||
|
$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();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
?>
|