Accéder au contenu.
Menu Sympa

technique - Re: [TECH] Détection de doublons

Objet : Liste pour les discussions techniques (liste à inscription publique)

Archives de la liste

Re: [TECH] Détection de doublons


Chronologique Discussions 
  • From: Lucile Fievet <lucile.fievet AT eufar.net>
  • Cc: technique <technique AT april.org>
  • Subject: Re: [TECH] Détection de doublons
  • Date: Wed, 12 Mar 2008 16:39:55 +0100
  • Organization: Eufar

euh le "bash fondamentaliste à tendance totalitaire : " c'était un troll indeed, qu'il ne faut évidemment pas tester, enore moins en root :o) lol

le fichier était en attachement
_________________________________________________________________________________
#!/bin/bash
#doublon.sh
#Recherche des doublons
#ex:
#./doublon.sh >> LISTEDESDOULONS.txt
#ne prends pas d'arguments
#Copyright (C) 2008 Fievet Lucile UNDER GPL
#See http://www.gnu.org/licenses/gpl.html for details
#echo "===================== $1 again ========================="

for i in $(ls -dbq *)
do
if [ -e "$si"]
then
if [ -f "$i" ]
then
for k in $(pwd)
do
#echo "================= $k/$i ===================="
for j in $(locate -r "$i")
do
if [ -e "$j" ]
then
if [ -f "$j" ]
then
if [ "$k/$i" != "$j" ]
then
for m in $(basename $j)
do
if [ $m = $i ]
then
#echo "
____________________ $j ______________________"
cmp -s $i $j
>> doublon_log
if [ $? = 0 ]
then
echo
"$k/$i et $j identique"
#else
#echo
"different"
fi
fi
done
fi
fi
fi
done
done
else
if [ "$i" != "CVS" ]
then
if [ -e $i ]
then
if [ -d $i ]
then
for k in $(pwd)
do

if [ "$1" != "" ]
then
cd $i
echo "_____________ cd $k/$i ______"
$1/doublon.sh $1
else
cd $i
echo "________ cd $k/$i ___________"
../doublon.sh $k
fi
done
cd ..
fi
fi
fi
fi
fi
done
_________________________________________________________________________________


une fois copier dans doublon.sh on le chmod en 755 et on le test en faisant ./doublon.sh

celui là ne remove rien c'est promis :)

J'ai un script de vérification des dépendances php :

