Solved

Need recommendation cloning type backup software with email reporting

Posted on 2010-08-23
12
398 Views
Last Modified: 2012-05-10
I need to find a program to replace my current method of doing backups at client offices. I currently use xxcopy with a simple batch script. It works OK but doesn't do exactly what I need. If anyone has any recommendations I would like any help offered. Here is what I need to do...
User rotates external drives, clicks an icon and it will backup folders on a Windows 2003 Server to an external drive and a Backup Server. I don't want it to be put in a single zipped or other big backup file. It needs to "almost" clone a folder to another server and an external drive. I say "almost" because it only needs to be synchronized twice a day. I also need it to be able to email the results automatically.

So basically, there is a "Data" folder on the Server that all workstations are mapped to. This folder needs to be cloned, or synchronized, at lunch and at the end of the day. The destination of the backup will be a Backup Server "Data" folder and an external USB drive. The results of the backup will be checked by the staff and e-mailed to me. In the event the primary server goes down, the workstations can be re-mapped to the backup server, which would be updated twice per day.

The ability to backup an SQL database would be a real bonus, although not mandatory because the office software has a method to do it, although it is not very user friendly.

Off-Site backup services do not seem feasible due to the size of the data (200-500GB) and the time required to do a Restore over the Internet.

Any suggestions or recommendations would be really appreciated.
Thanks,
Edd F.
0
Comment
Question by:eddie-f
12 Comments
 
LVL 11

Expert Comment

by:Ben Personick
ID: 33505902
Why not just Use RoboCopy?



::------------------------------------------------------------------------------------------------::
:: Script: RoboCopy_Backup-Any-Drive.bat                                               			  ::
:: Version: 4.1                                                                                   ::
:: Copyright: Ben Personick                                                                       ::
:: Date: 2010-07-12                                                                               ::
::                                                                                                ::
::                                                                                                ::
:: Desc: Copies Local System settings, and documents to a backup location on the HD it's run from ::
::                                                                                                ::
::------------------------------------------------------------------------------------------------::
:Begin
  ECHO Off
  SET ScriptName=RoboCopy-Backup
  ECHO ---- Begining %ScriptName%... ----

