Hi All!
I hope thi can be usefull
the script return lines like this
JobId= 5257 <JOBNAME> <CLIENT> | Now: 58.81% Files=217437
Bytes=224761256596 Bytes/sec=7269592 Errors=3 (on tot.byte= 382146782310)
08:35:18 <-- duration
JobId= 5226 <JOBNAME> <CLIENT> | Now: 73.15% Files=1580436
Bytes=217781667592 Bytes/sec=5045914 Errors=0 (on tot.byte= 297702961761)
11:59:20
Here you are and pls, let me know ;)
Fabio
#!/bin/bash
#
# Script to know the progress of running bck
# using by -u for updating client list/estimate
#
# By CHIECHI Fabio
# (c) 2009
#
chcpath=/filedisk/chc/tmp
bindir=/usr/bin
db_name=${db_name:-bacula}
if [ ! -f $bindir/mysql ]; then
echo -e "Sorry, Script for MySQL!\nI can't find MySQL :("
exit 1
fi
case "$1" in
-u|update|-update|upd|-upd)
rm -f $chcpath/bacula_estratto_estimate.txt
bconsole <<END-OF-DATA | grep -v Enter | grep -v 1000 | grep -v client
| sort -u > $chcpath/bacula_lista_client.txt
.client
END-OF-DATA
cat $chcpath/bacula_lista_client.txt | while read line
do
echo $line
esito=$(bconsole <<END-OF-DATA| grep "OK estimate"
estimate job=$line.j
END-OF-DATA)
echo $esito
echo $line $esito | awk '{print $1 " bytes = " substr($6,7,20)
" files = " substr($5,7,20)}' | sed "s/,//g" >>
$chcpath/bacula_estratto_estimate.txt
done
rm -f $chcpath/bacula_lista_client.txt
;;
*)
if [ ! -f $chcpath/bacula_estratto_estimate.txt ]; then
echo "I can't find estimate data."
echo "Run the scrpt with -u option!"
exit 1
fi
$bindir/mysql -f <<END-OF-DATA | grep -v "JobId" | while read line
USE ${db_name};
select JobId,Job,Client.Name from Job inner join Client on Job.ClientId =
Client.ClientId where Job.JobStatus='R';
END-OF-DATA
do
JBID=$(echo $line |awk '{print $1}')
SRV=$(echo $line |awk '{print $3}')
esito=$(bconsole <<END-OF-DATA| grep "Files=" | sed "s/,//g"
status client=$SRV
END-OF-DATA)
battuali=$(echo $esito | awk '{print $2}'|cut -d "=" -f 2)
btot=$(cat ${chcpath}/bacula_estratto_estimate.txt | grep $SRV |
awk '{print $4}')
if [ "$btot" == "" ]; then
echo "client doesn't exists in estimate data!"
else
perc=$(echo "scale=2; $battuali * 100 / $btot" | bc)
adata=$(date '+%Y-%m-%d %H:%M:%S')
durata=$($bindir/mysql -f <<END-OF-DATA | grep -v timediff
USE ${db_name}
select timediff('$adata',Job.StartTime) from Job where JobId='$JBID'
END-OF-DATA)
echo "JobId= "$line "| Now: " $perc"% " $esito " (on tot.byte=
"$btot")" $durata
fi
done
;;
esac
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users