PHP - Lancer des processus shell dans une page php
Table des matières
Il est nécessaire de posséder screen sur le serveur :
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 :
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"; } ?>