Il faut lui mettre un fichier contenant la liste des cron (crontab -l)
et ceux qui pourrait êtres listé en base de données (oui j'essais de réanimer du code pondu avec dreamwearver); je me souvient plus si il prends en compte les fichiers appelé dans les actions des formulaires et des javascripts :

_______________________________________________________________

#!/bin/bash
#dependance.sh
#Recherche des fichiers qui appellent les fichiers php du rpertoire courant
#ex:
#./dependance.sh
#ne prends pas d'arguments
#renseigne DEV_INFO_listeAppelFichier.txt et DEV_INFO_listeAppelFichier_clean.txt
#Copyright (C) 2008 Fievet Lucile UNDER GPL
#See http://www.gnu.org/licenses/gpl.html for details
rm -f DEV_INFO_listeAppelFichier*;
for i in $(ls *.php);
do echo '--------------------------------------------------------' >> DEV_INFO_listeAppelFichier.txt;
echo "- $i -" >> DEV_INFO_listeAppelFichier.txt;
echo '--------------------------------------------------------' >> DEV_INFO_listeAppelFichier.txt;
grep -rnos --include='*.conf' "$i[[:alnum:][:punct:]]*" /home/www/eufar/etc/httpd/conf >> DEV_INFO_listeAppelFichier.txt;
grep -rnos --include='*.xml' "$i[[:alnum:][:punct:]]*" /home/www/eufar/html/eufardev/ >> DEV_INFO_listeAppelFichier.txt ;
grep -rnos --include='*.php' "$i.*" /home/www/eufar/html/eufardev/ >> DEV_INFO_listeAppelFichier.txt;
grep -rnos --include='*.html' "$i[[:alnum:][:punct:]]*" /home/www/eufar/html/eufardev/ >> DEV_INFO_listeAppelFichier.txt;
grep -rnos --include='*.php' "include.*$i" /home/www/eufar/html/eufardev/ >> DEV_INFO_listeAppelFichier.txt;
grep -rnos --include='*.php' "require.*$i" /home/www/eufar/html/eufardev/ >> DEV_INFO_listeAppelFichier.txt;
sed -e "s/\/home\/www\/eufar\/html\/eufardev\//~/g" DEV_INFO_listeAppelFichier.txt > DEV_INFO_listeAppelFichier.tmp0;
sed -e "s/[:][[:alnum:]]*[:]/ ||>\t /g" DEV_INFO_listeAppelFichier.tmp0 > DEV_INFO_listeAppelFichier.tmp1;
sed -e "s/[$]*//g" DEV_INFO_listeAppelFichier.tmp1 > DEV_INFO_listeAppelFichier.tmp2;
sed -e "s/[\"\']*[\"\'][:space:]*[>].*$/^/g" DEV_INFO_listeAppelFichier.tmp2 > DEV_INFO_listeAppelFichier.tmp3;
sed -e "s/[:space:][a-z]*[=][\"].*$/^/g" DEV_INFO_listeAppelFichier.tmp3 > DEV_INFO_listeAppelFichier.tmp4;
sed -e "s/[<][?][pP]hp[:space:]*[:space:]*//g" DEV_INFO_listeAppelFichier.tmp4 > DEV_INFO_listeAppelFichier.tmp5;
sed -e "s/[;]*[:space:]*[?][>]//g" DEV_INFO_listeAppelFichier.tmp5 > DEV_INFO_listeAppelFichier.tmp6;
sed -e "s/[:space:]*[:space:]*echo[:space:]*[:space:]*[$\"]*[$]*//g" DEV_INFO_listeAppelFichier.tmp6 > DEV_INFO_listeAppelFichier.tmp7;
sed -e "s/..urlencode.[[:alnum:]\-\_]*..[[:alnum:]\-\_]*.....[&]/ *+ /g" DEV_INFO_listeAppelFichier.tmp7 > DEV_INFO_listeAppelFichier.tmp8;
sed -e "s/..urlencode.[[:alnum:]\-\_]*...[&]/ *+ /g" DEV_INFO_listeAppelFichier.tmp8 > DEV_INFO_listeAppelFichier.tmp9;
sed -e "s/..urlencode.[[:alnum:]\-\_]*..[[:alnum:]\-\_]*.....$/^/g" DEV_INFO_listeAppelFichier.tmp9 > DEV_INFO_listeAppelFichier.tmp8;
sed -e "s/..urlencode.[[:alnum:]\-\_]*...$/^/g" DEV_INFO_listeAppelFichier.tmp8 > DEV_INFO_listeAppelFichier.tmp9;
sed -e "s/[.()\[\]\"\']*[.(\[\])\"\']*//g" DEV_INFO_listeAppelFichier.tmp9 > DEV_INFO_listeAppelFichier.tmp10;
sed -e "s/[=].[[:alnum:]\-\_]*.[&]/ + /g" DEV_INFO_listeAppelFichier.tmp10 > DEV_INFO_listeAppelFichier.tmp11;
sed -e "s/.[,].[[:alnum:]\-\_]*.[,].[[:alnum:]\-\_]*[=][[:alnum:]\-\_]*.$/^/g" DEV_INFO_listeAppelFichier.tmp11 > DEV_INFO_listeAppelFichier.tmp10;
sed -e "s/\"[:space:][[:alnum:]\-\_]*.$/^/g" DEV_INFO_listeAppelFichier.tmp10 > DEV_INFO_listeAppelFichier.tmp11;
sed -e "s/[=]..[[:alnum:]\-\_]*..[&]/ + /g" DEV_INFO_listeAppelFichier.tmp11 > DEV_INFO_listeAppelFichier.tmp12;
sed -e "s/[=]..[[:alnum:]\-\_]*..[&]/ + /g" DEV_INFO_listeAppelFichier.tmp12 > DEV_INFO_listeAppelFichier.tmp13;
sed -e "s/[=]..[[:alnum:]\-\_]*....$/^/g" DEV_INFO_listeAppelFichier.tmp13 > DEV_INFO_listeAppelFichier.tmp14;
sed -e "s/[=].....[[:alnum:]\-\_]*......$/^/g" DEV_INFO_listeAppelFichier.tmp14 > DEV_INFO_listeAppelFichier.tmp15;
sed -e "s/[=]..[[:alnum:]\-\_]*......$/^/g" DEV_INFO_listeAppelFichier.tmp15 > DEV_INFO_listeAppelFichier.tmp14;
sed -e "s/[=]..[[:alnum:]\-\_]*..[[:alnum:]\-\_]*....$/^/g" DEV_INFO_listeAppelFichier.tmp14 > DEV_INFO_listeAppelFichier.tmp15;
sed -e "s/[=][[:space:][:alnum:]\-\_]*$/^/g" DEV_INFO_listeAppelFichier.tmp15 > DEV_INFO_listeAppelFichier.tmp14;
sed -e "s/[=][:space:][[:alnum:]\-\_]*......$/^/g" DEV_INFO_listeAppelFichier.tmp14 > DEV_INFO_listeAppelFichier.tmp15;
sed -e "s/[=]..[[:alnum:]\-\_]*..[[:alnum:]\-\_]*..[[:alnum:]\-\_]*....[&]/ +- /g" DEV_INFO_listeAppelFichier.tmp15 > DEV_INFO_listeAppelFichier.tmp16;
sed -e "s/[=]..[[:alnum:]\-\_]*..[[:alnum:]\-\_]*..[&]/ +- /g" DEV_INFO_listeAppelFichier.tmp16 > DEV_INFO_listeAppelFichier.tmp17;
sed -e "s/[=].*[\;\>\^].*$/ ^ /g" DEV_INFO_listeAppelFichier.tmp17 > DEV_INFO_listeAppelFichier_clean.txt;
rm *.tmp*;
done;


______________________________________________________________
Bon il est pas très élégant, mais ca dépanne


lucile
a+

Nicolas George wrote:
Le tridi 23 ventôse, an CCXVI, Lucile Fievet a écrit :
for i in $(ls *.*);
do echo "------$i------";
for j in $(locate $i);
do rm -f $j;
done;
done;

Tendance plein de bugs, surtout. Si tu lances un script comme ça, n'importe
quel utilisateur malintentionné peut te faire virer la libc ou /etc/passwd.
Je déconseille plutôt.





Archives gérées par MHonArc 2.6.16.

Haut de le page