::------------------------------------------------------------------------------------------------::
:: This section sets up default variable settings and sets the logging directory and file name.   ::
::------------------------------------------------------------------------------------------------::
:Start-Prep
	ECHO off
	CALL :Start-Set-Date
	SET Preamble=%ScriptName% --
	
	::--------------------------------------------------------------------------------------------::
	:: Sets Relative Paths used to Copy later.  												  ::
	::--------------------------------------------------------------------------------------------::	
	SET SrcDrv=C:
	:: NOTE: On Windows XP SET UserDir=Documents and Settings
	SET UserDir=Users
	:: NOTE: On Windows XP SET PSTFilePath=%UserDir%\%UserName%\Local Settings\Application Data\Microsoft\Outlook
	:: NOTE: To Skip SET PSTFilePath=NOMATCH
	SET PSTFilePath=%UserDir%\%UserName%\AppData\Local\Microsoft\Outlook
	::The Following Variable Sets the Folder path to store the user files in
	SET DstShare=BKUP_WORK_REAL
	::--------------------------------------------------------------------------------------------::
	:: Set the following Variables to backup a Sharepoint to a Local Directory for Copy to USB	  ::
	::--------------------------------------------------------------------------------------------::
	:: NOTE: To skip this SET SharePointDir=URLTOSHAREPOINTSITE
	
	
	 SET SharePointDir=URLTOSHAREPOINTSITE
	 SET SPUserName=YOURDOMAIN\YOURUSERNAME
	 SET SPPassword=1234
	 SET SPLocal=Sharepoint
	
	
	::--------------------------------------------------------------------------------------------::
	:: Set the following Variable to hold a list of Directories under %SrcDrv%		 			  ::
	::--------------------------------------------------------------------------------------------::
	:: NOTE: Encapsulate Directories with double Quotes and separate them with Commas
	:: CAREFUL: Ensure not to leave directories below set as NOMATCH, it will terminate the copy job prematurely!
	:: NOTE: To skip SET SrcDirectories=NOMATCH
	SET SrcDirectories="Admin", "Dell", "Tools", "Temp", "%SPLocal%", "%UserDir%\%UserName%\Contacts", "%UserDir%\%UserName%\Desktop", "%UserDir%\%UserName%\Downloads", "%UserDir%\%UserName%\Favorites", "%UserDir%\%UserName%\Documents", "%UserDir%\%UserName%\Music", "%UserDir%\%UserName%\Pictures", "%UserDir%\%UserName%\Videos", "%UserDir%\%UserName%\Saved Games"

	::--------------------------------------------------------------------------------------------::
	:: If DrvDst is Set to NOMATCH it will find the drive the batch file is double-clicked from.  ::
	::--------------------------------------------------------------------------------------------::
	SET DrvDst=NOMATCH 	
	
	::--------------------------------------------------------------------------------------------::
	:: This section finds the Drive The Batch File is run from for use later in the script        ::
	::--------------------------------------------------------------------------------------------::
	IF %DrvDst% NEQ NOMATCH GOTO End-Find-Drive-Letter
	:Start-Find-Drive-Letter
		Call :Start-Find-DL-Run-From
	:End-Find-Drive-Letter
	ECHO %Preamble% Drive Run From = %DrvDst% --
	IF DstDrv == NOMATCH ECHO THE BATCH WAS NOT RUN FROM A HARD DRIVE!!
	REM IF DstDrv == NOMATCH pause
	IF DstDrv == NOMATCH GOTO :EOF
	
	::--------------------------------------------------------------------------------------------::
	:: This Section Sets up logging variables.													  ::
	::--------------------------------------------------------------------------------------------::
	SET IDir=%DrvDst%\Admin\%ScriptName%\Logs
	SET ILog=%ScriptName%_%TDate%_%TTime%.Log
	SET IDL=%IDir%\%ILog%
	
	::--------------------------------------------------------------------------------------------::
	:: This Section Creates Directories for Logging and other files								  ::
	::--------------------------------------------------------------------------------------------::
	:Start-Create-Directories
		For /F %%D IN ("%IDir%") DO CALL :Start-DIR-Loop %%D
		GOTO End-DIR-Loop
		:Start-DIR-Loop
			SET TDir=%1
			ECHO %Preamble% Checking For %TDir%
			IF EXIST %TDir% CALL :Start-Echo "%TDir% -- Found!"
			IF EXIST %TDir% GOTO :EOF
			ECHO %Preamble% Creating %TDir%
			MKDir %TDir%
			CALL :Start-Echo "Created %TDir%"
			GOTO :EOF
		:End-DIR-Loop
		CALL :Start-Echo "Dir-Loop Completed"
	:End-Create-Directories
	
	::--------------------------------------------------------------------------------------------::
	:: This Section Sets Default Values for match variables, don't change except for testing.	  ::
	::--------------------------------------------------------------------------------------------::
	SET OSVer=NOMATCH
	Set vTemp=NOMATCH
	SET OSSP=NOMATCH
	SET OSbit=NOMATCH
	SET OSSPExit=NOEXIT
	SET RoBoVista=NO
	SET SkipLoop=NO

:End-Prep

:Start-Begin-Log
	CALL :Start-Set-Date
	CALL :Start-Echo "BEGIN Script on %Date%"
	CALL :Start-Echo " "
	CALL :Start-Echo "------------------------------------------------------"
	CALL :Start-Echo "BEGIN %ScriptName% Script on %TDate% AT %TTime%"
	CALL :Start-Echo "------------------------------------------------------"
	CALL :Start-Echo " "
:End-Begin-Log



