Modification d'un fichier en PHP [RESOLU] - PHP - Programmation
Marsh Posté le 20-05-2011 à 13:39:43
Salut, si j'avais à créer ce genre de script, je procéderai ainsi.
Tu code ton script bash dans un fichier. Ensuite tu édite le fichier en question avec fopen(), tu remplace la variable que tu veux via un regex (par exemple), par $_POST[], tu save. Et ensuite, tu lance le script via exec() et le tour est joué
Marsh Posté le 25-05-2011 à 08:42:51
Donc pour exécuter mon script bash je devrais peocéder de la manière suivante non ?
<?php
exec('/var/www/script.sh')
?>
Le problème c'est que ça ne donne rien ...
Marsh Posté le 25-05-2011 à 08:57:52
ya de bonnes chances que tu puisses faire directement en php ce que fait ton bash, non? C'est quoi le bénef de mettre à jour ton script bash et de l'exécuter??
Marsh Posté le 25-05-2011 à 08:58:48
...et sinon, au lieu de mettre à jour ton script bash il serait probablement judicieux de le modifier pour qu'il prenne ta variable en paramètre...
Marsh Posté le 25-05-2011 à 09:13:09
Merci de ton retour, il y a effectivement la fonction shell_exec qui me permettra de simplifier ce que je veux faire.
Donc je récupère direct ma variable rentré dans mon formulaire et je l'intègre dans mon shell_exec c'est bien ça ?
Marsh Posté le 25-05-2011 à 09:15:21
Mais il fait quoi, ton script bash?
Marsh Posté le 25-05-2011 à 09:24:13
je veux insérer des serveurs dans mon fichier de conf nagios pour les superviser à l'aide du formulaire PHP.
Marsh Posté le 25-05-2011 à 09:25:06
Je réitère donc ma question initiale : pourquoi faire ça en bash et pas directement en php?
Marsh Posté le 25-05-2011 à 09:27:41
Mais je ne sais pas si c'est faisable directement en PHP ...
Je sais qu'en bash c'est faisable c'est pour cette raison que je restais sur cette idée.
Marsh Posté le 25-05-2011 à 09:33:47
Modifier un fichier en php ne pose pas de problèmes particuliers si tu as les bons droits d'accès...
Marsh Posté le 25-05-2011 à 09:39:57
Je t'explique rapidement mon objectif, Je veux rendre la configuration de Nagios (supervision d'un ou plusieurs serveurs) possible en remplissant des champs de formulaire. Les valeurs doivent être stockées dans des variables et intégrées dans du code php (si c'est possible).
La finalité de la chose, c'est de permettre à un utilisateur lambda (avec peu de connaissances en réseau) de configurer son outil nagios pour assurer la supervision de son réseau.
Merci d'avance de prendre du temps pour répondre à mes questions
Marsh Posté le 25-05-2011 à 09:45:10
Il n'y a pas de grosse difficulté à première vue : il suffit que ton script php qui traite le formulaire sache lire/écrire dans le fichier de conf nagios...
Marsh Posté le 25-05-2011 à 09:51:39
Merci pour ta réponse, je débute en php je vais voir ce que je trouve niveau syntaxe pour permettre la lecture/écriture dans la conf nagios.
A plus tard peut être
Encore merci
Marsh Posté le 25-05-2011 à 12:35:44
Voici l'état de mon fichier pour l'instant
|
Actuellement je fais des tests et ma variable pour le host_name n'est pas correctement reconnu.
Comment configurer mon fichier pour que le host_name corresponde à ma variable ?
Marsh Posté le 25-05-2011 à 12:43:17
j'ai l'impression que ta des pb avec les ' et "
Sinon moi sur mon serveur pour executer des script schell je procede un peu comme ca :
$bla="/bin/bash...
cd repertoire
commande shell...";
$f=fopen("now.sh","w" );
fputs($f,$bla);
fclose($f);
$pr=popen("now.sh", 'r');
pclose($pr);
Marsh Posté le 25-05-2011 à 14:24:36
Lisez un peu les gars, le mec veut juste faire un echo...
Attention, c'est balèze !
Code :
|
http://php.net/manual/fr/function. [...] ntents.php
Marsh Posté le 25-05-2011 à 17:58:48
check que www-data puisse exécuter des scripts d'init sinon tu vas avoir un probleme
Marsh Posté le 25-05-2011 à 20:07:29
Note : j'ai édité mon message pour virer le FILE_APPEND du file_put_contents... sinon tu vas avoir des problèmes
Marsh Posté le 08-06-2011 à 10:07:10
Bon, après quelques modifs, j'ai réussi à faire ce que je voulais à savoir rajouter les infos que je veux à la fin de mon fichier.
Code de mon formulaire à remplir (accueil.php) :
<p> |
Code de mon fichier qui traite les infos du formulaire (cible.php) :
|
Je n'arrivais pas à faire fonctionné la méthode proposé par CyberDenix sur mon serveur, donc j'ai fait mon développeur du dimanche
J'arrive bien à rentrer les infos que je veux dans /usr/local/nagios/etc/objects/localhost.cfg qui sont de la forme suivante
define host{ |
Donc tout fonctionne mais il y a un hic.
J'ai le fichier /usr/local/nagios/etc/objects/localhost.cfg édité par cible.php qui se met à jour tout seul sans que je fasse quoi que ce soit.
J'ai l'impression que mon cible.php rentre la variable $host sans $host2 (hostname) et $host4 (ipaddress) même quand je bosse dessus alors que je ne fais strictement rien.
Il existe un moyen de bloquer cela, même une solution de contournement ?
Marsh Posté le 08-06-2011 à 14:29:27
En fait je me suis pris la tête pour rien.
C'était un de mes fichiers de tests qui foutait la meïrde, tout fonctionne
Marsh Posté le 20-05-2011 à 10:05:54
Bonjour,
J'ai un besoin de dev et je voudrais savoir si c'était techniquement faisable.
Créer formulaire en PHP avec une method post pour récupérer une variable taper dans un champ input, récupérer cette variable, l'intégrer dans un bash, puis exécuter ce bash.
Tout ceci devrait être fait en cliquant sur un bouton submit.
Je précise que je suis débutant en dev.
Merci par avance de votre retour
Message édité par rainbow78 le 08-06-2011 à 14:30:21