Goedenavond,
Ik heb een webserver draaien op een fileservertje hier, en die is alleen bereikbaar vanuit het LAN. Het hoofddoel van deze webserver is het serveeren van een startpagina en onderhoudspagina aan de computers in het netwerk.
Ik heb een batch file geschreven die bepaalde partities backupt naar andere locaties(het uitvoeren hiervan kan lang duren). De bedoeling is dat deze door de user geactiveerd wordt, en dus wil ik deze batch file aanroepen via PHP.
Dat aanroepen 'mag' van mij op 2 manieren:
Het aanroepen van de batch file is geen probleem, dat doe ik middels de volgende code:
Het probleem is dat op deze manier gewacht wordt tot de batch file helemaal uitgevoert wordt, en dat de output dan pas naar de browser gestuurd wordt. Ik dacht dat te veranderen door passthru() te gebruiken, maar ook hier wordt eerst gewacht tot de batch file compleet is doorlopen alvorens de output naar de browser te sturen.
Op wat voor manier kan ik een van beide gewenste opties realiseren? Met exec() en passthru() functies zit ik wél met de max_execution_time, maar zie nog steeds geen realtime output.
Alvast bedankt!
Ik heb een webserver draaien op een fileservertje hier, en die is alleen bereikbaar vanuit het LAN. Het hoofddoel van deze webserver is het serveeren van een startpagina en onderhoudspagina aan de computers in het netwerk.
Ik heb een batch file geschreven die bepaalde partities backupt naar andere locaties(het uitvoeren hiervan kan lang duren). De bedoeling is dat deze door de user geactiveerd wordt, en dus wil ik deze batch file aanroepen via PHP.
Dat aanroepen 'mag' van mij op 2 manieren:
- Door op een linkje te klikken wordt een pagina geopend, waarna middels PHP de batch file gestart wordt, en de user weer terug wordt gestuurd naar de originele pagina. Zo 'runt' de batch file op de achtergrond, net als dat het gestart wordt door 'geplande taken'.
- Door op een linkje te klikken wordt een pagina geopend, waarna middels PHP de batch file gestart wordt, en de output van de batch file (geupdate files, etc) direct in de browser wordt getoont. (Heeft als nadeel dat je zit met de max_execution_time, maar dat zal niet vaak voorkomen)
Het aanroepen van de batch file is geen probleem, dat doe ik middels de volgende code:
code:
1
2
3
4
| <?php header('Content-Type: text/plain'); exec("backup.bat"); ?> |
Het probleem is dat op deze manier gewacht wordt tot de batch file helemaal uitgevoert wordt, en dat de output dan pas naar de browser gestuurd wordt. Ik dacht dat te veranderen door passthru() te gebruiken, maar ook hier wordt eerst gewacht tot de batch file compleet is doorlopen alvorens de output naar de browser te sturen.
Op wat voor manier kan ik een van beide gewenste opties realiseren? Met exec() en passthru() functies zit ik wél met de max_execution_time, maar zie nog steeds geen realtime output.
Alvast bedankt!