Pages : 1
#1 Le 24/01/2010, à 13:11
- Kalten
[script shell] Fonctionne mais pas récursivement
Bonjour à tous,
Pour la petite histoire j'ai un site sous joomla qui s'est fait piraté... Le script m'a ajouté à la fin de chaque fichier du javascript qui affiche un lien vers des sites pornos ou autres.
Pas très classe
Donc j'ai fait/trouvé un script qui enlève ça, mais je n'arrive pas à la faire récursivement.
Voici le script qui fonctionne :
#!/bin/bash
for fl in *.*; do
mv $fl $fl.old
sed 's/<script>\/\*Exception.*/ /' $fl.old > $fl.old2
sed 's/<!--5b799dd68efbb52764dab380752d4939-->/ /' $fl.old2 > $fl
rm -f $fl.old2
rm -f $fl.old
done
Et recursivement j'ai trouvé ça sur un post du forum mais je n'arrive pas à le faire fonctionner :
#!/bin/bash
for fl in ` find . -name *.php`; do
mv $fl $fl.old
sed 's/<script>\/\*Exception.*/ /' $fl.old > $fl.old2
sed 's/<!--5b799dd68efbb52764dab380752d4939-->/ /' $fl.old2 > $fl
rm -f $fl.old2
rm -f $fl.old
done
Il me renvoit :
find: les chemins doivent précéder l'expression : index.php
Utilisation : find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [chemin...] [expression]
Voilà je pense que ça ne doit pas etre grand chose mais je ne connais pas bien le shell, si quelqu'un pouvait me donner un coup de main à nettoyer ces fichiers
Merci beaucoup
Hors ligne
#2 Le 24/01/2010, à 13:29
- Ph3nix_
Re : [script shell] Fonctionne mais pas récursivement
#!/bin/bash
find . -name *.php | while read fl;do
mv $fl $fl.old
sed 's/<script>\/\*Exception.*/ /' $fl.old > $fl.old2
sed 's/<!--5b799dd68efbb52764dab380752d4939-->/ /' $fl.old2 > $fl
rm -f $fl.old2
rm -f $fl.old
done
Ton code fonctionne chez moi, essayes celui-la on sait jamais
Hiroshima 45 / Chernobyl 86 / Windows '95
Hors ligne
#3 Le 24/01/2010, à 14:31
- credenhill
Re : [script shell] Fonctionne mais pas récursivement
hello
essaye avec des " pour -name
for fl in ` find . -name "*.php"`; do
Dernière modification par credenhill (Le 24/01/2010, à 14:32)
Hors ligne
Pages : 1