Durée rsync

De BlaxWiki
Révision datée du 11 septembre 2012 à 10:04 par 217.174.199.129 (discussion)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

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
  • Exemple de sortie de résultat

La durée en seconde correspond à la premiere colonne, la 3ème colonne correspond à l'heure du début du backup, la 4eme l'id dans les logs rsync

382 (0) 04:00:01_[23469]_syslog1.ircem.fr
402 (0) 04:00:01_[12556]_syslog1.ircem.fr
421 (0) 06:30:08_[9308]_hosting1.surinter.net/
441 (0) 00:00:05_[16770]_sql.cine-solutions.com/
442 (0) 00:00:05_[5830]_sql.cine-solutions.com/
457 (0) 04:33:37_[5573]_www3.sogec-informatique.fr/
469 (0) 20:33:39_[10308]_radius-mut-2.agarik.com/
469 (0) 23:04:56_[14811]_www.e-mazarine.com