[PHP] execution d'un fichier BASH
Fermé
marco
-
31 mai 2005 à 16:34
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 9 oct. 2009 à 17:48
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 9 oct. 2009 à 17:48
A voir également:
- [PHP] execution d'un fichier BASH
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
8 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
31 mai 2005 à 16:50
31 mai 2005 à 16:50
Salut,
Tu as essayé ton script bash directement sur un shell?
Tu as essayé ton script bash directement sur un shell?
le script bash fonctionne bien quand il est lancé directement par la console, et le ./script.bash dans le exec() ne change rien, aucun fichier n'est créé en sortie...
je vois pourtant rien d'illogique...
si quelqu'un pouvait m'envoyer un bout de code qui marche lui afin que je compare.
merci de vos réponses, et merci d'avance pour les prochaines
je vois pourtant rien d'illogique...
si quelqu'un pouvait m'envoyer un bout de code qui marche lui afin que je compare.
merci de vos réponses, et merci d'avance pour les prochaines
Salut, personnellement j'utilise la ligne de commande comme ca :
ne vous preoccupez pas des 2 derniers args
$cmd = "unzip $source -d $temporary_target"; exec($cmd, $exec_output, $exec_retval);
ne vous preoccupez pas des 2 derniers args
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
... mais ils sont essentiels (en tout cas pour moi) meme si on ne s'en sert pas
toujours pas...
voilà le code php :
Et à l'affichage seul le code de php.net a fonctionné.
exec_output est bien un tableau ais apparemment vide...
Je précise aussi que le fichier shell est en 777
Je vous mets le code shell, dès fois que...
mais il marche bien quand il est pas lancé par PHP :/
Perso j'ai plus d'idée là...
voilà le code php :
<? echo "Lancement du script de recherche...<br />"; //code de romain $cmd="maj.bash"; exec($cmd, $exec_output, $exec_retval); foreach($exec_output as $exec_outputline) { echo("$exec_outputline<br>"); } //code de php.net $cmd2="ls -l"; exec("$cmd2 2>&1", $output); foreach($output as $outputline) { echo("$outputline<br>"); } echo "Fin d'éxecution du script de recherche <br />"; ?>
Et à l'affichage seul le code de php.net a fonctionné.
exec_output est bien un tableau ais apparemment vide...
Je précise aussi que le fichier shell est en 777
Je vous mets le code shell, dès fois que...
#!/bin/bash echo "Lancement de la commande récupération des hôtes des réseaux..." nmap -sP IP/24 > "nmap1.tmp" nmap -sP IP/24 > "nmap2.tmp" nmap -sP IP/24 > "nmap3.tmp" echo "Fin"
mais il marche bien quand il est pas lancé par PHP :/
Perso j'ai plus d'idée là...
oki, c'est résolu.
J'ai redirigé les .tmp vers le dossier qui est fait pour ça lol > /tmp/ et là bizarrement ça marche! lol forcement je crois que le problème venait du fait que ne précisant pas le chemin complet bah le système essayait d'écrire à la racine / et jpense pas qu'on puisse, même en root...
enfin bref, c'est résolu
Merci à vous, et pour ceux qui ont le même problème :
http://lists.ze-linux.org/2003-08/msg00145.html
voilà le post d'un forum qui m'a débloqué ^^ si ca peut servir...
Bonne journée à tous
J'ai redirigé les .tmp vers le dossier qui est fait pour ça lol > /tmp/ et là bizarrement ça marche! lol forcement je crois que le problème venait du fait que ne précisant pas le chemin complet bah le système essayait d'écrire à la racine / et jpense pas qu'on puisse, même en root...
enfin bref, c'est résolu
Merci à vous, et pour ceux qui ont le même problème :
http://lists.ze-linux.org/2003-08/msg00145.html
voilà le post d'un forum qui m'a débloqué ^^ si ca peut servir...
Bonne journée à tous
Re!
J'avais posté un nouveau problème dans le forum Unix-Linux car il concerne la commande shell NMAP, et vu que je n'ai pas bcp de réponses, on me conseille aussi ce forum
-------
Je viens de voir un truc bizarre avec la commande nmap:
Est ce normal qu'un "nmap -sP IP/24 > /tmp/test.tmp" lancé par console affiche 2 lignes par hôte (host+\n+@Mac), et que le même nmap lancé par un exec() de PHP n'affiche que la ligne host ??
(//Ce post pourrait faire partie aussi du forum programmaion mais je voudrais savoir si ce résultat est dû à une particularité de nmap.) Au vu de ce résultat, j'ai l'impression que nmap lance une autre commande pour pouvoir afficher l'@mac correspondant au host trouvé, ce qui expliquerait peut être pourquoi avec PHP je n'obtient que les lignes host...
lien : http://www.commentcamarche.net/forum/affich-1564004-%5BCOMMANDE%5D-Etranget%E9-de-Nmap
------
Résultat de la commande :
En console j'ai :
"
" //pour chaque machine.
En Php j'ai seulement :
"
" //pour chaque machine.
Suivant les réponses du forum Unix-Linux, j'ai appliqué certaines modifications qu'on m'a conseillées (2>&1 par exemple) mais cela ne fonctionne pas mieux. Qulequ'un a déjà eu ce genre de problème? une solution?
Merci de votre aide, et bien bonne journée à vous
J'avais posté un nouveau problème dans le forum Unix-Linux car il concerne la commande shell NMAP, et vu que je n'ai pas bcp de réponses, on me conseille aussi ce forum
-------
Je viens de voir un truc bizarre avec la commande nmap:
Est ce normal qu'un "nmap -sP IP/24 > /tmp/test.tmp" lancé par console affiche 2 lignes par hôte (host+\n+@Mac), et que le même nmap lancé par un exec() de PHP n'affiche que la ligne host ??
(//Ce post pourrait faire partie aussi du forum programmaion mais je voudrais savoir si ce résultat est dû à une particularité de nmap.) Au vu de ce résultat, j'ai l'impression que nmap lance une autre commande pour pouvoir afficher l'@mac correspondant au host trouvé, ce qui expliquerait peut être pourquoi avec PHP je n'obtient que les lignes host...
lien : http://www.commentcamarche.net/forum/affich-1564004-%5BCOMMANDE%5D-Etranget%E9-de-Nmap
------
Résultat de la commande :
En console j'ai :
"
Host [@IP] appears to be up. MAC Address: [@MAC] (type machine)
" //pour chaque machine.
En Php j'ai seulement :
"
Host 170.60.248.1 appears to be up.
" //pour chaque machine.
Suivant les réponses du forum Unix-Linux, j'ai appliqué certaines modifications qu'on m'a conseillées (2>&1 par exemple) mais cela ne fonctionne pas mieux. Qulequ'un a déjà eu ce genre de problème? une solution?
Merci de votre aide, et bien bonne journée à vous
Up!
Re!
J'ai tout essayé, les exec, system et passthru mais rien n'y fait. Please si quelqu'un pouvait m'aider! un grand merci d'avance!!
Re!
J'ai tout essayé, les exec, system et passthru mais rien n'y fait. Please si quelqu'un pouvait m'aider! un grand merci d'avance!!
a ckeu g testé, lé commande exec(), et lé otre dan le mm style, sont bloqué par lé hbergeur, jpeu faire ocune commande du genre ipconfig... ext. en php.
ca vien peu etre de la..
apré jsui débutan en php
ca vien peu etre de la..
apré jsui débutan en php
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
>
niano
9 oct. 2009 à 17:48
9 oct. 2009 à 17:48
Et ne pas remonter les vieux topics dont la dernière réponse date de plus de 2 ans ...