I made a script (batch) to save the MySQL database of the program EventLog Analyzer. The script uses for its efficient operation, the program 7-Zip and the commands Sleep.exe (which is part of the Windows Resource Kit) and blat.exe to send an email at the end of execution of the script.
The script syntax is:
@echo off
rem *********************************************************************
rem * *
rem * NOME SCRIPT: Backup_Database_MySQL.bat *
rem * *
rem * Script scritto da Alessandro Tani (Home Works S.p.A.) *
rem * *
rem * Versione 1.1 - Modificato l'ultima volta il 01/06/2010 *
rem * da Alessandro Tani *
rem * SCOPO: *
rem * *
rem * Questo script ha il compito di eseguire un ciclo di backup *
rem * dei database MySQL del programma EventLog Analyzer. *
rem * *
rem * File di log: %SystemDrive%\Logs\Backup_Database_MySQL.log *
rem * *
rem * PREREQUISITI: *
rem * *
rem * Il programma 7-Zip deve essere presente sulla postazione di *
rem * di lavoro *
rem * *
rem * TESTO: *
rem * *
rem * Nessuno *
rem * *
rem * NOTE: *
rem * *
rem * Questo script va eseguito solamente su postazioni Windows XP, *
rem * Windows 2003/2008 *
rem * *
rem *********************************************************************
rem Definiamo l'ambiente locale
setlocal enableextensions
echo.
rem Impostiamo le costanti
set BINPATH=%SystemDrive%\Bin\Exe
set Oggetto="ELA - Backup dei Database di MySQL"
set BodyMsg=%SystemDrive%\Bin\Txt\Backup_Database_MySQL.txt
set LOGFILE=%SystemDrive%\Logs\Backup_Database_MySQL.log
rem Impostiamo le variabili (da modificare di volta in volta)
set EVENTLOGFOLDER=E:\EventLog\mysql
set BACKUPFOLDER=C:\_\EventLogAnalyzer\BackupDB
rem Impostiamo le variabili per la gestione delle notifiche via email (da modificare di volta in volta)
rem Controlliamo la presenza dei file e cartelle necessari all'esecuzione
if not exist %SystemDrive%\Logs md %SystemDrive%\Logs
if not exist %BINPATH%\blat.exe goto NOBLAT
if not exist %ProgramFiles%\7-Zip\7z.exe goto NO7ZIP
rem Controlliamo se il programma EventLog Analyzer è installato sulla postazione
echo Controlliamo se il programma EventLog Analyzer è installato sulla postazione ... >> %LOGFILE%
if not exist %EVENTLOGFOLDER% goto NOEVENTLOG
echo Il programma EventLog Analyzer risulta installato sulla postazione. >> %LOGFILE%
echo. >> %LOGFILE%
rem Carichiamo la cartella in cui eseguire il backup dei database di MySQL del EventLog Analyzer
rem echo Carichiamo la cartella %BACKUPFOLDER% in cui eseguire il backup dei database di MySQL ... >> %LOGFILE%
rem net use %BACKUPFOLDER% /user:NomeDominio\NomeUtente Password >> %LOGFILE%
rem Cancelliamo il vecchio file di salvataggio di MySQL
if exist %BACKUPFOLDER%\Backup_Database_MySQL_Old.zip (
echo. >> %LOGFILE%
echo Cancelliamo il vecchio file di salvataggio: %BACKUPFOLDER%\Backup_Database_MySQL_Old.zip ... >> %LOGFILE%
del /q /f %BACKUPFOLDER%\Backup_Database_MySQL_Old.zip >> %LOGFILE%
)
rem Rinominiamo il vecchio file di salvataggio di MySQL
if exist %BACKUPFOLDER%\Backup_Database_MySQL.zip (
echo. >> %LOGFILE%
echo Rinominiamo il vecchio file di salvataggio %BACKUPFOLDER%\Backup_Database_MySQL.zip in %BACKUPFOLDER%\Backup_Database_MySQL_Old.zip ... >> %LOGFILE%
echo Backup eseguito il giorno %DATE% alle %TIME% >> %LOGFILE%
echo Eseguiamo il salvataggio della cartella %EVENTLOGFOLDER% sulla postazione %COMPUTERNAME% >> %LOGFILE%
echo In allegato a questo messaggio e' riportato il file di log del salvataggio dei databse di MySQL del programma EventLog Analyzer del %DATE% alle %TIME% > %BodyMsg%
echo. >> %LOGFILE%
%ProgramFiles%\7-Zip\7z.exe a -tzip %BACKUPFOLDER%\Backup_Database_MySQL.zip %EVENTLOGFOLDER%\* >> %LOGFILE%
rem Avviamo il il servizio ManageEngine EventLog Analyzer
echo. >> %LOGFILE%
echo Avviamo il servizio ManageEngine EventLog Analyzer (ore %TIME%) ... >> %LOGFILE%
echo Sulla postazione %COMPUTERNAME% non risulta installato il programma EventLog Analyzer, >> %LOGFILE%
echo pertanto il backup dei database MySQL non può essere eseguito. >> %LOGFILE%
echo Sulla postazione %COMPUTERNAME% non risulta installato il programma DataTrace, pertanto il backup dei database di MySQL non può essere eseguito. > %BodyMsg%
goto CONTINUE
:NOBLAT
echo Non è stato possibile trovare il file %BINPATH%\blat.exe >> %LOGFILE%
echo pertanto lo script non può essere eseguito. >> %LOGFILE%
echo Controllare che il percorso del file Blat.exe sia corretto. >> %LOGFILE%
goto END
:NO7ZIP
echo Non è stato possibile trovare il file %ProgramFiles%\7-Zip\7z.exe >> %LOGFILE%
echo pertanto lo script non può essere eseguito. >> %LOGFILE%
echo Controllare che il programma 7-Zip sia installato. >> %LOGFILE%
:END
echo.
endlocal
exit /b
To use the script you must be set properly the following variables:
EVENTLOGFOLDER: where is the folder MySQL of EventLog Analyzer
BACKUPFOLDER:where you want to save the MySQL database (can be a UNC path)
ServerSMTP: the FQDN of the SMTP server to send email notifications
Email: the recipient's email address
From: the sender's email address
If the SMTP server requires authentication, also set variables:
NomeUtenteSMTPAuth: name of a user to authenticate
PasswordSMTPAuth: password of the user
If necessary, remove the statement comment (REM) by the following instructions (to load the UNC path to save the MySQL database):
rem echo Carichiamo la cartella %BACKUPFOLDER% in cui eseguire il backup dei database di MySQL ... >> %LOGFILE%
rem net use %BACKUPFOLDER% /user:NomeDominio\NomeUtente Password >> %LOGFILE%
Remove, as appropriate, the comment mark (REM) from one of the following statements:
The script can be scheduled via the Windows Task Scheduler to run at a certain time of day. It is usually convenient to run this script at least once a week.