::------------------------------------------------------------------------------------------------::
:: This section finds the version of the operating system for use later in the script             ::
::------------------------------------------------------------------------------------------------::
:Start-FIND-OS

	:Start-FIND-Ver
		
		FOR %%V IN (3.1, 3.5, 3.51, 4.0, 5.0, 5.1, 5.2, 6.0, 6.1) DO call :Start-Ver-Loop %%V
		GOTO End-Ver-Loop
		:Start-Ver-Loop
			If %OSVer% NEQ NOMATCH GOTO :EOF
			SET TVer=%1
			CALL :Start-Echo "TVer = %TVer%"
			VER | FIND "%TVer%"
			IF ERRORLEVEL 1 GOTO :EOF
			IF %TVer% == 3.1 SET OSVer=NT%TVer%
			IF %TVer% == 3.5 SET OSVer=NT%TVer%
			IF %TVer% == 3.51 SET OSVer=NT%TVer%
			IF %TVer% == 4.0 SET OSVer=NT4
			IF %TVer% == 5.0 SET OSVer=2K
			IF %TVer% == 5.1 SET OSVer=XP
			IF %TVer% == 5.2 SET OSVer=2K3
			IF %TVer% == 6.0 SET OSVer=Vista
			IF %TVer% == 6.1 SET OSVer=7
			GOTO :EOF
			
		:End-Ver-Loop
		CALL :Start-Echo "End-Ver-Loop"
		IF %OSVer% == Vista (SET RoBoVista=GO)  ELSE IF %OSVer% == 7 (SET RoBoVista=GO) ELSE (SET RoBoVista=NO)
		IF %OSVer% == Vista (GOTO 2K8?-Start)  ELSE IF %OSVer% == 7 (GOTO 2K8?-Start) ELSE (GOTO 2K8?-end)
		:2k8?-start
			CALL :Start-Echo "2k8?-start"
			START /WAIT REGEDIT.EXE /E "%Temp%.\%%~n0.dat" "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" 
			  FOR /F "tokens=2 delims==" %%A IN ('TYPE "%Temp%.\%%~n0.dat" ^| FIND /I "ProductName"') DO SET VTemp=%%~A 

			ECHO %VTemp% | find "2008"
			if errorlevel = 1 (GOTO 2k8?-end)  else (set OSVer=2K8)
			
		:2k8?-end

	:End-Find-Ver
	 
	
	:Start-FIND-SP
		CALL :Start-Echo "%OSSP%"
		IF 	%OSSP% NEQ NOMATCH GOTO End-FIND-SP
		START /WAIT REGEDIT.EXE /E "%Temp%.\%%~n0.dat" "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" 
		FOR /F "tokens=2 delims==" %%A IN ('TYPE "%Temp%.\%%~n0.dat" ^| FIND /I "CSDVersion"') DO SET OSSP=%%~A 
		IF ERRORLEVEL 1 SET OSSP= 
		DEL "%Temp%.\%%~n0.dat" 
		CALL :Start-Echo "%OSSP%"

		FOR %%S IN (1, 2, 3, 4, 5, 6) DO call :Start-SP-Loop %%S
		CALL :Start-Echo "End 2nd for"
		GOTO End-SP-Loop
		:Start-SP-Loop
			If %OSSPExit% == EXIT GOTO :EOF
			SET TSP=%1
			CALL :Start-Echo "TSP = %TSP%"
			ECHO %OSSP% | FIND "%TSP%"
			IF ERRORLEVEL 1 GOTO :EOF
			SET OSSP=SP%TSP%
			SET OSSPExit=EXIT
			GOTO :EOF
			
		:End-SP-Loop
		CALL :Start-Echo "End-SP-Loop"
		
	:End-FIND-SP
	CALL :Start-Echo "End Find SP"

::------------------------------------------------------------------------------------------------::
:: This section finds Whether the Operating system is 32bit or 64bit for use later in the script. ::
::------------------------------------------------------------------------------------------------::
	:Start-Find-OS-Architechture

		:Start-Find-bit-Level

			FOR %%V IN (86, 64) DO call :Start-bit-Loop %%V
			GOTO End-bit-Loop
			:Start-bit-Loop
				If %OSbit% NEQ NOMATCH GOTO :EOF
				SET Tbit=%1
				CALL :Start-Echo "Tbit = %Tbit%"
				ECHO %PROCESSOR_ARCHITECTURE% | FIND "%Tbit%"
				IF ERRORLEVEL 1 GOTO :EOF
				SET OSbit=%Tbit%
				If %Tbit% == 86 SET OSbit=32
				GOTO :EOF
				
			:End-bit-Loop
			CALL :Start-Echo "End-bit-Loop"
			
		:End-Find-bit-Level

	:End-Find-OS-Architechture
	
::------------------------------------------------------------------------------------------------::
:: This section is intended to determin if the OS is Desktop or Server for differing installs.    ::
::------------------------------------------------------------------------------------------------::
	:Start-Set-Desktop-OS-Runs
		SET DTOSRun=NO
		CALL :Start-Echo "Checking if Desktop OS"
		CALL :Start-Echo "DTOSRun = %DTOSRun%, OSVer = %OSVer%"
		CALL :Start-Echo "Set DTOSRun to GO Only if OSVer is a desktop OS"
		IF /i %OSVer% == XP SET DTOSRun=GO
		IF /i %OSVer% == Vista SET DTOSRun=GO
		IF /i %OSVer% == 7 SET DTOSRun=GO
		
	:End-Set-Desktop-OS-Runs
	
	CALL :Start-Echo "OS Version = %OSVer%"
	CALL :Start-Echo "OS SP Version = %OSSP%"
	CALL :Start-Echo "OS Architechture = %OSbit% bit"
	CALL :Start-Echo "OS Desktop? (NO or GO) = %DTOSRun%"
	
:End-FIND-OS




:Start-Main

