20) { $fname=substr($restore["filename"],-20); $pp=strpos($fname,"part"); $fmp=($pp>0); if(($fmp>0) && $restore["offset"]==0 && $restore["part"]=="") { //ersten Part erzeugen $restore["filename"]=NextPart($restore["filename"],1); } } //die($restore["filename"]); // Datei oeffnen $restore["filehandle"] = ($restore["compressed"]) ? gzopen($fpath.$restore["filename"],"r") : fopen($fpath.$restore["filename"],"r"); if ($restore["filehandle"]) { //nur am Anfang Logeintrag if($restore["offset"]==0) { if($fmp>0) WriteLog("Start Multipart-Restore '".$restore["filename"]."'"); else WriteLog("Start Restore '".$restore["filename"]."'"); // Statuszeile auslesen if ($restore["compressed"]) { //$fp = gzopen ($fpath.$restore["filename"], "r"); $statusline=gzgets($restore["filehandle"],40960); //gzclose ($fp); } else { //$fp = fopen ($fpath.$restore["filename"], "r"); $statusline=fgets($restore["filehandle"],500); //fclose ($fp); } $sline=ReadStatusline($statusline); $restore["anzahl_tabellen"]=$sline[0]; $restore["anzahl_eintraege"]=$sline[1]; $restore["part"]=($sline[2]=="") ? 0 : substr($sline[2],3); if($config["empty_db_before_restore"]==1 && $restore["part"]==0) EmptyDB($databases["db_actual"]); } // Wenn GZ-Komprimierung aus ist, koennen wir mit Hilfe der Filegroesse // ausrechnen, wieviel Prozent der Datei fertig sind. // Bei GZ=1 geht es nicht, weil sich der Offset auf die ungepackte Groesse // bezieht und somit nicht ins Verhältnis zur Dateigroesse gestellt werden kann. if ($restore["compressed"]==0) $filegroesse=filesize($fpath.$restore["filename"]); // Dateizeiger an die richtige Stelle setzen ($restore["compressed"]) ? gzseek($restore["filehandle"],$restore["offset"]) : fseek($restore["filehandle"],$restore["offset"]); // Jetzt basteln wir uns mal unsere Befehle zusammen... $a=0; //print_r($restore);echo "
'; $aus[]= ' | ' .' | '.(number_format($prozent,2,",",".")).' % |
';
$aus[]='Speed '.$restore["anzahl_zeilen"].' | ';
$aus[]='
|
'.zeit_format(time()-$restore["xtime"]).', '.$restore["aufruf"].' pages'; //, speed '.$anzahl_zeilen; $aus[]= ($fmp>0) ? ', file '.$restore["part"] : ''; $aus[]= ($restore["errors"]>0) ? ', '.$restore["errors"].' errors' : ''; $aus[]= '
'; $restore["summe_eintraege"]+=$eingetragen; //Zeitanpassung if($config["direct_connection"]==1) { if ($dauer<$restore["max_zeit"]) { $restore["anzahl_zeilen"]=$restore["anzahl_zeilen"]*$config["tuning_add"]; } else { $restore["anzahl_zeilen"]=$restore["anzahl_zeilen"]*$config["tuning_sub"]; } $restore["anzahl_zeilen"]=round($restore["anzahl_zeilen"],0); if($config["minspeed"]>0) {if ($restore["anzahl_zeilen"]<$config["minspeed"]) $restore["anzahl_zeilen"]=$config["minspeed"];} if($config["maxspeed"]>0) {if($restore["anzahl_zeilen"]>$config["maxspeed"]) $restore["anzahl_zeilen"]=$config["maxspeed"];} } $page_parameter='offset='.$restore["offset"].'&aufruf='.$restore["aufruf"].'&actual_table='.$restore["actual_table"]; $page_parameter.="&filename=".urlencode($restore["filename"])."&kind=".$restore["kind"]."&xtime=".$restore["xtime"]; $page_parameter.= "&table_ready=".$restore["table_ready"]."&eintraege_ready=".$restore["eintraege_ready"]; $page_parameter.= "&anzahl_tabellen=".$restore["anzahl_tabellen"]."&anzahl_eintraege=".$restore["anzahl_eintraege"]; $page_parameter.= "&actual_fieldcount=".$restore["actual_fieldcount"]."&part=".$restore["part"]; $page_parameter.= "&anzahl_zeilen=".$restore["anzahl_zeilen"]; $page_parameter.= "&summe_eintraege=".$restore["summe_eintraege"]."&do_it=".$restore["do_it"]."&err=".$restore["errors"]; } else { if(($restore["part"]=="") || ($restore["table_ready"]==$restore["anzahl_tabellen"] && $restore["eintraege_ready"]==$restore["anzahl_eintraege"])) { // Uff, geschafft! Jetzt darf die Leitung wieder abkuehlen. :-) $restore["xtime"]=time()-$restore["xtime"]; WriteLog("Restore '".$restore["filename"]."' finished in ".zeit_format($restore["xtime"])."."); $aus[]= ''.zeit_format($restore["xtime"]).", ".$restore["aufruf"]." pages
"; if($restore["errors"]>0) $aus[]='Es sind '.$restore["errors"].' Fehler aufgetreten: ansehen
'; } else { //Multipart-Restore $nextfile=NextPart($restore["filename"]); if(!file_exists($config["paths"]["backup"].$nextfile)) { $aus[]= 'Multipart-Backup: Missing File \''.$nextfile.'\' !
'; $aus[]= ''.(number_format($restore["eintraege_ready"],0,",",".")).' '.$lang['restore_run2'].''.zeit_format($restore["xtime"]).", ".$restore["aufruf"]." pages
"; if($restore["errors"]>0) $aus[]=''.$lang['errors_occured'].': '.$lang['view'].'
'; } else { //Selbstaufruf mit nächstem File $page_parameter="offset=0&aufruf=".$restore["aufruf"]."&actual_table=".$restore["actual_table"]; $page_parameter.= "&filename=".urlencode($nextfile)."&kind=".$restore["kind"]."&xtime=".$restore["xtime"]; $page_parameter.= "&table_ready=".$restore["table_ready"]."&eintraege_ready=".$restore["eintraege_ready"]; $page_parameter.= "&anzahl_tabellen=".$restore["anzahl_tabellen"]."&anzahl_eintraege=".$restore["anzahl_eintraege"]; $page_parameter.= "&actual_fieldcount=".$restore["actual_fieldcount"]."&part=".++$restore["part"]; $page_parameter.= "&anzahl_zeilen=".$restore["anzahl_zeilen"]; $page_parameter.= "&summe_eintraege=".$restore["summe_eintraege"]."&do_it=".$restore["do_it"]."&err=".$restore["errors"]; } } } } else $aus[]=$fpath.$restore["filename"]." : ".$lang["file_open_error"]; //===================================================================== //================= Anzeige =========================================== //===================================================================== //Seite basteln //DEBUGGER $debugausgabe=""; //$debugausgabe="