Le 14/11/04 � 19:03, [EMAIL PROTECTED] �crivait:
> Si chaque fois est suite � une action d'un op�rateur humain les d�lais de grep
> sont raisonnables. je viens de faire un test (portable PIII 500Mhz, 512 Mo) :
> $ time grep -e 'zzzzzzzz' *
>
> real 0m0.071s
> user 0m0.030s
> sys 0m0.040s
> $ pwd
> /usr/share/doc/postgresql-doc/html
> $ wc -l *|grep total
> 329529 total
> $ du -hs
> 6,4M .
Le script est execut� une fois par semaine, le fichier de 14000 lignes
est cr�� � chaque fois et correspond aux 14000 paquets de la Sarge.
Le but est de suuprimer les paquets obsol�tes dans le cache de
apt-proxy. Voici o� j'en suis arriv�
=========== cut here ===============================
#!/bin/sh
# supprime tous les packages obsol�tes (non r�f�renc�s dans les fichiers
# Packages) dans le cache d'Apt-proxy
TMPFILE=`mktemp -t purge.XXXXXX`
trap "rm -f $TMPFILE" 0 1 2 5 15
MOTIF="^Filename: "
# r�cup�re la valeur de APT_PROXY_CACHE
APT_PROXY_CACHE=`grep "^APT_PROXY_CACHE=" /etc/apt-proxy/apt-proxy.conf | \
cut -d = -f 2`
COUNT=0
for H in `ls $APT_PROXY_CACHE`; do
HOST="$APT_PROXY_CACHE/$H"
echo "============== Host: $HOST ========================="
if [ -d "$HOST" ]; then
rm $TMPFILE
touch $TMPFILE
# certains sites n'ont pas de r�pertoire dists (E.G.: http://z42.de)
DISTS_DIR="$HOST/dists"
if [ ! -d "$DISTS_DIR" ]; then DISTS_DIR="$HOST"; fi
# recenser tous les noms de fichiers des paquets dans Packages
for PACKAGE in `find $DISTS_DIR -name Packages`; do
grep $MOTIF $PACKAGE | sed "s!$MOTIF!$HOST/!" >> $TMPFILE
done
# on trie tous les noms de fichiers r�cup�r�s
mv $TMPFILE $TMPFILE.orig
cat $TMPFILE.orig | sort > $TMPFILE
rm $TMPFILE.orig
# on supprime les paquets non recens�s
# �ventuellement utiliser l'option -m de grep pour arr�ter
# la recherche � la premi�re occurence
for FICHIER in `find $HOST -name "*.deb"`; do
if [ `grep -c $FICHIER $TMPFILE` = "0" ]; then
echo "Remove $FICHIER"
rm -f $FICHIER
COUNT=$(($COUNT+1))
fi
done
fi
done
N=`wc -l $TMPFILE`
echo -e "\nSweeping apt-proxy cache...\n$COUNT packets deleted / $N known
packets\n"
======================= cut here =======================================
C'est vrai que le temps d'execution est acceptable
Si quelqu'un a une suggestion pour am�liorer le script, je suis preneur
Merci pour votre aide � tous
Jean-Pierre