12-19-2012 05:22 PM
I would like to share scripts and help if anyone wants a script via this forum which could be continuing if interested. :)
The following scripts still need to be improved. Open to any feedback.
#script name : bk_size.sh
#usage : bk_size.sh ( no argument )
# It shows total backup size by policy or by client or by date
LOGFILE=/log/bk_size.log
bpcatlist -policy POLICY_NAME > $LOGFILE
#bpcatlist -since Dec 6 2012 -client CLIENT_NAME | grep Full > $LOGFILE
#bpcatlist -since Dec 19 18:00:00 2012 > $LOGFILE
cat $LOGFILE | egrep '[0-9][k |M |G |T ]' | awk '{print $7}' | awk '{if ( $1 ~ /T$/ ) Total+=substr($1,1,length($1)-1)*1000000; else if ( $1 ~/G$/ ) Total+=substr($1,1,length($1)-1)*1000; else if ( $1 ~/k$/ ) Total+=substr($1,1,length($1)-1)/1000; else Total+=substr($1,1,length($1)-1) } END { print Total/1024 "GB"}'
#script name : rm_bk.sh
#usage : rm_bk.sh client_name
# It will delete all backups of a client
echo "########################################"
echo "The following backupids will be removed"
echo "########################################"
echo "--------------------------------- $1 ---------------------------------------------"
bpcatlist -client $1
echo "----------------------------------------------------------------------------------"
for Backup_id in `bpcatlist -client $1 | grep $1 | awk '{print $1}'`
do
bpimage -deletecopy 1 -backupid $Backup_id && echo "$Backup_id deleted";
done
#script name : all_info.sh
#usage : all_info.sh ( no argument )
# It generates logfiles which have backup time and backup size for each client and extract unix servers from all info
V_Date=`date +%Y-%m-%d`
UNIX_SVR=unix.svr
LOGFILE1=/log/KB_TIME.$V_Date
LOGFILE2=/log/all.svr.$V_Date
LOGFILE3=/log/all_info.$V_Date
LOGFILE4=/log/unix.$V_Date
LOGFILE5=/log/all_info_sh.$V_Date
bpimagelist -hoursago 24 -U -A | egrep '^Client:' | sort -u +1 | awk '{print $2}' > $LOGFILE2
bpimagelist -hoursago 24 -U -A | egrep '^Client:|^Policy:|^Kilobytes|^Backup Time|^Elapsed|^Number of Files' > $LOGFILE3
echo "Client GB" > $LOGFILE5
echo "=============================================" >> $LOGFILE5
cat $LOGFILE3 | awk '/^Client:/{print $2} /^Kilo/{print $2/1024000} /^Elapsed/{print $3} /^Backup Time/{print $3 " " $4} /^Number of Files/{print $4}' | paste - - - - - | sort -n +4 > $LOGFILE1
cat $LOGFILE1 | awk '{ V_CLT[$1]++; V_CLT[$1]+=$5; } END { for ( i in V_CLT ) print i, "\t\t\t",V_CLT[i]}' | sort -n +1 >> $LOGFILE5
echo "============================================" >> $LOGFILE5
cat $LOGFILE3 | grep ^Kilo | awk '{ V_K+=$2 } END { print "Total Size : " V_K/1024/1024 " GB" }' >> $LOGFILE5
for Vunix in `cat $UNIX_SVR`; do grep $Vunix $LOGFILE1 >> $LOGFILE4 ; done
Hope you get useful things from them.
Happy to help you make any script you want.
Cheers,
12-19-2012 07:59 PM
hi Joseph,
Thanks for sharing..
you can post this on the blogs area for the same, that would be very help full..
12-20-2012 04:18 AM
And a you earn 5 connect points instead of only 1
I recommend you use the script with the shebang expression. Script may behave different depending on the shell you use. So if you wrote the script in bash you can instruct the OS to interpret the script withe the same shell. That ensure the script behave the same.
Examples:
#!/bin/bash Bash shell
#!/usr/bin/ksh Korn Shell
#!/usr/bin/perl The Perl language
12-20-2012 08:45 PM
# usage : bk_size.sh DATE (Example: bk_size.sh "Dec 20 2012"
# It shows the backup amounts of each policy since the Date.
#!/bin/bash
LOGFILE=/log/bk_size_pl.log
for V_PL in `bppllist`;
do
bpcatlist -since $1 -policy $V_PL > $LOGFILE 2>/dev/null
if [ $? -eq 0 ]
then
cat $LOGFILE | egrep '[0-9][k |M |G |T ]' | awk '{print $7 " " $9}' | awk '{if ( $1 ~ /T$/ ) Total+=substr($1,1,length($1)-1)*1024000; else if ( $1 ~/G$/ ) Total+=substr($1,1,length($1)-1)*1024; else if ( $1 ~/k$/ ) Total+=substr($1,1,length($1)-1)/1024; else Total+=substr($1,1,length($1)-1) } END { print $2 " : " int(Total/1024) " GB"}'
fi
done