Backup iShare Installation & Configuration
Overview
If you are an iShare in the Cloud (ISC) customer then Astun automatically perform daily off-peak backups of the servers; one of the many benefits of being an ISC customer. These backups can be easily restored if an issue should arise.
Here we have include a script to allow you to backup your iShare Installation and Configuration, excluding databases, to a dated folder in your chosen location. Once configured, this may then be run manually or as a Scheduled Task.
See the topic Backing up your Database for details on how to backup your PostgreSQL database(s). You may also wish to Extract Non-System Functions from the iShare Database especially if you have created bespoke Functions.
The Script
REM WARNING: Make sure you change to the directory where iShare backups are stored before running this script
REM to avoid deleting arbitrary files. Also ensure that the "Start in" directory is set when creating
REM a Scheduled Task. The "Start in" directory should be the directory where iShare backups are stored
REM such as D:\Backups\iShare
REM Tidy up by deleting files older than x days
REM NOTE: Read the warning above before removing the REM on the line below in order to enable deleting old files
REM PowerShell -NoProfile -ExecutionPolicy Bypass -Command "dir |? {$_.CreationTime -lt (get-date).AddDays(-8)} | del -r"
REM Get the current time, based on http://serverfault.com/a/227375
SET TIMESTAMP=
FOR /F "skip=1 delims=" %%F IN ('wmic os get LocalDateTime') DO IF NOT DEFINED TIMESTAMP SET TIMESTAMP=%%F
MKDIR "%TIMESTAMP:~0,14%"
CD "%TIMESTAMP:~0,14%"
REM iShare Maps
MKDIR .\Astun\iShare\5.4\
XCOPY D:\Astun\iShare\5.4\Paths.xml .\Astun\iShare\5.4\
XCOPY D:\Astun\iShare\5.4\Settings.xml .\Astun\iShare\5.4\
MKDIR .\Astun\iShare\5.4\Studio\config
XCOPY D:\Astun\iShare\5.4\Studio\config\* .\Astun\iShare\5.4\Studio\config\
MKDIR .\Astun\iShare\5.4\WebApps\Web
XCOPY D:\Astun\iShare\5.4\WebApps\Web\mycentralbeds* .\Astun\iShare\5.4\WebApps\Web\
XCOPY D:\Astun\iShare\5.4\WebApps\Web\Web.config .\Astun\iShare\5.4\WebApps\Web\
MKDIR .\Astun\iShare\5.4\WebApps\Web\custom
XCOPY /E D:\Astun\iShare\5.4\WebApps\Web\custom\* .\Astun\iShare\5.4\WebApps\Web\custom\
MKDIR .\Astun\iShare\5.4\WebApps\WebService
XCOPY /E D:\Astun\iShare\5.4\WebApps\WebService\web.config .\Astun\iShare\5.4\WebApps\WebService\
MKDIR .\Astun\iShare\5.4\WebApps\WebService\config
XCOPY /E D:\Astun\iShare\5.4\WebApps\WebService\config\* .\Astun\iShare\5.4\WebApps\WebService\config\
REM iShare GIS
MKDIR .\Astun\iShareGIS\5.4\
XCOPY D:\Astun\iShareGIS\5.4\Paths.xml .\Astun\iShareGIS\5.4\
XCOPY D:\Astun\iShareGIS\5.4\Settings.xml .\Astun\iShareGIS\5.4\
MKDIR .\Astun\iShareGIS\5.4\Studio\config
XCOPY D:\Astun\iShareGIS\5.4\Studio\config\* .\Astun\iShareGIS\5.4\Studio\config\
MKDIR .\Astun\iShareGIS\5.4\WebApps\Web
XCOPY D:\Astun\iShareGIS\5.4\WebApps\Web\cbcgis* .\Astun\iShareGIS\5.4\WebApps\Web\
XCOPY D:\Astun\iShareGIS\5.4\WebApps\Web\web.config .\Astun\iShareGIS\5.4\WebApps\Web\
MKDIR .\Astun\iShareGIS\5.4\WebApps\Web\custom
XCOPY /E D:\Astun\iShareGIS\5.4\WebApps\Web\custom\* .\Astun\iShareGIS\5.4\WebApps\Web\custom\
MKDIR .\Astun\iShareGIS\5.4\WebApps\Web\print
XCOPY /E D:\Astun\iShareGIS\5.4\WebApps\Web\print\* .\Astun\iShareGIS\5.4\WebApps\Web\print\
MKDIR .\Astun\iShareGIS\5.4\WebApps\WebService
XCOPY /E D:\Astun\iShareGIS\5.4\WebApps\WebService\web.config .\Astun\iShareGIS\5.4\WebApps\WebService\
MKDIR .\Astun\iShareGIS\5.4\WebApps\WebService\config
XCOPY /E D:\Astun\iShareGIS\5.4\WebApps\WebService\config\* .\Astun\iShareGIS\5.4\WebApps\WebService\config\
MKDIR .\Astun\iShareGIS\5.4\WebApps\WebService\xml
XCOPY /E D:\Astun\iShareGIS\5.4\WebApps\WebService\xml\* .\Astun\iShareGIS\5.4\WebApps\WebService\xml\
REM Common
MKDIR .\iShareData\
XCOPY /E D:\iShareData\* .\iShareData\
REM XCOPY /E /exclude:\path\to\excludelist.txt D:\iShareData\* .\iShareData\
CD ..How to Implement
Save the above script as a batch file (.bat) e.g. isharebackup.bat, in a folder on the drive where you would like your backups to be stored, for example E:\backups\isharebackup.bat
Review the script to ensure the XCOPY lines are appropriate for your installation. For example, check the drive letters and version numbers.
Check your Tilecache Considerations (see below) and alter the script accordingly.
Save your changes.
Tilecache considerations
Your tilecache directory may be 10s of gigabytes in size. If your tilecache is stored in a sub-directory of iShareData, then this script will also back that up.
Consider whether you need to do this, and whether you have the space to do so in the backup location.
If you do not wish to back up the tilecache, then:
Create a text file called excludelist.txt and add files of type png to it e.g.
*.png\ *.log\
Then comment out the third line from the bottom of this script (i.e. add REM to the start) e.g.
REM XCOPY /E D:\iShareData\* .\iShareData\
Un-comment the second to last line (i.e. remove REM from the start) e.g.
XCOPY /E /exclude:\path\to\excludelist.txt D:\iShareData\* .\iShareData\
Running the Script
Manually
Open a command prompt.
Change to the folder that will contain your backups.
Run the .bat file from a command prompt, as a user that has access to all the file locations listed. If it is set up correctly it will create a folder with the date and time of the run as a subdirectory of the location where the batch file is run from. This will contain a copy of the entire iShare Installation and Configuration.
As a Scheduled Task
Ensure that the "Start in" directory is set when creating a Scheduled Task. The "Start in" directory should be the directory where iShare backups are stored such as D:\Backups\iShare.