Applicable products
√ Cortex Project History 1.x
√ Cortex 365
Prerequisites
- Administrative rights on the Cortex host server
Assumptions
- IIS, SQL and MongoDB are all on the same (single) server.
Overview
The following script includes a section at the top to edit.
Edit the values in the following lines (as required):
- 6
- 9
- 12 - 15
- 18
- 20
- 23
- 24
- 28
- 30
Save as a .ps1 (PowerShell script) and execute.
#################################################### ######## Edit the following information ########## #################################################### # Enter the path to the backup Root folder. $backupRoot = 'F:\Backup_Root' # Enter the name of the Eos Cortex Website, as listed in IIS Manager. $siteName = 'EosCortexCLI01' # Enter the path to inetpub\wwwroot if the path was changed at install # Otherwise, leave these paths as-is. $appAuthFile = "C:\inetpub\wwwroot\" + $siteName + "\ph\auth.config" $siteConfigFile = "C:\inetpub\wwwroot\" + $siteName + "\Web.config" $appConfigFile = "C:\inetpub\wwwroot\" + $siteName + "\ph\Web.config" $AppLogoFile = "C:\inetpub\wwwroot\" + $siteName + "\ph\Content\css\img\Cortex-app-logo.png" # Enter the SQL Server Instance (Server name \ Instance name). $sqlInstance = "ServerName\SQLInstance" # Enter the Eos Cortex SQL Database name. $sqlDbName = "EosCortexCLI01" # Enter the path to the 'bin' folder for MongoDB. $mongoDir = 'C:\Program Files\MongoDB\Server\3.6\bin' # Enter the MongoDB name. $mongoDbName = 'EosCortexCLI01' $mongoAuthEnabled = 1 # Enter the MongoDB username. $mongoUsr = 'EosCortexCLI01' # Enter the MongoDB user password. $mongoPwd = 'SomeVeryComplexPassword' $mongoDBPort = '27017' #################################################### ############## Customization End ################### #################################################### ###### Stop the IIS (Website) ##### Import-Module WebAdministration Stop-WebSite $siteName ###### Set the backup location ##### $backupPath = $backupRoot + '\bkp_' + (Get-Date -Format "yyyyMMdd").ToString() New-Item -ItemType directory -Force -Path $backupPath ###### Backup the IIS config files ##### $appAuthFileBackup = $backupPath + '\' + $siteName + '-' + (Get-Date -Format "yyyyMMdd").ToString() + '-app-auth.config' "Backing up app-auth.config to :: " + $appAuthFileBackup Copy-Item $appAuthFile -Destination $appAuthFileBackup $appConfigFileBackup = $backupPath + '\' + $siteName + '-' + (Get-Date -Format "yyyyMMdd").ToString() + '-app-web.config' "Backing up app-web.config to :: " + $appConfigFileBackup Copy-Item $appConfigFile -Destination $appConfigFileBackup $siteConfigFileBackup = $backupPath + '\' + $siteName + '-' + (Get-Date -Format "yyyyMMdd").ToString() + '-site-web.config' "Backing up site-web.config to :: " + $siteConfigFileBackup Copy-Item $siteConfigFile -Destination $siteConfigFileBackup $appLogoFileBackup = $backupPath + '\' + $siteName + '-' + (Get-Date -Format "yyyyMMdd").ToString() + '-Cortex-app-logo.png' "Backing up Cortex-app-logo.png to :: " + $appLogoFileBackup Copy-Item $appLogoFile -Destination $appLogoFileBackup ###### Backup the SQL DB ##### $sqlScriptedBackupFileName = $backupPath + '\' + $siteName + '-' + (Get-Date -Format "yyyyMMdd").ToString() + '.bak' $sqlBackup = "BACKUP DATABASE [" + $sqlDbName + "] TO DISK = '" + $sqlScriptedBackupFileName + "'" "Backing up current SQL DB :: " + $sqlBackup Invoke-Sqlcmd -Query $sqlBackup -ServerInstance $sqlInstance -QueryTimeout 0 ###### Backup the MongoDB database ##### $cmdline = $mongoDir + '\mongodump.exe' $mongoScriptedBackupFileName = $backupPath + '\' + $siteName + '.mongodb'+ (Get-Date -Format "yyyyMMdd").ToString() + '.archive' $cmdargs = ' --archive=' + $mongoScriptedBackupFileName + ' --db ' + $mongoDbName + ' --gzip' If($mongoAuthEnabled -eq 1) { $cmdargs = $cmdargs + ' /u ' + $mongoUsr + ' /p ' + $mongoPwd + ' --port=' + $mongoDBPort } Else {$cmdargs = $cmdargs} "Archiving current MongoDB :: " + $cmdline + $cmdargs Start-Process -FilePath $cmdline -ArgumentList $cmdargs -Wait ###### Start the IIS (Website) ##### Start-WebSite $siteName #################################################### ##################### END ########################## ####################################################
If you require assistance, please let us know.
The End.