Scripts et Programmation

PHP - Lancer des processus shell dans une page php

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction






Lancer une commande et afficher le résultat dans la page



Code PHP :
<?php
$output = shell_exec('cat /etc/hosts');
echo "<pre>$output</pre>";
?>
 



Afficher périodiquement les 20 dernières lignes d'un fichier de log



Code PHP :
<?php
header("Refresh: 1;url=http://192.168.18.4/syslog.php");
$output = shell_exec('tac /var/log/syslog | head -n20');
echo "<pre>$output</pre>";
?>



Lancer un script détaché de la page php



Il est nécessaire de posséder screen sur le serveur :

Code PHP :
<?php
shell_exec('screen -dm sleep 60');
?>


Si on veut s'assurer que le script ne soit lancé qu'une fois, on nomme notre screen et on vérifie s'il existe :

Code PHP :
<?php
$val = shell_exec('screen -ls | grep -c php ');
echo $val;
 
if ( $val < 1 ) {
        shell_exec('screen -dmS php sleep 60');
} else {
        echo "La commande a déja été lancée";
}
?>