Backup ELA DB (on MySQL) by Script

Backup ELA DB (on MySQL) by Script

Hi,

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:

  1. @echo off
  2. rem *********************************************************************
  3. rem *                                                                   *
  4. rem * NOME SCRIPT: Backup_Database_MySQL.bat                            *
  5. rem *                                                                   *
  6. rem * Script scritto da Alessandro Tani (Home Works S.p.A.)             *
  7. rem *                                                                   *
  8. rem * Versione 1.1 - Modificato l'ultima volta il 01/06/2010            *
  9. rem *                da Alessandro Tani                                 *
  10. rem * SCOPO:                                                            *
  11. rem *                                                                   *
  12. rem *  Questo script ha il compito di eseguire un ciclo di backup       *
  13. rem *  dei database MySQL del programma EventLog Analyzer.              *
  14. rem *                                                                   *
  15. rem * File di log: %SystemDrive%\Logs\Backup_Database_MySQL.log         *
  16. rem *                                                                   *
  17. rem * PREREQUISITI:                                                     *
  18. rem *                                                                   *
  19. rem *  Il programma 7-Zip deve essere presente sulla postazione di      *
  20. rem *  di lavoro                                                        *
  21. rem *                                                                   *
  22. rem * TESTO:                                                            *
  23. rem *                                                                   *
  24. rem *  Nessuno                                                          *
  25. rem *                                                                   *
  26. rem * NOTE:                                                             *
  27. rem *                                                                   *
  28. rem *  Questo script va eseguito solamente su postazioni Windows XP,    *
  29. rem *  Windows 2003/2008                                                *
  30. rem *                                                                   *
  31. rem *********************************************************************
  32. rem Definiamo l'ambiente locale
  33. setlocal enableextensions
  34. echo.
  35. rem Impostiamo le costanti
  36. set BINPATH=%SystemDrive%\Bin\Exe
  37. set Oggetto="ELA - Backup dei Database di MySQL"
  38. set BodyMsg=%SystemDrive%\Bin\Txt\Backup_Database_MySQL.txt
  39. set LOGFILE=%SystemDrive%\Logs\Backup_Database_MySQL.log
  40. rem Impostiamo le variabili (da modificare di volta in volta)
  41. set EVENTLOGFOLDER=E:\EventLog\mysql
  42. set BACKUPFOLDER=C:\_\EventLogAnalyzer\BackupDB
  43. rem Impostiamo le variabili per la gestione delle notifiche via email (da modificare di volta in volta)
  44. set ServerSMTP=mail.homeworks.it
  45. set Email=alessandro.tani@homeworks.it
  46. set From=eventlog@homeworks.it
  47. rem Impostare queste variabili solamente se il server SMTP richiede l'autenticazione
  48. set NomeUtenteSMTPAuth=support@homeworks.it
  49. set PasswordSMTPAuth=password
  50. rem Intestiamo il file di log
  51. echo ^+-----------------------------------------------------^+  > %LOGFILE%
  52. echo ^|  FILE DI LOG DEL COMANDO BACKUP_DATABASE_MYSQL.CMD  ^| >> %LOGFILE%
  53. echo ^+-----------------------------------------------------^+ >> %LOGFILE%
  54. echo. >> %LOGFILE%
  55. rem Controlliamo la presenza dei file e cartelle necessari all'esecuzione
  56. if not exist %SystemDrive%\Logs md %SystemDrive%\Logs
  57. if not exist %BINPATH%\blat.exe goto NOBLAT
  58. if not exist %ProgramFiles%\7-Zip\7z.exe goto NO7ZIP
  59. rem Controlliamo se il programma EventLog Analyzer è installato sulla postazione
  60. echo Controlliamo se il programma EventLog Analyzer è installato sulla postazione ... >> %LOGFILE%
  61. if not exist %EVENTLOGFOLDER% goto NOEVENTLOG
  62. echo Il programma EventLog Analyzer risulta installato sulla postazione. >> %LOGFILE%
  63. echo. >> %LOGFILE%
  64. rem Carichiamo la cartella in cui eseguire il backup dei database di MySQL del EventLog Analyzer
  65. rem echo Carichiamo la cartella %BACKUPFOLDER% in cui eseguire il backup dei database di MySQL ... >> %LOGFILE%
  66. rem net use %BACKUPFOLDER% /user:NomeDominio\NomeUtente Password >> %LOGFILE%
  67. rem Cancelliamo il vecchio file di salvataggio di MySQL
  68. if exist %BACKUPFOLDER%\Backup_Database_MySQL_Old.zip (
  69.     echo. >> %LOGFILE%
  70.     echo Cancelliamo il vecchio file di salvataggio: %BACKUPFOLDER%\Backup_Database_MySQL_Old.zip ... >> %LOGFILE%
  71.     del /q /f %BACKUPFOLDER%\Backup_Database_MySQL_Old.zip >> %LOGFILE%
  72.     )
  73. rem Rinominiamo il vecchio file di salvataggio di MySQL
  74. if exist %BACKUPFOLDER%\Backup_Database_MySQL.zip (
  75.     echo. >> %LOGFILE%
  76.     echo Rinominiamo il vecchio file di salvataggio %BACKUPFOLDER%\Backup_Database_MySQL.zip in %BACKUPFOLDER%\Backup_Database_MySQL_Old.zip ... >> %LOGFILE%
  77.     ren %BACKUPFOLDER%\Backup_Database_MySQL.zip Backup_Database_MySQL_Old.zip >> %LOGFILE%
  78.     )
  79. rem Fermiamo il servizio ManageEngine EventLog Analyzer
  80. echo. >> %LOGFILE%
  81. echo Fermiamo il servizio ManageEngine EventLog Analyzer (ore %TIME%) ... >> %LOGFILE%
  82. cscript //nologo %SystemDrive%\Bin\Vbs\StopService.vbs eventloganalyzer -r localhost >> %LOGFILE%
  83. rem Fermiamo il Database MySQL
  84. echo. >> %LOGFILE%
  85. echo Fermiamo i processi legati al database MySQL ... >> %LOGFILE%
  86. %EVENTLOGFOLDER%\Bin\mysqladmin -P 33335 -u root shutdown >> %LOGFILE%
  87. sleep 60
  88. rem Eseguiamo il backup dei database di MySQL
  89. echo. >> %LOGFILE%
  90. echo Backup eseguito il giorno %DATE% alle %TIME% >> %LOGFILE%
  91. echo Eseguiamo il salvataggio della cartella %EVENTLOGFOLDER% sulla postazione %COMPUTERNAME% >> %LOGFILE%
  92. 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%
  93. echo. >> %LOGFILE%
  94. %ProgramFiles%\7-Zip\7z.exe a -tzip %BACKUPFOLDER%\Backup_Database_MySQL.zip %EVENTLOGFOLDER%\* >> %LOGFILE%
  95. rem Avviamo il il servizio ManageEngine EventLog Analyzer
  96. echo. >> %LOGFILE%
  97. echo Avviamo il servizio ManageEngine EventLog Analyzer (ore %TIME%) ... >> %LOGFILE%
  98. cscript //nologo %SystemDrive%\Bin\Vbs\StartService.vbs eventloganalyzer -r >> %LOGFILE%
  99. rem Rimuoviamo la cartella di backup
  100. rem echo. >> %LOGFILE%
  101. rem echo Scolleghiamo la cartella %BACKUPFOLDER% in cui è stato eseguito il backup dei DB di MySQL >> %LOGFILE%
  102. rem net use %BACKUPFOLDER% /delete >> %LOGFILE%
  103. :CONTINUE
  104. rem Inviamo un messaggio di email (togliere il segno di commento dalla riga corretta)
  105. echo. >> %LOGFILE%
  106. echo Inviamo il messaggio di email contente il file di log relativo al backup dei database di MySQL >> %LOGFILE%
  107. if [%ServerSMTP%] equ [] (
  108.     echo Non è stato impostato il server SMTP con cui inviare le email >> %LOGFILE%
  109.     echo. >> %LOGFILE%
  110.     echo Fine del file di log >> %LOGFILE%
  111. ) else (
  112.     echo. >> %LOGFILE%
  113.     echo Fine del file di log >> %LOGFILE%
  114.     rem %BINPATH%\blat %BodyMsg% -attach %LOGFILE% -subject %Oggetto% -to %Email% -f %From% -server %ServerSMTP% -q
  115.     rem %BINPATH%\blat %BodyMsg% -attach %LOGFILE% -subject %Oggetto% -to %Email% -f %From% -server %ServerSMTP% -u %NomeUtenteSMTPAuth% -pw %PasswordSMTPAuth% -q
  116.     )
  117. goto END
  118. :NOEVENTLOG
  119. echo Sulla postazione %COMPUTERNAME% non risulta installato il programma EventLog Analyzer, >> %LOGFILE%
  120. echo pertanto il backup dei database MySQL non può essere eseguito. >> %LOGFILE%
  121. echo Sulla postazione %COMPUTERNAME% non risulta installato il programma DataTrace, pertanto il backup dei database di MySQL non può essere eseguito. > %BodyMsg%
  122. goto CONTINUE
  123. :NOBLAT
  124. echo Non è stato possibile trovare il file %BINPATH%\blat.exe    >> %LOGFILE%
  125. echo pertanto lo script non può essere eseguito.                 >> %LOGFILE%
  126. echo Controllare che il percorso del file Blat.exe sia corretto. >> %LOGFILE%
  127. goto END
  128. :NO7ZIP
  129. echo Non è stato possibile trovare il file %ProgramFiles%\7-Zip\7z.exe >> %LOGFILE%
  130. echo pertanto lo script non può essere eseguito.                       >> %LOGFILE%
  131. echo Controllare che il programma 7-Zip sia installato.                >> %LOGFILE%
  132. :END
  133. echo.
  134. endlocal
  135. 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):


  1. rem echo Carichiamo la cartella %BACKUPFOLDER% in cui eseguire il backup dei database di MySQL ... >> %LOGFILE%
  2. rem net use %BACKUPFOLDER% /user:NomeDominio\NomeUtente Password >> %LOGFILE%
Remove, as appropriate, the comment mark (REM) from one of the following statements:

  1.     rem %BINPATH%\blat %BodyMsg% -attach %LOGFILE% -subject %Oggetto% -to %Email% -f %From% -server %ServerSMTP% -q
  2.     rem %BINPATH%\blat %BodyMsg% -attach %LOGFILE% -subject %Oggetto% -to %Email% -f %From% -server %ServerSMTP% -u %NomeUtenteSMTPAuth% -pw %PasswordSMTPAuth% -q
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.


I hope you find this script useful.

Alessandro






















                New to ADSelfService Plus?