UNIX/Linux Script and Instructons
Create input.properties
and skip_update.sh
by copying the scripts in this section.
- Create
input.properties
by copying the following script:javahome=JAVA_HOME epmautomatescript=EPM_AUTOMATE_LOCATION username=exampleAdmin password=examplePassword.epw url=exampleURL updatemonths=02,05,08,11
- Update
input.properties
by specifying parameter values.Table 3-13 input.properties Parameters
Parameter Description javahome
JAVA_HOME
location.epmautomatescript
Absolute path of EPM Automate executable ( epmautomate.sh
).username
User name of a Service Administrator. password
Password of the Service Administrator or the name and location of the encrypted password file. url
URL of the environment on which you want to set the non-monthly update cadence. updatemonths
A comma separated list of months when Oracle Enterprise Performance Management Cloud updates should be applied to the environment identified by the url
parameter. For example,updatemonths=02,05,08,11
.Months must be specified as two digits; include a preceding zero for January through September. The script attempts to run the skipUpdatecommand for the months not included in the
updatemonths
parameter value. For example, if you specifyupdatemonths=02,05,08,11
, the script tries to set skip update flags for January, March, April, June, July, September, October, and December so that updates are made only in February, May, August, and November. - Create
skip_updates.sh
by copying the following script:#!/bin/sh . ./input.properties export JAVA_HOME=${javahome} declare -a monthsarr=(01 02 03 04 05 06 07 08 09 10 11 12) declare -a monthsarrfromcurrent declare -a yearsarrfromcurrent updatemonthsarr=( $(echo "${updatemonths}" | sed 's/,/ /g') ) currentyear=$(date +%y) nextyear=$((currentyear+1)) currentmonth=$(date +%m) populateFromCurrentArrays() { for i in ${!monthsarr[@]} do if [[ "${currentmonth}" == "${monthsarr[$i]}" ]] then startposition=$i break fi done for i in ${!monthsarr[@]} do if [[ ${i} -ge ${startposition} ]] then monthsarrfromcurrent=("${monthsarrfromcurrent[@]}" "${monthsarr[$i]}") yearsarrfromcurrent=("${yearsarrfromcurrent[@]}" "${currentyear}") fi done for i in ${!monthsarr[@]} do if [[ ${i} -lt ${startposition} ]] then monthsarrfromcurrent=("${monthsarrfromcurrent[@]}" "${monthsarr[$i]}") yearsarrfromcurrent=("${yearsarrfromcurrent[@]}" "${nextyear}") fi done } skipUpdateAdd() { local yearnumber="$1" local monthnumber="$2" echo "Running: ${epmautomatescript} skipUpdate add version=${yearnumber}.${monthnumber} comment=\"adding skipUpdate\"" ${epmautomatescript} skipUpdate add version=${yearnumber}.${monthnumber} comment="adding skipUpdate" } processSkipUpdates() { local addcount=0 echo "Running: ${epmautomatescript} login ${username} ${password} ${url}" ${epmautomatescript} login ${username} ${password} ${url} echo "Running: ${epmautomatescript} skipUpdate remove" ${epmautomatescript} skipUpdate remove for i in ${!monthsarrfromcurrent[@]} do local match=1 if [[ ${addcount} -eq 2 ]] then echo "Two skip update add calls have been made. No more will be attempted." break fi for j in ${!updatemonthsarr[@]} do if [[ "${monthsarrfromcurrent[$i]}" == "${updatemonthsarr[$j]}" ]] then match=0 break fi done if [[ ${match} -eq 1 ]] then skipUpdateAdd ${yearsarrfromcurrent[$i]} "${monthsarrfromcurrent[$i]}" addcount=$((addcount+1)) fi done echo "Running: ${epmautomatescript} skipUpdate list" ${epmautomatescript} skipUpdate list echo "Running: ${epmautomatescript} logout" ${epmautomatescript} logout } compareUpdateMonths() { local thismonth=$1 local nextmonth=$2 local nextmonthorig=${nextmonth} if [[ ${nextmonth} -lt ${thismonth} ]] then nextmonth=$((nextmonth+12)) fi monthdiff=$((nextmonth-thismonth)) if [[ ${monthdiff} -gt 3 ]] then echo "There are more than 2 months skipped from month ${thismonth} to month ${nextmonthorig}. Please correct updatemonths in input.properties so that there are not more than two months skipped between each update month. Exiting." exit 1 fi } validateUpdateMonths() { for i in ${!updatemonthsarr[@]} do nextint=$((i+1)) thisupdatemonth="${updatemonthsarr[$i]}" thisupdatemonthint=${thisupdatemonth#0} nextupdatemonth="${updatemonthsarr[$nextint]}" nextupdatemonthint=${nextupdatemonth#0} if [[ ${nextupdatemonth} == "" ]] then nextupdatemonth="${updatemonthsarr[0]}" nextupdatemonthint=${nextupdatemonth#0} fi compareUpdateMonths ${thisupdatemonthint} ${nextupdatemonthint} done } validateUpdateMonths populateFromCurrentArrays processSkipUpdates