:Start-Copy-Sharepoint
	IF /I "%SharePointDir%"=="URLTOSHAREPOINTSITE" GOTO End-Copy-Sharepoint
	CALL :Start-Set-Date
	CALL :Start-Echo "Start-Copy-Sharepoint ON %TDate% AT %TTime%"
	Net Use "%SharePointDir%" /USER:%SPUserName% %SPPassword%
	IF %RoBoVista%==GO (Robocopy "%SharePointDir%" "%SrcDrv%\%SPLocal%" * /ZB /E /DCOPY:T /MIR /LOG+:%IDL% /TEE /NP /R:2 /W:2)
	IF %RoBoVista%==NO (Robocopy "%SharePointDir%" "%SrcDrv%\%SPLocal%" * /ZB /E /MIR /LOG+:%IDL% /TEE /NP /R:2 /W:2)
	Net Use "%SharePointDir%" /DELETE
:End-Copy-Sharepoint


:Start-DoCopy

	CALL :Start-Set-Date
	CALL :Start-Echo "Start-DoCopy ON %TDate% AT %TTime%"
	REM Below is the For Loop, %%A is the term pulled from the set to pass to the command loop
	REM  The terms are located within the open and close parenthesis, and quotes allow spaces to be ignored
	REM  If Quotes were not used, the spaces would be seen as a delimiter just as commas are.
	FOR %%A IN (%SrcDirectories%) DO call :Start-DoCopy-Loop %%A
	GOTO End-DoCopy-Loop
	:Start-DoCopy-Loop
		IF /I %1=="NOMATCH" SET SkipLoop=YES
		IF /I %SkipLoop%==YES GOTO :EOF
		CALL :Start-Set-Date
		REM This is the command loop, everythign inside this loop will be preocessed as a separate batch file
		REM we use %~1 for the variable the Tilde says to strip quotes off the passed text XD
		CALL :Start-Echo "ON %TDate% AT %TTime% Start-%~1"
		IF %RoBoVista%==GO (Robocopy "%SrcDrv%\%~1" "%DrvDst%\%DstShare%\%~1" * /ZB /E /DCOPY:T /LOG+:%IDL% /MIR /TEE /NP /R:2 /W:2 /XJD)
		IF %RoBoVista%==NO (Robocopy "%SrcDrv%\%~1" "%DrvDst%\%DstShare%\%~1" * /ZB /E /LOG+:%IDL% /MIR /TEE /NP /R:2 /W:2)
		GOTO :EOF
	:End-DoCopy-Loop

:End-DoCopy
CALL :Start-Set-Date
CALL :Start-Echo "End-DoCopy ON %TDate% AT %TTime%"

:Start-Copy-PST
	IF /I "%PSTFilePath%"=="NOMATCH" GOTO End-Copy-PST
	CALL :Start-Set-Date
	CALL :Start-Echo "Start-Copy-PST ON %TDate% AT %TTime%"
	IF %RoBoVista%==GO (Robocopy "%SrcDrv%\%PSTFilePath%" "%DrvDst%\%PSTFilePath%" *.pst /ZB /E /DCOPY:T /LOG+:%IDL% /MIR /TEE /NP /R:2 /W:2)
	IF %RoBoVista%==NO (Robocopy "%SrcDrv%\%PSTFilePath%" "%DrvDst%\%PSTFilePath%" *.pst /ZB /E /LOG+:%IDL% /MIR /TEE /NP /R:2 /W:2)

:End-Copy-PST

:End-Main
GOTO :End


GOTO End-Subs
GOTO :End
:Start-Subs
	GOTO :End-Set-Date
	:Start-Set-Date
		SET TDate=%date:~10,4%-%date:~4,2%-%date:~7,2%
		SET TTime=%Time:~0,2%.%Time:~3,2%.%Time:~6,2%
		GOTO :EOF
	:End-Set-Date
	GOTO End-Echo
	:Start-Echo
		Set TEcho=%~1
		ECHO %Preamble% %TEcho% --
		ECHO %Preamble% %TEcho% -- >> %IDL%
		GOTO :EOF
	:End-Echo
	GOTO End-Find-DL-Run-From
	:Start-Find-DL-Run-From
		FOR %%V IN (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z) DO call :Start-DL-Loop %%V
		GOTO End-DL-Loop
		:Start-DL-Loop
			If %DrvDst% NEQ NOMATCH GOTO :EOF
			SET TDrv=%1:
			REM ECHO %Preamble% TDrv = %TDrv% --
			Dir /D | FIND " Directory of " | Find "%TDrv%\"
			IF ERRORLEVEL 1 GOTO :EOF
			SET DrvDst=%TDrv%
			GOTO :EOF
		:End-DL-Loop
		REM Echo %Preamble% End-DL-Loop --
		GOTO :EOF
	:End-Find-DL-Run-From

