Scheduling Backup

Revision as of 18:38, 26 May 2017 by Alnaucler (talk | contribs)
Warning.jpg This script only takes backup of the database and the attachments.
  1. Take a decision on how the shutdown of the IMSMA server will be implemented.
  2. Modify the following script by replacing xyz at SIX places with the folder where you would like the backup folder to be created.
    :: IMSMA backup via bat file
    @echo off
    @echo Backing up the database. This may take awhile, do not close this window.
    :: C:\xyz is the folder where you want the backups to be created. The folder must exists before the script is started.
    :: The user starting the Task in the Windows scheduler must have read/write access to the folder. 
    c:\imsmang\pgsql\bin\pg_dump -U imsma > C:\xyz\dump.sql
    @echo Creating folder
    :: Creates a folder with the date as a timestamp, similar to the backups done in IMSMA. Then moves the dump.sql to it.
    for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
    set datestamp=%dt:~0,8%
    set timestamp=%dt:~8,6%
    echo datestamp: "%datestamp%"
    echo timestamp: "%timestamp%"
    set YYYY=%dt:~0,4%
    set MM=%dt:~4,2%
    set DD=%dt:~6,2%
    set HH=%dt:~8,2%
    set Min=%dt:~10,2%
    set Sec=%dt:~12,2%
    set foldername=Backup_%YYYY%_%MM%_%DD%_%HH%_%Min%_%Sec%
    mkdir c:\xyz\%foldername%
    move c:\xyz\dump.sql c:\xyz\%foldername%\
    @echo Copying the attachments
    :: uses xcopy to copy files from server destination to backup destination.
    :: /e Copies all subdirectories, even if they are empty]
    :: /h Copies hidden/system files
    :: /q suppresses output messages
    mkdir c:\xyz\%foldername%\server\attachments
    xcopy C:\IMSMAng\server\attachments c:\xyz\%foldername%\server\attachments /e /h /q
    @echo Done.
    
  3. Save it with name runIMSMAbackup.bat. Do not save it in the C:\IMSMAng folder.
  4. Schedule a task in the Operating System's Task scheduler. The following steps are done with Windows 7, follow those steps:
  5. Go to Control Panel → Administrative Tools → Task Scheduler
  6. Windows Scheduler.png
  7. In the Task Scheduler interface, click on Create Basic Task...
  8. In the Create Basic Task Wizard, provide a name, e.g. IMSMA Backup and an optional description. Click Next.
  9. In the next window, specify the required recurrence (daily, weekly, etc.) and click Next.
  10. Next, refine recurrence criteria (e.g. time of the day) and click Next.
  11. In the next window, select Start a Program and click Next.
  12. Browser to the previously created script, e.g. C:\backups\runIMSMAbackup.bat Click Next and then Finish.

The IMSMANG backup should now start at the specified time.

Scheduled bkp.png

It is advised to plan when to take the backup carefully, i.e. it is best during the night when no one is accessing and entering data into IMSMANG, as this might lead to inconsistencies.