This has been requested by our Storage Team as they were doing lot of manual stuff , uploading it in the community may be it fullfills needs for others as well.

It can act as refrence script only as every envionment has different needs.

Below were the requirement:

$tm1,2,3,4 variables have been defined accordingly as per times of execution

Run reclaim commands on particular times on some of the DBs

$tm1,2,3,4 variables have been defined accordingly as per times of execution

Run reclaim commands on particular times on some of the DBs

You have to customize the script to detect servers as per your enviornment.(variables part)

Example:

$dag1 = "DAGVG01" (server might have this in the name)

if($hostname -like "*$dag1*"){
$dagex= $dag1 -replace "VG" ,"EX"

$dagd1 = "Y:\" + $dagex + "_DB01"

$dagl1 = "Y:\" + $dagex + "_LOG01"

}

 

ServerDAGVG01 (Host Name Matches)

$dagd1 = "Y:\" + $dagex + "_DB01"  --> Y:\dagex_db01 (drive formation)

 

Extract the Zip file from below link:(after customizations batch file can be schedule or run manually to test)

Note : schedule times should be as per times defined inside script else it will not run.

example: 

$tm1 ="3"

if((($day -eq $day1) - ($day -eq $day3) -or ($day -eq $day5)) -and ($tm -eq $tm1))

it checks if hour is 3 or not , if hour value is 4 than that code will not execute.

 

 

