Extract stats from my own tsm html reports.
[root@tsmserver]/root/scripts# cat stats_stgpool.sh
#!/bin/ksh reportdir=/report/TSM workdir=$reportdir/tmp1 cd $reportdir rm -r $workdir mkdir -p $workdir YEAR=2018 mystat1=stgpool mystat2=auditocc outfile1=$workdir/${mystat1}_stats_$YEAR.csv outfile2=$workdir/${mystat2}_stats_$YEAR.csv for file1 in $(ls tsm_daily_report_$YEAR-*-01_*.html) do name1=$(echo $file1 | rev | cut -d'_' -f2- | cut -d'_' -f1 | rev) file2=$(echo $workdir/${mystat1}_${name1}.csv) cat $file1 | sed -e 's/\>//g' -e 's/\<//g' | sed 's/tbody//g' | grep -p stgpool_occ | grep '^TR' | cut -d'"' -f3- | sed 's/\/TDTD/\ /g' | cut -d'/' -f1 | tail -n +2 | sed 's/^TD//' > $file2 done row=$(cat $workdir/${mystat1}_*csv | awk '{print $1}' | sort -u) echo "DATE,$row" | tr ' ' ',' | tr '\n' ',' | rev | cut -d',' -f2- | rev > $outfile1 for file1 in $(ls $workdir/${mystat1}*csv) do date1=$(echo $file1 | cut -d'_' -f2 | cut -d'.' -f1) val3=$(echo $date1) for val1 in $(echo $row | tr ' ' '\n') do val2="" val2=$(grep "^$val1 " $file1 | awk '{print $2}') val3=$(echo "$val3,$val2") done echo $val3 >> $outfile1 done echo "Output: $outfile1" for file1 in $(ls tsm_daily_report_$YEAR-*-01_*.html) do name1=$(echo $file1 | rev | cut -d'_' -f2- | cut -d'_' -f1 | rev) file2=$(echo $workdir/${mystat2}_${name1}.csv) cat $file1 | sed -e 's/\>//g' -e 's/\<//g' | sed 's/tbody//g' | grep -p auditocc | grep '^TR' | cut -d'"' -f3- | sed 's/\/TDTD/\ /g' | cut -d'/' -f1 | tail -n +2 | sed 's/^TD//' > $file2 done row=$(cat $workdir/${mystat2}_*csv | awk '{print $1}' | sort -u) outfile2=$(echo $workdir/${mystat2}_stats_bkp_$YEAR.csv) echo "DATE,$row" | tr ' ' ',' | tr '\n' ',' | rev | cut -d',' -f2- | rev > $outfile2 for file1 in $(ls $workdir/${mystat2}*csv | grep -v "$outfile2") do date1=$(echo $file1 | cut -d'_' -f2 | cut -d'.' -f1) val3=$(echo $date1) for val1 in $(echo $row | tr ' ' '\n') do val2="" val2=$(grep "^$val1 " $file1 | awk '{print $2}') val3=$(echo "$val3,$val2") done echo $val3 >> $outfile2 done echo "Output: $outfile2" outfile2=$(echo $workdir/${mystat2}_stats_arch_$YEAR.csv) echo "DATE,$row" | tr ' ' ',' | tr '\n' ',' | rev | cut -d',' -f2- | rev > $outfile2 for file1 in $(ls $workdir/${mystat2}*csv | grep -v "$outfile2") do date1=$(echo $file1 | cut -d'_' -f2 | cut -d'.' -f1) val3=$(echo $date1) for val1 in $(echo $row | tr ' ' '\n') do val2="" val2=$(grep "^$val1 " $file1 | awk '{print $4}') val3=$(echo "$val3,$val2") done echo $val3 >> $outfile2 done echo "Output: $outfile2"
List all files from backups for a specific node
[root@tsmserver]/root/scripts# cat list_backup.sh
#!/bin/ksh logdir=/tmp DSMADMC=$(echo "dsmadmc -id=admin -pa=xxxxx") echo "List all backups for a node and put it into a log file" echo "Please give a node_name" read node nodename1=$(echo $node | tr 'a-z' 'A-Z') nodename=$(echo "'"$nodename1"'") logname=$logdir/$nodename1.csv echo "NODE_NAME: FILESPACE_NAME: FILESPACE_ID: STATE: TYPE: HL_NAME: LL_NAME: OBJECT_ID: BACKUP_DATE: DEACTIVATE_DATE: OWNER: CLASS_NAME: ACTUAL_SIZE: " | cut -d':' -f1 | awk '{print $1}' | tr '\n' ',' > $logname echo "$DSMADMC -comma select * from backups where node_name=$nodename" $DSMADMC -dataonly=yes -comma "select * from backups where node_name=$nodename" | sed 's/\ /_/g' | sed 's/,/;/g' >> $logname echo "Output file: $logname"