Back up Application Snapshot to a Computer

This scenario explains how to automate the process of backing up the snapshot created during daily service maintenance to a local computer.

The following sample scripts handle these activities.

  • Downloads the application snapshot (Artifact Snapshot) that was created during the maintenance window

  • Renames the downloaded snapshot by appending time stamp

  • Maintains 10 backups by deleting the oldest backup, if needed

Note:

  • This script cannot be used to backup Narrative Reporting

  • If you repurpose this script for your use, modify the values of SET url, SET user, and SET NumberOfBackups parameters as needed.

See Automating Script Execution for information on scheduling the script using Windows Task Scheduler.

Windows Sample Script

Create a batch (.bat) or shell (.sh) file containing script similar to the following to automate snapshot downloads.

@echo off
rem Sample script to download and maintain 10 maintenance backups
rem Update the following  parameters

SET url=https://example.oraclecloud.com
SET user=serviceAdmin
SET password=example.epw
SET domain=ExampleDomain
SET SnapshotName="Artifact Snapshot"
SET NumberOfBackups=10

rem EPM Automate commands
call epmautomate login %user% %password% %url% %domain%
     IF %ERRORLEVEL% NEQ 0 goto :ERROR

call epmautomate downloadfile %SnapshotName%
     IF %ERRORLEVEL% NEQ 0 goto :ERROR

call epmautomate logout
     IF %ERRORLEVEL% NEQ 0 goto :ERROR

rem Rename downloaded Artifact Snapshot, keep the last 10 backups
Set Timestamp=%date:~4,2%_%date:~7,2%_%date:~10,2%%
Set Second=%time:~0,2%%time:~3,2%
ren %SnapshotName%.zip %SnapshotName%_%Timestamp%_%Second%.zip

SET Count=0
FOR %%A IN (%SnapshotName%*.*) DO SET /A Count += 1
IF %Count% gtr %NumberOfBackups% FOR %%A IN (%SnapshotName%*.*) DO del "%%A" && GOTO EOF
:EOF

echo Scheduled Task Completed successfully
exit /b %errorlevel%
:ERROR
echo Failed with error #%errorlevel%.
exit /b %errorlevel%

Linux/UNIX Sample Script

Create a shell (.sh) file containing script similar to the following to automate the snapshot downloads. If your password contains special characters, see Handling Special Characters.

#!/bin/sh
# Sample script to download and maintain 10 maintenance backups
# Update the following eight parameters

url=https://example.oraclecloud.com
user=serviceAdmin
password=/home/user1/epmautomate/bin/example.epw
domain=ExampleDomain
snapshotname="Artifact Snapshot"
numberofbackups=10
epmautomatescript=/home/user1/epmautomate/bin/epmautomate.sh
javahome=/home/user1/jdk1.8.0_191/


export JAVA_HOME=${javahome}

printResult()
{
    op="$1"
    opoutput="$2"
    returncode="$3"

    if [ "${returncode}" -ne 0 ]
    then
        echo "Command failed. Error code: ${returncode}. ${opoutput}"
    else 
        echo "${opoutput}"
    fi
}

processCommand()
{
    op="$1"
    date=`date`

    echo "Running ${epmautomatescript} ${op}"
    operationoutput=`eval "$epmautomatescript $op"`
    printResult "$op" "$operationoutput" "$?"
}

op="login ${user} ${password} ${url} ${domain}"
processCommand "${op}"

op="downloadfile \"${snapshotname}\""
processCommand "${op}"

op="logout"
processCommand "${op}"

# Renames the downloaded artifacts, keeps the last 10 backups
timestamp=`date +%m_%d_%Y_%I%M`
mv "${snapshotname}.zip" "${snapshotname}_${timestamp}.zip"

((numberofbackups+=1))
ls -tp ${snapshotname}*.zip | grep -v '/$' | tail -n +${numberofbackups} | xargs -d '\n' -r rm --