애플리케이션 스냅샷을 컴퓨터에 백업

이 시나리오에서는 일별 서비스 유지 관리 시 생성된 스냅샷을 로컬 컴퓨터에 백업하는 프로세스를 자동화하는 방법을 설명합니다.

  • 유지 관리 기간 중에 생성된 애플리케이션 스냅샷(Artifact Snapshot)을 다운로드합니다.
  • 타임스탬프를 추가하여 다운로드한 스냅샷의 이름을 바꿉니다.
  • 필요한 경우 가장 오래된 백업을 삭제하여 10개의 백업을 유지 관리합니다.

Note:

  • 이 스크립트는 Narrative Reporting을 백업하는 데 사용할 수 없습니다.
  • 이 스크립트를 사용자의 용도에 맞게 고치는 경우 필요에 따라 런타임 매개변수(url, user, password, NumberOfBackups)의 값을 수정합니다.

Windows 태스크 스케줄러를 사용하여 스크립트 스케줄을 예약하는 방법에 대한 자세한 내용은 스크립트 실행 자동화를 참조하십시오.

Windows 샘플 스크립트

아래와 유사한 스크립트가 포함된 뱃치(.bat) 또는 쉘(.sh) 파일을 생성하여 스냅샷 다운로드를 자동화합니다.

@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 SnapshotName="Artifact Snapshot"
SET NumberOfBackups=10

rem EPM Automate commands
call epmautomate login %user% %password% %url% 
     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 샘플 스크립트

아래와 유사한 스크립트가 포함된 쉘(.sh) 파일을 생성하여 스냅샷 다운로드를 자동화합니다. 비밀번호에 특수 문자가 포함된 경우 특수 문자 처리를 참조하십시오.

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

url=https://example.oraclecloud.com
user=serviceAdmin
password=/home/user1/epmautomate/bin/example.epw
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}"
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 --