This is an old revision of the document!
Script incremental forever TDP VE backup_vm_incr.cmd
cd "C:\Program Files\Tivoli\TSM\baclient\" START /B dsmc backup vm "SRVWIN1" -vmbackuptype=fullvm -mode=ifincremental -asnodename=DC1 -optfile="C:\Program Files\Tivoli\TSM\baclient\dsm.DC1_DM.opt" >> "C:\Program Files\Tivoli\TSM\baclient\dsmsched.VDC1_DM.incr1.log" START /B dsmc backup vm "SRVLNX2" -vmbackuptype=fullvm -mode=ifincremental -asnodename=DC1 -optfile="C:\Program Files\Tivoli\TSM\baclient\dsm.DC1_DM.opt" >> "C:\Program Files\Tivoli\TSM\baclient\dsmsched.DC1_DM.incr1.log"
Check if all VM are backup and all disks
[root@mgmt01 scripts]# cat list_backup_vm.sh
#!/bin/bash
#set -x
#
#@(#) send list of VM with exclusion
#
# version: 1.0 03-2021 Manu
#
# input file is generated on TDP VE datamover (linux)
# dsmc show vm all -optfile=dsm.opt -asnode=datacenter_s1 > show_vm_all.txt
dir=`dirname $0`
. $dir/.env
# Variables
destination="myemail@test.lu"
INPUT=$logpath/show_vm_all.txt
logfile=$logpath/output.csv
line=""
cat /dev/null > $logfile
#----------------------
get_input_file ()
{
echo "TODO"
}
#----------------------
extract_vm ()
{
cat $INPUT | tr -s ' ' | sed 's/^\ //' | egrep '^\(|^scheduleTagName|^VMDK' | sed 's/\ /\|/g' | grep -v '|Copyright|' > ${INPUT}.1
for line1 in $(cat ${INPUT}.1)
do
begin=$(echo $line1 | cut -d':' -f1 | sed 's/$/:/')
end=$(echo $line1 | cut -d':' -f2- | sed 's/^|//')
if [ "$(echo $begin | grep '^(' | grep '.vmName:' > /dev/null; echo $?)" -eq "0" ]
then
if [ "${line}" != "" ]
then
echo $line | sed 's/|/\ /g' >> $logfile
fi
vm_name=$(echo $line1 | cut -d':' -f2- | sed 's/|//')
line="${vm_name}"
else
if [ "$(echo $begin | grep '^scheduleTagName:' > /dev/null; echo $?)" -eq "0" ]
then
tag=$(echo $end)
line="$line;$tag"
else
if [ "$(echo $begin | grep 'VMDK\[' > /dev/null; echo $?)" -eq "0" ]
then
if [ "$(echo $begin | grep '\]Label:' > /dev/null; echo $?)" -eq "0" ]
then
disk=$(echo $end)
else
if [ "$(echo $begin | grep '\]Status:' > /dev/null; echo $?)" -eq "0" ]
then
status=$(echo $end)
line="$line;$disk;$status"
fi
fi
fi
fi
fi
done
echo "$line" >> $logfile
}
#----------------------
sendemail ()
{
echo "########### sendemail"
SIZE=$(cat $logfile | wc -l)
if (( SIZE > 6 ))
then
date "+%d-%m-%Y" | mailx -a $logfile -s "List VM backup by ISP" $destination
exit 1
else
echo " "
echo No error
echo " "
exit 0
fi
}
#########################
# Main
#########################
main ()
{
date
get_input_file
extract_vm
#sendemail
#rm ${logfile}* 2>/dev/null
}
main > $logname 2>&1
output like:
vm1;VM_INCR_TUE;'Hard disk 1' (Hard Disk 1);Included;'Hard disk 2' (Hard Disk 2);Excluded - User VM2;VM_INCR_FRI;'Hard disk 1' (Hard Disk 1);Included;'Hard disk 2' (Hard Disk 2);Included linux1;VM_INCR_WED;'Hard disk 1' (Hard Disk 1);Included;'Hard disk 2' (Hard Disk 2);Included linux2;VM_INCR_FRI;'Hard disk 1' (Hard Disk 1);Included;'Hard disk 2' (Hard Disk 2);Included winvm01;VM_INCR_FRI;'Hard disk 1' (Hard Disk 1);Included;'Hard disk 2' (Hard Disk 2);Included winvm02;Unassigned;'Hard disk 1' (Hard Disk 1);Included;'Hard disk 2' (Hard Disk 2);Included
If no scheduletag is assigned to the VM, then no backup. Some disks are also excluded from some VMs.