:End-Subs


:End
	CALL :Start-Set-Date
	CALL :Start-Echo "!!--!! %ScriptName% Exiting ON %TDate% AT %TTime% !!--!!
	GOTO :EOF

Open in new window

0
 

Author Comment

by:eddie-f
ID: 33506089
RoboCopy looks like a very sophisticated version of my one line batch file using xxcopy. I'm looking for something more user friendly with a nice GUI and automated email reporting. SQL backup would be great. Thanks for the suggestion though.
0
 
LVL 11

Expert Comment

by:Ben Personick
ID: 33506359
I thought you said you wanted yoru administrators to do the email reporting, because we can have the reports sent from that script by email using blat, by the addition of one command.

If you prefer a GUI try using

http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

Sorry I shy away from GUIs lately for these sorts of tasks because I don't like having to have user involvement, I apologize the script was not properly suited to your needs.

One thing is that most backup software does it's backups to a single file, otherwise I would have scripted NTBackup and also mentioned it has a GUI.  to do SQL backups you need to backup from SQL. Even many sophisticated backup software it is doing it's backups to disk via SQL and then backing up the files into a big file.

Since you don;'t want a single file but instead want a set of files, you are probably looking for file-copy utilities not backup utilities, as again those usually create 1 massive file.

I hope that helps!

-Q
0
Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

 
LVL 63

Expert Comment

by:SysExpert
ID: 33506662

SyncToy v 2.0  Sync toys from Microsoft  - Free

http://www.microsoft.com/downloads/details.aspx?familyid=C26EFA36-98E0-4EE9-A7C5-98D0592D8C52&displaylang=en


I hope this helps !
0
 
LVL 11

Expert Comment

by:Ben Personick
ID: 33506739
Oy, Sync Toy?  That's exactly the tech that made me use robocopy XD. GL w/ that
0
 

Author Comment

by:eddie-f
ID: 33517087
Thanks for the suggestions. The GUI version of RoboCopy and Microsoft's SyncToy and a PowerTool called Rich Copy are all programs I am looking into. I'll keep the question open for a bit longer in case anyone else has any thoughts.
Thanks.
0
 
LVL 11

Assisted Solution

by:Ben Personick
Ben Personick earned 125 total points
ID: 33523851
Rich Copy is he tool I linked to above actually.  That site also has info about the Robocopy GUI it's tru.  GL!
0
 
LVL 10

Accepted Solution

by:
Dextertronic earned 125 total points
ID: 33527977
Symantec Backup Exec System Recovery Server (what a mouthfull)  meets all your requirements and has a heap of other functionailty.
Try the full featured trial version :
http://www.symantec.com/en/au/business/products/trialware.jsp?pcid=pcat_security&pvid=1602_1
Reasonably priced for what it does.
Also have a look at the Acronis Imaging  software
 
0
 
LVL 7

Expert Comment

by:simonseztech
ID: 33530883
Macrium Reflect™ - Hard Disk Imaging and File Backup Software Product Information        
border.

They have a free version http://www.macrium.com/reflectfree.asp
Windows Versions: XP, Vista, Windows 7. 32 and native 64 Bit.

If you want server version you will have to buy full (around 40$)

This software provide bare metal restore and bare-metal restore to different hardware.
0
 

Author Comment

by:eddie-f
ID: 33640938
Thanks to everyone who chimed in. I think that the best solutions for me are the paid versions of Symantec and Acronis, although some of the free solutions are interesting.
0
 

Author Closing Comment

by:eddie-f
ID: 33640982
Not exactly what I needed but I appreciate the suggestions.
0
 
LVL 11

Expert Comment

by:Ben Personick
ID: 33641223
Glad I could be some modicum of help on this!
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microservice architecture adoption brings many advantages, but can add intricacy. Selecting the right orchestration tool is most important for business specific needs.
Learn how the use of a bunch of disparate tools requiring a lot of manual attention led to a series of unfortunate backup events for one company.
This tutorial will walk an individual through the steps necessary to enable the VMware\Hyper-V licensed feature of Backup Exec 2012. In addition, how to add a VMware server and configure a backup job. The first step is to acquire the necessary licen…
This tutorial will walk an individual through the process of installing the necessary services and then configuring a Windows Server 2012 system as an iSCSI target. To install the necessary roles, go to Server Manager, and select Add Roles and Featu…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question