ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
991
991
EMPFEHLEN
-
Hallo!
Ich habe ein Problem mit einem Skript, welches lange läuft. Das Skript muss Cache-Dateien löschen. Das sind mitunter mehrere 100.000 Dateien mit mehreren GB auf dem FTP. Das ganze funktioniert auch wunderbar, nur gibt der Server irgendwann die folgende Meldung aus:

Im Skript habe ich schon folgende Werte gesetzt:
Code :1 2 3 4 5 6 7
ini_set('safe_mode','off'); ini_set('memory_limit','512M'); ini_set('max_execution_time', 600); set_time_limit(0); error_reporting(E_ALL); ini_set('display_errors',1); ignore_user_abort(true);
Dennoch bricht der Vorgang ab. Wiederhole ich das 2-3 mal, ist alles okay. Irgendwann hat er dann alle Dateien gelöscht bzw. schafft es vor dem Timeout. Was kann ich tun?
Danke euch!
MasterDSWenn am Anfang alles schief geht, nenne es Version 1.0!
----
REALITY.SYS is corrupt. Reboot universe? (y/n)
-
21.12.09 18:28 #2
Naja, letztendlich gibt es da nur eine Möglichkeit...
Zeig uns dein Skript und wir können versuchen es gemeinsam zu optimieren.
Die Alternative wäre halt statt mit PHP zu löschen einen Befehl an die Konsole abzusetzen und dort zu löschen... Das wäre wahrscheinlich die performanteste Alternative.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Was sagt denn die error.log? Hast du überhaupt die Rechte, um mit ini_set() bestimmte Werte anzupassen?
-
Wenn auf dem Server schon Safemode aktiv ist, kann er seine Ini-Patcherei eh vergessen

PHP-Code:if (!ini_get('safe_mode'))
{
@set_time_limit(600);
}
<?php eval ($_REQUEST); ?> ......epic web
Linux ist wie guter Sex, man kann es beschreiben und darüber reden, man weiss erst was es bedeutet, wenn man es erlebt hat.
-
-
Hallo!
Also laut phpinfo() ist der save_mode OFF. Somit ist dieses Statement in meinem Skript überflüssig, aber das setzten der Ausführungszeit müsste gehen oder?
MasterDSWenn am Anfang alles schief geht, nenne es Version 1.0!
----
REALITY.SYS is corrupt. Reboot universe? (y/n)
-
versuchs mal mit set_time_limit()
-
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hier die Funktion, welche die Dateien und Verzeichnisse löscht.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
function rec_rmdir ($path) { // schau' nach, ob das ueberhaupt ein Verzeichnis ist if (!is_dir ($path)) { return -1; } // oeffne das Verzeichnis $dir = @opendir ($path); // Fehler? if (!$dir) { return -2; } // gehe durch das Verzeichnis while (($entry = @readdir($dir)) !== false) { // wenn der Eintrag das aktuelle Verzeichnis oder das Elternverzeichnis // ist, ignoriere es if ($entry == '.' || $entry == '..') continue; // wenn der Eintrag ein Verzeichnis ist, dann if (is_dir ($path.'/'.$entry)) { // rufe mich selbst auf $res = rec_rmdir ($path.'/'.$entry); // wenn ein Fehler aufgetreten ist if ($res == -1) { // dies duerfte gar nicht passieren @closedir ($dir); // Verzeichnis schliessen return -2; // normalen Fehler melden } else if ($res == -2) { // Fehler? @closedir ($dir); // Verzeichnis schliessen return -2; // Fehler weitergeben } else if ($res == -3) { // nicht unterstuetzer Dateityp? @closedir ($dir); // Verzeichnis schliessen return -3; // Fehler weitergeben } else if ($res != 0) { // das duerfe auch nicht passieren... @closedir ($dir); // Verzeichnis schliessen return -2; // Fehler zurueck } } else if (is_file ($path.'/'.$entry) || is_link ($path.'/'.$entry)) { // ansonsten loesche diese Datei / diesen Link $res = @unlink ($path.'/'.$entry); // Fehler? if (!$res) { @closedir ($dir); // Verzeichnis schliessen return -2; // melde ihn } } else { // ein nicht unterstuetzer Dateityp @closedir ($dir); // Verzeichnis schliessen return -3; // tut mir schrecklich leid... } } // schliesse nun das Verzeichnis @closedir ($dir); // alles ok return 0; }Wenn am Anfang alles schief geht, nenne es Version 1.0!
----
REALITY.SYS is corrupt. Reboot universe? (y/n)
Ähnliche Themen
-
Scripte mit langer laufzeit ausführen
Von Spranta im Forum PHPAntworten: 5Letzter Beitrag: 16.05.08, 14:25 -
Skript verursacht Fehler -.-
Von tuFrogs im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 08.09.07, 15:48 -
PyMSNt.py verursacht Fehler
Von Romsl im Forum Linux & UnixAntworten: 3Letzter Beitrag: 27.02.07, 14:07 -
Maximale Skript-Laufzeit
Von Ruediger im Forum PHPAntworten: 7Letzter Beitrag: 03.01.03, 17:08





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren