Durée rsync
De BlaxWiki
Révision datée du 11 septembre 2012 à 09:37 par 217.174.199.129 (discussion)
Ce script permet de calculer la durée de chaque rsync fait par différents serveurs. Cela est à lancer sur le serveur rsync, en cherchant dans son fichier de log. La configuration du serveur rsync est classique.
datedatehier=`date +%Y/%m/%d -d "1 day ago"`
dateauj=`date +%Y/%m/%d`
for i in `grep "rsync to " /home/rsync/rsyncd.log | grep ^$datehier | cut -d '[' -f 2 |cut -d ']' -f 1`; do egrep -e "rsync to|sent " /home/rsync/rsyncd.log | egrep -e
"^$datehier|^$dateauj" | grep "\[$i\]"; done > /tmp/t
for i in `grep "rsync to" /tmp/t | awk '{print $2"_"$3"_"$6}'`; do failed=0;echo "i =>$i";datetime=`echo $i | cut -d "_" -f 1`; pid=`echo $i | cut -d '[' -f 2 | cut -d ']' -f 1`;
sec=$((1`echo $datetime | cut -d ':' -f 1`*3600+1`echo $datetime | cut -d ':' -f 2`*60+1`echo $datetime | cut -d ':' -f 3`)); j=`grep "\[$pid\]" /tmp/t | grep sent | awk '{print
$2"_"$3}'`;if [ "$j" = "" ]; then j=$i;failed=1;fi;datetime2=`echo $j | cut -d "_" -f 1`; sec2=$((1`echo $datetime2 | cut -d ':' -f 1`*3600+1`echo $datetime2 | cut -d ':' -f
2`*60+1`echo $datetime2 | cut -d ':' -f 3`)); if [ $sec2 -ge $sec ]; then echo "$(($sec2-$sec)) ($failed) $i";else echo "$(($sec2+86400-$sec)) ($failed) $i";fi; done | grep '(' |
sort -n | uniq