User Tools

Site Tools


tsm:tsm_script_misc

TSM statistics scripts

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"
tsm/tsm_script_misc.txt · Last modified: 2021/01/01 21:25 (external edit)