Obviously source code is the most important thing to any software project and I wanted to make sure that we had automated process in-place which would ensure we had an archive of weekly, off-site backups of our work.
So I assembled a batch script like this:
@For /F "tokens=1,2,3 delims=/ " %%A in ('Date /t') do @(
Set Month=%%B
Set Day=%%A
Set Year=%%C
)
@set filename=VSS%Year%%Month%%Day%bak.zip
echo Creating %filename%...
"C:\Program Files\WinZip\wzzip.exe" -p -r "C:\VSS_BACKUP_ZIPS\%filename%" "c:\VSS_BACKUP\*.*"
echo Done
REM --- CREATED ZIP ---
set FTPADDRESS=127.0.0.1
set SITEBACKUPFILE=%filename%
REM set /p FTPUSERNAME=Enter FTP User Name:
REM set /p FTPPASSWORD=Enter FTP Password:
set FTPUSERNAME=myusername
set FTPPASSWORD=mypassword
CLS
> script.ftp USER
>>script.ftp ECHO %FTPUSERNAME%
>>script.ftp ECHO %FTPPASSWORD%
>>script.ftp ECHO binary
>>script.ftp ECHO prompt n
:: Use put instead of get to upload the file
>>script.ftp ECHO CD VSSBackups
>>script.ftp ECHO put %SITEBACKUPFILE%
>>script.ftp ECHO bye
FTP -v -s:script.ftp %FTPADDRESS%
TYPE NUL >script.ftp
DEL script.ftp
This script depends on the following:
- Visual SourceSafe is configured to maintain a Shadow directory, which contains all the latest files.
- WinZip and the WinZip Command Line Add-on (although I'm sure this can easily be replaced by something free)
- Microsoft's FTP.exe program in Windows\System32.
It does the following:-
- It parses out the various components of the current date into variables: month, day and year.
- Creates the zip of the VSS shadow folder, with a filename containing today's date in the format 'yyyyMMdd'
- Generates a temporary FTP command file called 'script.ftp'. This commands the FTP program to upload the zip file.
- Invokes FTP.exe to process the command file, thus uploads the zip off-site.
Once I'd tested it, I used the Windows Task Scheduler to invoke it every Sunday night at 1am.
Now we have peace of mind.
thanks
Kris