Using RoboCopy to copy my MSSQL backup
Today I was fiddling around with my MS SQL maintenance plan. I configured it to also make a copy of my database. Now I want some extra security and want to copy this file to a safe share within my network. This way if all my drives from my database server fail, I still have the file on my fileshare.
There are a massive amount of applications that you can for use for this. I used RoboCopy (which you can find in the Windows 2003 Resource kit), there is also a GUI version which you can use. But I just went for the good old console version.
Now I also wanted to log this action to a file, this way I can monitor these actions. But I don’t want a single file, I want a file for every day. In other words I want to use the current date and time in the filename of the log file. This of course requires some Bat programming action:
1: @echo off
2:
3: for /f "tokens=1,2" %%u in ('date /t') do set d=%%v
4: for /f "tokens=1" %%u in ('time /t') do set t=%%u
5: if "%t:~1,1%"==":" set t=0%t%
6: set timestr=%d:~6,4%%d:~0,2%%d:~3,2%_%t:~0,2%%t:~3,2%
7:
8: "C:\Program Files\Windows Resource Kits\Tools\robocopy.exe" /COPYALL "F:\MSSQL\BACKUP" "\\ExternalServer\MSSQL BACKUP" > "F:\MSSQL\COPYLOG\%timestr%.txt"