Archiv verlassen und diese Seite im Standarddesign anzeigen : maximal grösse bei fwrite() ???
hi
habe da ein scheiss problem, und zwar, habe ich ein script, welches nicht geht, also so halbe mindestens.
und zwar macht das ein backu von einer mysql DB, und speichert das ganze als textdatei, macht schliesslich noch eine gZip version draus.
also, das geht auch wunderbar, bis vor kurzem.
und zwar ist das so:
wenn ich beim mysql query ein LIMIT 0,1000 ranmache, dann macht er das backup halt nur mit 1000DS, aber dann geht es.
wenn ich aber das backup von alles DS machen will, schafft er es nicht mehr, und beendet einfach ohne fehlerausgabe.
also, ich denke das liegt nun daran, das der fwrite befehl irgendwie zu viele zeichen speichern müsste.
er muss rund 5,5mb speichern.
weiss jemand, ob nun dieser fwrite eine begrenzung von weiss ich wievielen bytes hat??
ich denke eher, dass dein timelimit für dein script erreicht wird, und daher ein abbruch erfolgt.
glaub ich weniger, da mein max_exec_time bei sage und schreibe 7200 sekunden liegt, und meine max_input_time bei immerhin 600sek ist.
die memory_limit immerhin bei 32Mb
kann also kaum an dem liegen.
auch ist noch genug platz auf der platte frei ( > 2gb)
trotzdem danke für die schnelle antwort
hi
weiss den hier niemand, was da los sein könnte??
halli hallo, bitte ist sehr dringend, ich kann jetzt keine backups mehr machen.
weiss denn niemand rat??
hiiiiiillllllffffffeeeee
also ich geb euch jetzt doch mal den source, vielleicht nützt es doch noch.
aber eben, als die tabelle noch etwas kleiner war, ging alles.
<?php
//ausgabe puffer löschen, dass alle echos fortlaufend angezeigt werden
ob_implicit_flush();
//weitermachen wenn der user das fenster schliesst?aber sicher doch
ignore_user_abort(true);
?><html>
<head>
<title>BackUp</title>
<link rel="stylesheet" type="text/css" href="inc/style.css">
<style type="text/css">
<!--
body{
margin-left:10px;
margin-top:7px;
}
//-->
</style>
</head>
<body bgcolor="#AFCCE7">
<?php
if(eregi("filebackup",$type)){//klammer start "filebackup"
echo "Erstelle BackUp...<br>\n";
//verbindung zu mysql herstelltn
include("../../require/include/connect.php");
$path ="log/dump/";
function gzcompressfile($source,$level=9){
$dest=$source.'.gz';
$mode='wb'.$level;
$error=false;
if($fp_out=gzopen($dest,$mode)){
if($fp_in=fopen($source,'rb')){
while(!feof($fp_in))
gzputs($fp_out,fread($fp_in,1024*512));
fclose($fp_in);
}
else $error=true;
gzclose($fp_out);
}
else $error=true;
if($error) return false;
else return $dest;
}
$file_name = $path.date("d.m.Y_\u\m_H\.i\.s").".csv";
// Start Ausgabe und Berechnung
unset($data);
$data="";
$result=mysql_query("select * from filegrabber");
$anzahl= mysql_num_rows ($result);
$spaltenzahl = mysql_num_fields($result);
for ($i=0;$i<$anzahl;$i++) {
$zeile=mysql_fetch_array($result);
for ($k=0;$k < $spaltenzahl;$k++){
if($k == ($spaltenzahl - 1))
{
$data.="\"".addslashes($zeile[$k])."\"";
}
else
{
$data.="\"".addslashes($zeile[$k])."\";";
}
}
$data.= "\r\n";
}
$fd = fopen($file_name,"a+");
fputs($fd, $data);
fclose($fd);
gzcompressfile($file_name,9);
unlink($file_name);
echo "Datei mit dem Namen \"<i>".basename($file_name).".gz</i>\" erstellt<br>\n\n";
echo "<span class='green'>BackUp erfolgreich erstellt</span>\n\n";
}//klammer ende "filebackup"
?>
heino1989 24-04-2004, 21:51 kannst du bitte mal aufhören deinen beitrag andauernd zu pushen ?
es nervt !!! wenn dir niemand antwortet weiss es wohl niemand oder derjenige , der es weiss ist nicht online !!! also hör damit bitte auf
Mann könnte ja sogar mal richtig antworten ... nur leider hat der Kerl ja immer noch kein richtiges deutsch gelernt ... warum und vor allem wo also sollte ich mir seine Frage erstmal übersetzen lassen??
Anders gefragt ... warum sollte ich mir bei der Beantwortung seiner Frage Mühe geben, wenn der Herr sich nicht einmal bei der Fragestellung mühe gibt ... :dontknow:
heino1989 24-04-2004, 22:28 öh du hast recht :D was will der eigentlich von uns ?
also nochmals.
ich hab meine fragen nochmals durchgelesen.
ist doch wohl klar.
der unterste satz im eröffnungs thread ist doch eine klare frage.
"weiss jemand, ob nun dieser fwrite eine begrenzung von weiss ich wievielen bytes hat??"
was kann ich dafür das ich halt mal noch ein newbie bin, und nicht alle heimtückischen kleinigkeiten von jedem achso unwichtigen befehl (oke, oke, fwrite ist nicht unwichtig) kenne.
im PHP handbuch konnte ich in den usercomments zwar finden, dass er wenn kein speicherplatz mehr auf der HDD frei ist, nur ein zero-byte-file erstellt, also einfach ohne inhalt.
das problem ist, es kommt nicht mal das.
ach ja, wenn doch noch jemand was zu meinem deutsch meint, sorry, ich bin auch kein meister, aber für das, dass ich erst vor 2 jahren in die schweiz eingereist bin, denke ich, beherrsche ich es doch recht gut.
und das mit der gross-klein-schreibung, schaut euch hier rum, selbst abraxax schreib immer klein.
verurteilt also nicht jemanden nach dem stil, mit welchem er zu schreiben pflegt.
danke
und das ich mit dem pushing nerve, das glaube ich, aber anders gesehen ist das halt ne art hilfe ruf.
ich habe diese frage schon in div. communitys und zwei newsgroups gepostet, leider wurde noch nirgends was gutes, rsp. brauchbares gepostet.
und da ihr aus eigener erfahrung aus die "cleversten" sind, zähle ich nun mal auf eure antwort, und ich darf hier sagen, dass hier sonst immer sehr schnell geanwortet wird.
leider hat sich dieser thread nach zwei tagen kaum ein stück nach vorne bewegt.
heino1989 25-04-2004, 01:11 http://de2.php.net/de/fwrite
Wenn der length Parameter gegeben ist, wird das Schreiben nach length Bytes beendet, oder wenn das Dateiende (EOF) erreicht ist. Je nachdem was eher eintritt. natürlich wird das auch dur die maximale dateigröße deines system beschränkt bei windows glaub ich 2 oder 4 GB
pushen ist trotzdem dreck und in vielen foren verboten ;)
bzw. nach ner woche oder so darf man sein thread nochmal pushen aber nicht jeden tag
nun, also ich habe den optitionalen parameter $lenght nicht abgegeben, wie man aus dem script lesen könnte.
egal.
und also die datei ist nicht einaml 10megabyte gross, womit die dateigrösse _hoffenlich_ nicht erreicht ist :)
ich jetzt mal so provisorisch ein backup durch die *.frm *.MYI und *.MYD dateien gemacht.
allerdings finde ich es eher unschön.
|
-
- |