Last active
March 5, 2020 11:08
-
-
Save mark05e/415ddca6cca67e68ad26734a64278640 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
REM AWFOS v5.x Backup Script by mark@???? | Feb 2019 | |
REM Requires ShadowSpawn [https://github.com/candera/shadowspawn/downloads] for online backup | |
REM Requires 7zip [https://www.7-zip.org/download.html] for archiving backup | |
REM Requires MSSQL osql [https://docs.microsoft.com/en-us/sql/tools/osql-utility?view=sql-server-2014] for db backup | |
REM Note 1: special quote sequence for variables that contain spaces | |
REM Note 2: this only works for stand-alone/consolidated solution | |
@echo on | |
set "backup-path-1=D:\Program Files (x86)\Avaya" | |
set "backup-path-2=D:\ProgramData\WFO_HOME" | |
set "backup-path-3=C:\Program Files\Apache Software Foundation" | |
set "backup-db01=AWFOSDB" | |
set "backup-db02=AWFOSDB_Tenant" | |
set "sevenzip-path=C:\Program Files\7-Zip" | |
set "osql-path=C:\Program Files\Microsoft SQL Server\110\Tools\Binn" | |
set "ShadowSpawn-path=D:\MarkTools\ShadowSpawn-0.2.2-x64" | |
set "backup-drive-local=E:" | |
set "backup-drive-remote=W:" | |
set "robocopy-exclude-filetypes=*.log *_log*.txt *.log.* *.tmp" | |
@echo off | |
REM Timestamp Function | |
REM https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script | |
@echo on | |
for /f "tokens=2-8 delims=.:/ " %%a in ("%date% %time: =0%") do set DateNtime=%%c-%%a-%%b_%%d-%%e | |
echo %DateNtime% | |
cd /d %backup-drive%\ | |
mkdir AWFOS_BACKUP | |
mkdir AWFOS_BACKUP__%DateNtime% | |
mkdir AWFOS_BACKUP__%DateNtime%\Avaya | |
mkdir AWFOS_BACKUP__%DateNtime%\WFO_HOME | |
mkdir AWFOS_BACKUP__%DateNtime%\Registry | |
mkdir AWFOS_BACKUP__%DateNtime%\Database | |
mkdir AWFOS_BACKUP__%DateNtime%\WEBLM | |
@echo off | |
REM ShadowSpawn is a tool for working with shadow copies. Shadow copies are read-only snapshots of your disk. | |
REM eg: shadowspawn C:\foo Q: robocopy Q:\ C:\bar /s | |
@echo on | |
REM Online folder backup and skip log files | |
%ShadowSpawn-path%\ShadowSpawn.exe %backup-path-1% Q: robocopy Q:\ %backup-drive%\AWFOS_BACKUP__%DateNtime%\Avaya /E /XF %robocopy-exclude-filetypes% | |
%ShadowSpawn-path%\ShadowSpawn.exe %backup-path-2% Q: robocopy Q:\ %backup-drive%\AWFOS_BACKUP__%DateNtime%\WFO_HOME /E /XF %robocopy-exclude-filetypes% | |
%ShadowSpawn-path%\ShadowSpawn.exe %backup-path-3% Q: robocopy Q:\ %backup-drive%\AWFOS_BACKUP__%DateNtime%\WEBLM /E /XF %robocopy-exclude-filetypes% | |
REM Registry backup | |
regedit /E %backup-drive-local%\AWFOS_BACKUP__%DateNtime%\Registry\hklm_avaya.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Avaya" | |
regedit /E %backup-drive-local%\AWFOS_BACKUP__%DateNtime%\Registry\hklm_env.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" | |
regedit /E %backup-drive-local%\AWFOS_BACKUP__%DateNtime%\Registry\hklm_services.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" | |
regedit /E %backup-drive-local%\AWFOS_BACKUP__%DateNtime%\Registry\hkcu_env.reg "HKEY_CURRENT_USER\Environment" | |
SET >> %backup-drive-local%\AWFOS_BACKUP__%DateNtime%\Registry\allvariables.txt | |
REM Database backup | |
"%osql-path%\osql.exe" -Q "BACKUP DATABASE %db01% TO DISK='%backup-drive%\AWFOS_BACKUP__%DateNtime%\Database\%db01%.bak'" -S localhost -E | |
timeout 5 | |
"%osql-path%\osql.exe" -Q "BACKUP DATABASE %db02% TO DISK='%backup-drive%\AWFOS_BACKUP__%DateNtime%\Database\%db02%.bak'" -S localhost -E | |
timeout 5 | |
REM Archive all backup files | |
"%sevenzip-path%\7z.exe" a %backup-drive%\AWFOS_BACKUP\AWFOS_BACKUP__%DateNtime%.7z %backup-drive%\AWFOS_BACKUP__%DateNtime% | |
timeout 5 | |
REM Move archive to remote location | |
robocopy %backup-drive-local%\AWFOS_BACKUP\ %backup-drive-remote%\AWFOS_BACKUP\ AWFOS_BACKUP__%DateNtime%.7z /mov | |
timeout 5 | |
REM Remove temp folder after archive | |
rmdir %backup-drive%\AWFOS_BACKUP__%DateNtime% /S /Q | |
timeout 10 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment