[gull] truc et astuce: file rate avec find et bc
Félix Hauri
felix at f-hauri.ch
Wed Sep 14 11:54:28 CEST 2005
Bonjour,
Soit un fichier en train de ``grossir'' sur votre filesystem. Ce peut
être un téléchargement un traitement de masse ou autre chose...
La question est de savoir à quelle vitesse il grossit.
Réponse: le truc du jour:
$ find $file -printf "%s/(%Cs-%As)\n" | bc -l
Explication:
``%s'' La taille du fichier (au moment de l'interrogation)
``%Cs'' La date de la dernière modification d'état en secondes
``%As'' La date du dernier accès au fichier (moment de la
création de ce dernier), en secondes
Pour faire du zèle, on ajoute un peu de ``mise en forme'':
$ printf "%s %.3fGo %05.3fM/s\n" "$file" $(
find $file -printf "%s/1024^3;%s/(%Cs-%As)/1024^2\n" |
bc -l)
présente nom du fichier, taille momentanée en Go et débit en Mo/sec.
( Note:
Sur une config ``LANG=fr_CH'', si vous recevez le message:
printf: XX.XXXXXXX: invalid number
Il suffit de positionner ``LC_NUMERIC=C'' avant le ``printf'':
$ export LC_NUMERIC=C
)
Pour finir, on suit l'évolution du fichier toutes les 5 secs puis
on quitte une fois le fichier terminé:
$ delay=5
$ prgpid=$(
lsof -F p $file |
sed s'/^p\([0-9]*\)$/\1/;q')
$ while [ -d /proc/$prgpid ] ;do
printf "\r%s %.3fGo %05.3fM/s " "$file" $(
find $file -printf "%s/1073741824;%s/(%Cs-%As)/1048576\n" |
bc -l);
sleep $delay;
done;echo
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list