PowerShell
Edit|Remove
######################################################################### 
#            Author: Vikas Sukhija 
#            Reviewer: 
#            date: 9/9/2016 
#            Modified:                         
#            Description: Run Netapp Reclaim commands 
######################################################################### 
 
 
$date1 = get-date -format d 
$date1 = $date1.ToString().Replace("/","-"$time = get-date -format t 
 
$time = $time.ToString().Replace(":""-"$time = $time.ToString().Replace(" """) 
 
$logs = ".\Logs" + "\" + "Processed_PS_" + $date1 + "_" + $time + "_.log" 
 
$log1 = ".\Logs" + "\" + "snapdrive_" + $date1 + "_" + $time + "_.log" 
 
$log2 = ".\Logs" + "\" + "snapdrive_Spacereclaim_" + $date1 + "_" + $time + "_.log" 
 
Start-Transcript -Path $logs 
 
##############Import Netap module####################### 
 
Import-Module SnapDrive 
 
if($error){Write-host "Snapdrive module not imported Exit pls" -foregroundcolor Red 
Exitelse{ 
Write-host "Snapdrive module imported" -foregroundcolor green } 
 
###################variables ######################## 
 
$dag1 = "DAGVG01" 
 
$day = (get-date).dayofweek 
 
$tm = (get-date).Hour 
 
$day1 = "Monday" 
 
$day2 = "Tuesday" 
 
$day3 = "Wednesday" 
 
$day4 = "Thursday" 
 
$day5 = "Friday" 
 
$day6 = "Saturday" 
 
$day7 = "Sunday" 
 
$tm1 = "5" 
 
$tm2 = "11" 
 
$tm3 = "17" 
 
$tm4 =  "23" 
 
$runtime1 = "320" 
$timeout = $runtime1/30 
 
$hostname = hostname 
 
if($hostname -like "*$dag1*"){ 
 
$dagex$dag1 -replace "VG" ,"EX" 
 
$dagd1 = "Y:\" + $dagex + "_DB01" 
$dagd2 = "Y:\" + $dagex + "_DB02" 
$dagd3 = "Y:\" + $dagex + "_DB03" 
$dagd4 = "Y:\" + $dagex + "_DB04" 
$dagd5 = "Y:\" + $dagex + "_DB05" 
$dagd6 = "Y:\" + $dagex + "_DB06" 
$dagd7 = "Y:\" + $dagex + "_DB07" 
$dagd8 = "Y:\" + $dagex + "_DB08" 
$dagd9 = "Y:\" + $dagex + "_DB09" 
$dagd10 = "Y:\" + $dagex + "_DB10" 
 
$dagl1 = "Y:\" + $dagex + "_LOG01" 
$dagl2 = "Y:\" + $dagex + "_LOG02" 
$dagl3 = "Y:\" + $dagex + "_LOG03" 
$dagl4 = "Y:\" + $dagex + "_LOG04" 
$dagl5 = "Y:\" + $dagex + "_LOG05" 
$dagl6 = "Y:\" + $dagex + "_LOG06" 
$dagl7 = "Y:\" + $dagex + "_LOG07" 
$dagl8 = "Y:\" + $dagex + "_LOG08" 
$dagl9 = "Y:\" + $dagex + "_LOG09" 
$dagl10 = "Y:\" + $dagex + "_LOG10" 
} 
 
 
 
####################################################### 
 
if((($day -eq $day1- ($day -eq $day3-or ($day -eq $day5)) -and ($tm -eq $tm1)){ 
 
Write-host "Processing .....Snapdrive Commands on Databases" -foregroundcolor green 
 
sdcli spacereclaimer analyze -$dagd1 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd1 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd1 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd1 " -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagd2 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd2 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd2 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd1 " -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagd3 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd3 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd3 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd1 " -foregroundcolor blue 
 
} 
 
if((($day -eq $day1- ($day -eq $day3-or ($day -eq $day5)) -and ($tm -eq $tm2)){ 
 
Write-host "Processing .....Snapdrive Commands" -foregroundcolor green 
 
sdcli spacereclaimer analyze -$dagd4 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd4 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd4 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd4 " -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagd5 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd5 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd5 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd5 " -foregroundcolor blue 
 
 
} 
 
 
if((($day -eq $day1- ($day -eq $day3-or ($day -eq $day5)) -and ($tm -eq $tm3)){ 
 
Write-host "Processing .....Snapdrive Commands" -foregroundcolor green 
 
sdcli spacereclaimer analyze -$dagd6 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd6 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd6 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd6" -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagd7 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd7 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd7 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd7 " -foregroundcolor blue 
 
} 
 
if((($day -eq $day1- ($day -eq $day3-or ($day -eq $day5)) -and ($tm -eq $tm4)){ 
 
Write-host "Processing .....Snapdrive Commands" -foregroundcolor green 
 
sdcli spacereclaimer analyze -$dagd8 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd8 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd8 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd8 " -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagd9 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd9 " -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd9 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd9 " -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagd10 >> $log1  
 
Write-host "Space reclaimer analysis on $dagd10" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagd10 -$runtime1 
 
Write-host "Space reclaimer Start on $dagd10 " -foregroundcolor blue 
 
 
} 
 
######################LOG Vol####################################### 
 
 
if((($day -eq $day2- ($day -eq $day4-or ($day -eq $day6-or ($day -eq $day7)) -and ($tm -eq $tm1)){ 
 
sdcli spacereclaimer analyze -$dagl1 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl1" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl1 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl1" -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagl2 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl2" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl2 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl2" -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagl3 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl3" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl3 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl3" -foregroundcolor blue 
 
 
} 
 
if((($day -eq $day2- ($day -eq $day4-or ($day -eq $day6-or ($day -eq $day7)) -and ($tm -eq $tm2)){ 
 
Write-host "Processing .....Snapdrive Commands" -foregroundcolor green 
 
sdcli spacereclaimer analyze -$dagl4 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl4" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl4 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl4" -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagl5 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl5" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl5 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl5" -foregroundcolor blue 
 
 
} 
 
 
if((($day -eq $day2- ($day -eq $day4-or ($day -eq $day6-or ($day -eq $day7)) -and ($tm -eq $tm3)){ 
 
Write-host "Processing .....Snapdrive Commands" -foregroundcolor green 
 
sdcli spacereclaimer analyze -$dagl6 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl6" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl6 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl6" -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagl7 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl7" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl7 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl7" -foregroundcolor blue 
 
} 
 
 
if((($day -eq $day2- ($day -eq $day4-or ($day -eq $day6-or ($day -eq $day8)) -and ($tm -eq $tm4)){ 
 
Write-host "Processing .....Snapdrive Commands" -foregroundcolor green 
 
sdcli spacereclaimer analyze -$dagl8 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl8" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl8 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl8" -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagl9 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl9" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl9 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl9" -foregroundcolor blue 
 
sdcli spacereclaimer analyze -$dagl10 >> $log1  
 
Write-host "Space reclaimer analysis on $dagl10" -foregroundcolor magenta 
 
sdcli spacereclaimer start -$dagl10 -$runtime1 
 
Write-host "Space reclaimer Start on $dagl10" -foregroundcolor blue 
 
} 
 
$count=0 
 
do{ 
 
sdcli spacereclaimer status >> $log2  
add-content $log2 "--------------------------------------------------------" 
timeout 1800 
 
$count = $count +1} While($count -lt $timeout) 
 
 
Stop-Transcript 
 
##############################################################
 Regards
 Sukhija Vikas
http://msexchange.me