MOS Patch Download via Skript

Der Oracle Patch Download kann wie folgt per Skript erfolgen:

  • Skript anlegen (siehe unten)
  • Download Link ermitteln (z.B.: https://updates.oracle.com/Orion/Services/download/p39034528_190000_Linux-x86-64.zip?aru=28740323&patch_file=p39034528_190000_Linux-x86-64.zip)
  • Skript ausführen
    ./mos_patch_download.sh
    MOS Username: <vname.nname@mydoamin.de>
    MOS Password: <pwd>
    Patch Download URL: https://updates.oracle.com/Orion/Services/download/p39034528_190000_Linux-x86-64.zip?aru=28740323&patch_file=p39034528_190000_Linux-x86-64.zip
    Zielverzeichnis [/tmp]:

Ziel-Datei: /tmp/p39034528_190000_Linux-x86-64.zip
Log-Datei: /tmp/mos_download_20260526_105142.log

Starte Download…

Verbindungsaufbau zu aru-akam.oracle.com (aru-akam.oracle.com)|23.32.52.75|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 2279932272 (2,1G) [application/zip]
Wird in »/tmp/p39034528_190000_Linux-x86-64.zip« gespeichert.

/tmp/p39034528_1900 100%[===================>] 2,12G 34,9MB/s in 74s

Pruefe Download…
ZIP-Pruefung OK.

Download erfolgreich:
/tmp/p39034528_190000_Linux-x86-64.zip

Skript: mos_patch_download.sh

!/bin/bash
# mos_patch_download_dialog.sh

set -euo pipefail

read -rp "MOS Username: " MOS_USER
read -rsp "MOS Password: " MOS_PASS
echo
read -rp "Patch Download URL: " PATCH_URL
read -rp "Zielverzeichnis [/tmp]: " TARGET_DIR

TARGET_DIR="${TARGET_DIR:-/tmp}"
mkdir -p "$TARGET_DIR"

COOKIE_FILE="$(mktemp /tmp/mos_cookie.XXXXXX)"
LOGFILE="${TARGET_DIR}/mos_download_$(date +%Y%m%d_%H%M%S).log"

cleanup() {
  rm -f "$COOKIE_FILE"
}
trap cleanup EXIT

FILE_NAME="$(echo "$PATCH_URL" | sed -n 's/.*patch_file=\([^&]*\).*/\1/p')"

if [[ -z "$FILE_NAME" ]]; then
  FILE_NAME="$(basename "${PATCH_URL%%\?*}")"
fi

if [[ -z "$FILE_NAME" || "$FILE_NAME" == "download" ]]; then
  FILE_NAME="oracle_patch_$(date +%Y%m%d_%H%M%S).zip"
fi

OUT_FILE="${TARGET_DIR}/${FILE_NAME}"

echo
echo "Ziel-Datei: $OUT_FILE"
echo "Log-Datei:  $LOGFILE"
echo

echo "Starte Download..."

wget \
  --http-user="$MOS_USER" \
  --http-password="$MOS_PASS" \
  --save-cookies="$COOKIE_FILE" \
  --keep-session-cookies \
  --load-cookies="$COOKIE_FILE" \
  --continue \
  --tries=3 \
  --timeout=120 \
  --progress=bar:force \
  --output-document="$OUT_FILE" \
  "$PATCH_URL" \
  2>&1 | tee "$LOGFILE"

echo
echo "Pruefe Download..."

if [[ ! -s "$OUT_FILE" ]]; then
  echo "FEHLER: Datei wurde nicht oder leer heruntergeladen."
  exit 1
fi

if file "$OUT_FILE" | grep -qi "HTML"; then
  echo "FEHLER: Download ist vermutlich eine Login-/HTML-Seite statt ZIP."
  echo "Pruefe MOS-Zugang, Berechtigung oder Download-URL."
  exit 2
fi

if [[ "$OUT_FILE" == *.zip ]]; then
  unzip -t "$OUT_FILE" >/dev/null
  echo "ZIP-Pruefung OK."
fi

echo
echo "Download erfolgreich:"
echo "$OUT_FILE"



Veröffentlicht unter Allgemein | Kommentare deaktiviert für MOS Patch Download via Skript