Too many open files

Hey Leute!

Seit neuestem bekomme ich, wenn ich mein Backupscript ausführe die Meldung:

Angeblich soll das an den Servereinstellungen des Webservers liegen!?

Wär das möglich, oder gibts für den Fehler noch ne andere Ursache?

Danke schonmal
Lg miniwe

Backupscript? Selbst geschrieben oder woher?
Der Fehler kommt einfach daher, dass es für Filehandles (=geöffnete Dateien) ein Limit gibt. Sieht so aus, als würde das Script Handles nach Benutzung nicht schließen.

selbstgeschrieben, jap

Das anscheinend zu viele handles existieren, hab ich mir schon gedacht, aber das komische ist ja, dass ich nur ein fopen() habe und das eben mit dieser Warnung fehlschlägt.
Bis vor kurzem ist ja noch alles gegangen.

Wenn ich heimkomme poste ich das Script mal, aber eigentlich sollte der Fehler darin nicht liegen.

Auf diese Aussage bin ich übrigens nach Besuch dieser Seite gestoßen…

Edit:

[code]<?
$starttime = time();

// neue ZIP-Datei erstellen
$zip = new ZipArchive;
$res = $zip->open(‘backup_tmp.zip’, ZipArchive::CREATE);
if ($res === TRUE) {
$chronik = “—Neues .zip-Archiv erstellt\n BACKUP beginnt\n\n”;
} else {
exit;
}
// SQL-Backup machen
include(“secure/mysql_backup.php”);

// Daten durchsteppen und in ZIP-Archiv aufnehmen
$allDatas = scanDirectories(".",$allData);
$k=0;
$l=0;
for ($i=0;$i<count($allDatas);$i++) {
$file = substr($allDatas[$i],2);
if (notBackup($file,$mode)!=true) {
if ($zip->addFile($file,$file)==true) {
$chronik .= ($k+1).".) “.$file.” erfolgreich hinzugefügt\n";
$k++;
}
} else {
$chronik .= “\t – “.$file.” aufgrund von noBackup() nicht hinzugefügt!\n”;
$l++;
}
}

// ZIP-Datei schließen
$zip->close();
/*
Es gibt ein Passwort, das für einige Aktionen gebraucht wird.
So schauts ungefähr aus:
base64_encode(md5(filetime(backup)).md5($[von mir definierter pw-String]).filesize(backup))
Der User gibt den pw-String ein, die anderen Informationen werden beim pwcheck ausgelesen, um sicherzustellen, dass die backup-Datei nicht manipuliert wurde
*/
$pwcheck_part[0] = md5(filemtime(“backup.zip”));
$pwcheck_part[2] = filesize(“backup.zip”);

// alte ZIP-Datei löschen
if (file_exists(“backup.zip”) && file_exists(“backup_tmp.zip”)) {
unlink (“backup.zip”);
}

// Neue ZIP-Datei umbennenen
rename(“backup_tmp.zip”, “backup.zip”);

$chronik .= “\n\n—Dateien erfolgreich gezippt!—”;
// Wenn die zip-Datei aktualisiert wird, muss natürlich auch das PW in der pw.php-Datei angepasst werden

$passwort_de = base64_decode($passwort);
$passwort_part[0] = substr($passwort_de,0,32); // md5-verschlüsselte filemtime
$passwort_part[1] = substr($passwort_de,32,32); // md5-verschlüsseltes Passwort
$passwort_part[2] = substr($passwort_de,64); // filesize

if ($passwort_part[0]!=$pwcheck_part[0] || strlen($passwort_part[1])!=32 || $passwort_part[2]!=$pwcheck_part[2]) {
$chronik .= “\n\n!WARNING! zip-Datei war manipuliert!”;
}

$passwort_neu = base64_encode(md5(filemtime(“backup.zip”)).$passwort_part[1].filesize(“backup.zip”));

$file = fopen(‘secure/pw.php’,‘w’); // <- Da taucht der Fehler auf
fwrite ($file, “<?\n”);
fwrite ($file, ‘$passwort = "’.$passwort_neu.’";’);
fwrite ($file, “\n?>”);
fclose ($file);
$chronik .= “\n\n—Passwort erfolgreich geändert!—”;

$chronik .= “\n\nBACKUP VOM “.date(‘d.m.Y’).” ERFOLGREICH AUSGEFÜHRT!”;
$endtime = time();
$dif = $endtime - $starttime;
$chronik .= “\nEs wurden “.$k.” Dateien gesichert\n”.$l." Daten aufgrund von notBackup() nicht gezippt.\nDauer: “.($dif).” Sekunden.";

$chronik .= “\n*************************************************\n\n”;

echo $chronik;
$file = fopen(‘secure/BACKUP/chronik.ini’,‘a’);
fwrite($file,$chronik);
fclose($file);[/code]

schaut a weng wild aus… ich weiß^^
die Funktionen,wie scanDirectories lass ich mal weg.
Da kann der Fehler nicht drin sein…

Ich hoffe ihr könnt mir bei meinem Problem helfen