Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2012, 20h23   #1
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
Par défaut Besoin d'aide pour compléter script

Bonjour, quelqu'un peut-il me compléter ce script shell ?
j'aimerai faire un script de recherche d'une chaine de caractère sur tout un hébergement.
Normalement, j'utilise putty pour faire cette recherche.
Dans putty, je tape en racine de mon hébergement :
Code :
find . -name "index.php" -exec grep -Hn "eval(base64_decode" {} \;
J'ai donc fait un script php avec commande Shell:
Code php :
1
2
3
4
5
 
<?php
$output = shell_exec('find . -name "index.php" -exec grep -Hn "eval(base64_decode" {} \;');
echo "<pre>$output</pre>";
?>
Le problème, c'est que mon script est placé dans un dossier de niveau 2.
Je voudrai que mon script débute en racine de mon hébergement, puis lance la recherche de la chaine dans tout mon hébergement qui est constitué de plusieurs dizaines de dossiers (répertoires) avec plusieurs niveaux. Il me manque donc juste un morceau de code...
Je lancerai ce script automatiquement à l'aide de mon planificateur de tache chez ovh.
Merci de votre aide. Laurent
lolo81100 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/01/2012, 10h07   #2
Membre confirmé
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 181
Points : 267
Points : 267
Tu peux peut etre ajouter un cd pour te placer dans le repertoire de ton choix avant le find et te replacer ou tu etais apres ?
Jean.Cri1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 10h34   #3
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 546
Points : 7 546
S'il s'agit juste de remonter de deux niveaux dans l'arborescence pour lancer le find, il suffit de faire comme ça :
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/01/2012, 10h56   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Citation:
Envoyé par al1_24 Voir le message
S'il s'agit juste de remonter de deux niveaux dans l'arborescence pour lancer le find, il suffit de faire comme ça :
C'est clair, mais un find / -name ... ne suffirait-il pas ?

__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 11h35   #5
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 994
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 994
Points : 6 158
Points : 6 158
Salut.

A défaut de savoir ce qu'il entend par "racine de son hébergement", la solution de al1_24 me parait plus sûr (si c'est pas un serveur dédié, il n'aura peut être pas les droits sur / etc).

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/01/2012, 19h04   #6
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
Par défaut Merci

Merci pour votre aide.
les ../.. fonctionnent. Non je ne suis pas sur un dédié mais en mutualisé. Merci encore
lolo81100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 19h49   #7
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
Par défaut Problème car recherche que en racine

Je reviens vers vous, car la recherche ne se fait qu'en racine de mon hébergement et pas dans tous les sous-répertoires.
Voici le code :
Code :
1
2
3
4
<?php
$output = shell_exec('find .-name "../../index.php" -exec grep -Hn "eval(base64_decode" {} \;');
echo "<pre>$output</pre>";
?>
Que dois-je rajouter pour faire une recherche dans tout l'hébergement.
Pour Rappel, je suis en mutualisé chez Ovh
Merci
lolo81100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 11h13   #8
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 055
Points : 4 934
Points : 4 934
Citation:
Envoyé par lolo81100 Voir le message
Je reviens vers vous, car la recherche ne se fait qu'en racine de mon hébergement et pas dans tous les sous-répertoires.
Voici le code :
Code :
1
2
3
4
<?php
$output = shell_exec('find .-name "../../index.php" -exec grep -Hn "eval(base64_decode" {} \;');
echo "<pre>$output</pre>";
?>
Salut

Déjà il faut un espace entre le chemin "." et l'option "-name".

Ensuite le système de fichier Unix est conçu avec des dossiers qui stockent des fichiers par leur "nom pur" (sans y rajouter le chemin)
Donc un fichier nommé "/xxx/yyy/toto/index.php" sera enregistré dans le dossier "toto" comme "index.php" et non comme "/xxx/yyy/toto/index.php". Le dossier "toto" sera enregistré dans le dossier "yyy" lui-même enregistré dans le dossier "xxx" lui même enregistré dans "/".
Bref un dossier ne connait que le nom du fichier qui s'y trouve et non le nom de l'arborescence qui y mène. Donc le find ne trouvera jamais de fichier nommé "../../index.php"...

Citation:
Envoyé par lolo81100 Voir le message
Que dois-je rajouter pour faire une recherche dans tout l'hébergement.
Code :
find racine_hebergement -name "index.php" -print
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 12h31   #9
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
Par défaut Suite

Merci pour votre explication. Mais je ne sais pas comment écrire "racine_hebergement". est-ce home...? Comment faire ?
Merci
lolo81100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 15h33   #10
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 055
Points : 4 934
Points : 4 934
Citation:
Envoyé par lolo81100 Voir le message
Merci pour votre explication. Mais je ne sais pas comment écrire "racine_hebergement". est-ce home...? Comment faire ?
Merci
A mon avis, lorsque le client se connecte sur OVH, la racine de son hébergement est "/" (les clients sont isolés dans un espace confiné d'où ils ne peuvent pas sortir).

Mais pourquoi tu ne fais pas tes tests en local sur ton serveur web perso avant de tester sur le serveur officiel ?
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 17h18   #11
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
Par défaut Besoin d'aide pour compléter script

J'ai tenté ça mais ça ne fonctionne pas :
Code :
1
2
3
4
<?php
$output = shell_exec('find / -name "index.php" -exec grep -Hn "eval(base64_decode" {} \;');
echo "<pre>$output</pre>";
?>
Si quelqu'un arrive à me l'écrire ça serait vraiment bien !
Merci
lolo81100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 17h50   #12
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 994
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 994
Points : 6 158
Points : 6 158
Citation:
Envoyé par lolo81100
Code :
find .-name "../../index.php"
C'est pas dans le -name qu'il fallait faire un ../..

Essayes ça :

Code :
find ../.. -name "index.php"
Normalement, ça devrait descendre dans les sous répertoires.

Sinon au pire tu fait un pwd pour voir où tu te situe.

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/01/2012, 18h28   #13
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
Merci pour votre aide. Je pense que cela fonctionne mais l'hébergement est énorme et le script est long à exécuter.
Merci beaucoup.
lolo81100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h46.


 
 
 
 
Partenaires

Hébergement Web