Backup Manager V1.2

Author

Matthew Hazlett
hazlema@devclarity.com
Clarity Computers
http://devclarity.com/


Change Log

October 22, 2006
Inital Writing

October 22, 2006
Fixed a problem where the app might crash if there was bad data in the config file.
Added writing critical errors to the event log.


Introduction

I wrote this utility because I'm cheap. Actually, I wrote it because I didnt have the $700.00+ bucks to spend on a live backup software package for the server platform when NT Backup does just as well.


Starving Developer Fund

If you find this utility usefull please go to http://devclarity.com/solutions.html and donate to the starving developer fund.


How it works

What this program does is sit in the background while NT Backup is running then springs into action the minute it finishes. Here is a rundown of what it can do:


Sample Configuration File (BackupManager.xml)

<config>
       <global>
              <version>1</version>
              <log>D:\Backups\Backup.log</log>
       </global>
       <job name="full">
              <command>C:\Windows\system32\ntbackup.exe</command>
              <arguments>backup "@D:\Backups\Database Backup.bks" /v:no /r:no /rs:no /hc:off /m normal /j "Database" /l:s /f "D:\Backups\Database.bkf"</arguments>
              <directory>D:\Backups\</directory>
              <target>D:\Backups\Database.bkf</target>
              <compress>true</compress>
              <zippassword>password</zippassword>
              <maxfiles>3</maxfiles>
              <delete>true</delete>
              <ftp>true</ftp>
              <path>/backups/</path>
              <host>server.com</host>
              <user>server.com</user>
              <password>password</password>
       </job>
</config>
	
Section
Description
global
Section are settings that apply to all jobs.
Element
Description
version
You can use this however you like, it shows up in the logfile so use it to keep track of configuration versions
Element
Description
log
Path to the log file
Section
Description
job
Defines a new job, with the attribute name equaling the job name
Element
Description
command
Backup command to execute
Element
Description
arguments
Backup commannd arguments
Element
Description
directory
Backup command starting directory
Element
Description
target
Backup command file output (The target file)
Element
Description
compress
True/False, Compress file?
Element
Description
zippassword
Encoding password (Compressed files only!")
Element
Description
ftp
True/False, FTP target file
Element
Description
maxfiles
Number of backups to store of the FTP server
Element
Description
path
Path on the FTP server to the backup storage directory
Element
Description
host
FTP host
Element
Description
user
FTP user
Element
Description
password
FTP password

Multiple Configuration Sample (BackupManager.xml)

<config>
       <global>
              <version>1</version>
              <log>D:\Backups\Backup.log</log>
       </global>
       <job name="full">
              <command>C:\Windows\system32\ntbackup.exe</command>
              <arguments>backup "@D:\Backups\Database Backup.bks" /v:no /r:no /rs:no /hc:off /m normal /j "Database" /l:s /f "D:\Backups\Database.bkf"</arguments>
              <directory>D:\Backups\</directory>
              <target>D:\Backups\Database.bkf</target>
              <compress>true</compress>
              <zippassword>password</zippassword>
              <maxfiles>3</maxfiles>
              <delete>true</delete>
              <ftp>true</ftp>
              <path>/backups/</path>
              <host>server.com</host>
              <user>server.com</user>
              <password>password</password>
       </job>
       <job name="database">
              <command>H:\Backups 2006\BackupAll.bat</command>
              <arguments/>
              <directory>H:\Backups 2006</directory>
              <target>H:\Backups 2006\Databases\Fatboy.bak</target>
              <compress>true</compress>
              <zippassword>password</zippassword>
              <maxfiles>10</maxfiles>
              <delete>true</delete>
              <ftp>true</ftp>
              <path>/backups/</path>
              <host>server.com</host>
              <user>server.com</user>
              <password>password</password>
       </job>
</config>
	

Command line

Command
Description
BackupManager -jobs full
Will run the job “full"
Command
Description
BackupManager -jobs full, database
Will run the job “full" then "database"