Erstellen Sie input.properties und skip_update.sh, indem Sie die Skripte in diesem Abschnitt kopieren.
input.properties, indem Sie das folgende Skript kopieren:
javahome=JAVA_HOME epmautomatescript=EPM_AUTOMATE_LOCATION username=exampleAdmin password=examplePassword.epw url=exampleURL updatemonths=02,05,08,11
input.properties, indem Sie Parameterwerte festlegen.
Table 3-13 Parameter für "input.properties"
| Parameter | Beschreibung |
|---|---|
javahome |
Verzeichnis JAVA_HOME. |
epmautomatescript |
Absoluter Pfad der ausführbaren Datei für EPM Automate (epmautomate.sh). |
username |
Benutzername eines Serviceadministrators. |
password |
Kennwort des Serviceadministrators oder Name und Speicherort der verschlüsselten Kennwortdatei. |
url |
URL der Umgebung, in der Sie das nicht monatliche Update-Intervall festlegen möchten. |
updatemonths |
Eine durch Komma getrennte Liste der Monate, in denen Oracle Fusion Cloud Enterprise Performance Management-Updates auf die vom Parameter url angegebene Umgebung angewendet werden sollen. Beispiel: updatemonths=02,05,08,11.
Monate müssen mit zwei Ziffern angegeben werden. Stellen Sie für die Monate Januar bis September eine Null voran. Das Skript versucht, den Befehl skipUpdate für die Monate auszuführen, die nicht im Parameterwert |
skip_updates.sh, indem Sie das folgende Skript kopieren:
#!/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