Befehle trotz Timeout weiter ausführbar?
Risibility
- php
0 seppel0 Risibility0 seppel
0 Nixwisser
Ich habe mir ein Script erstellt, welches meine 4 Datenbanken und das kopmlette FTP-Verzeichnis als tar.gz auf dem FTP anlegt und mir dann mittels HTTP eine Seite ausgibt um diese dann downzuloaden.
Wie man sich schon denken kann, hab ich mit den Datenbanken dort weniger ein Problem. Das erstellen der tar.gz dauert leider zu lange und das Timeout bricht mir dann den ganzen spaß ab.
Als Befehl hab ich folgenden genommen:
exec("tar zcvf /zielpfad/datei.tar.gz /sicherungspfad/ --exclude=backupverzeichnis/*.*");
Da ich beim stundenlangen googlen nichts brauchbares gefunden habe (sprich set_time_limit(0); & Co fuzzt nicht) hab ich mir nun überlegt, das es vielleicht möglich wäre, den Befehl auszuführen ohne das er abhängig vom Timeout weiter ausgeführt wird. Dann könnte die Ausgabe einfach nur über einen refresh überprüfen, ob die datei schon vorhanden ist oder nicht...
Hat jemand eine Idee?
Grüße
Ris
hi,
Da ich beim stundenlangen googlen nichts brauchbares gefunden habe (sprich set_time_limit(0); & Co fuzzt nicht)
versuchs doch einfach mit set_timeout(999999) oder länger...er hört ja eh auf, wenn er fertig ist.
Gruss,
Seppel
versuchs doch einfach mit set_timeout(999999) oder länger...er hört ja eh auf, wenn er fertig ist.
Fuzzt auch nicht. Der Servertimeout liegt bei 120sek. und da geht nix drüber.
Also ich weiß von einem cgi-skript, wo man den browser schließen konnte und das tar trotzdem weiter lief. Das konnte man dann bei bedarf dann irgendwann runter laden. Das gleiche suche ich jetzt halt in php.
Fuzzt auch nicht. Der Servertimeout liegt bei 120sek. und da geht nix drüber.
gibt es in PHP nicht sowas wie server.set_timeout(x) - kenne das nur von ASP(Server.ScriptTimeout=x), da kann man die Zeit auf jeden Fall hochsetzen.
Viel Glück noch beim Suchen
Seppel
Das Erstellen der tar.gz dauert leider zu lange und das Timeout bricht mir dann den ganzen spaß ab.
Als Befehl hab ich folgenden genommen:
exec("tar zcvf /zielpfad/datei.tar.gz /sicherungspfad/ --exclude=backupverzeichnis/*.*");
Probiere es mit
shell_exec("tar zcvf /zielpfad/datei.tar.gz /sicherungspfad/ --exclude=backupverzeichnis/*.* &");
Das Und am Ende veranlasst die Shell, das gewünschte Programm im Hintergrund zu starten (siehe Bash-Anleitung).
Probiere es mit
shell_exec("tar zcvf /zielpfad/datei.tar.gz /sicherungspfad/ --exclude=backupverzeichnis/*.* &");
Vielen Dank. Ich habe die Zeile ausgetauscht und angepasst. Der Timeout kam natürlich trotz allen (war ja auch zu erwarten). Nach 10 Minuten warten war aber via FTP noch nichts zu sehen von der Datei und für gewöhnlich sollte die Erstellung dieses tar nicht länger als 5 dauern.