Solved

Need recommendation cloning type backup software with email reporting

Posted on 2010-08-23
12
395 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
 
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
Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

 
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

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Join & Write a Comment

Storage devices are generally used to save the data or sometime transfer the data from one computer system to another system. However, sometimes user accidentally erased their important data from the Storage devices. Users have to know how data reco…
The article will include the best Data Recovery Tools along with their Features, Capabilities, and their Download Links. Hope you’ll enjoy it and will choose the one as required by you.
In this Micro Tutorial viewers will learn how they can get their files copied out from their unbootable system without need to use recovery services. As an example non-bootable Windows 2012R2 installation is used which has boot problems.
This tutorial will walk an individual through setting the global and backup job media overwrite and protection periods in Backup Exec 2012. Log onto the Backup Exec Central Administration Server. Examine the services. If all or most of them are stop…

746 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now