Télécharger un patch Oracle avec « wget »

My Oracle Support et wget

Vous vous êtes certainement déjà retrouvé dans une situation où vous deviez télécharger un ISO ou un patch Oracle sur un serveur Linux, joignable via X rebonds depuis votre poste de travail.

Si le serveur cible a accès à Internet, il existe un moyen rapide de télécharger directement via WGET. Le procédure est décrite en tout petit dans la documentation Oracle (« Alternatively, use the WGET options. »), mais voici un exemple concret.

 

Commençons par aller récupérer le lien du patch

Sur le site de My Oracle Support, passez par l’onglet «Patches & Updates» pour rechercher le patch ou patchset souhaité.

 

Depuis la page des résultats, faites comme si vous souhaitiez télécharger le patch.

Cliquer sur le bouton « Download ». Rien de compliqué jusqu’ici : c’est la démarche habituelle pour télécharger un patch.

Cliquez sur le lien «WGET Options » tout en bas de la fenêtre contextuelle.

Oracle vous propose un script Shell qui permettra de télécharger le patch. Cliquer dur « Download .sh »

Vous avez alors la possibilité de télécharger le script « wget.sh » proposé.

 

Script wget.sh

Ce script contient déjà le correctif à télécharger.

Vous avez la possibilité de le compléter avec vos identifiants MOS en haut, ou encore de préciser le répertoire de destination du patch à télécharger dans le paramètre OUTPUT.
Notez bien également que vous
ne verrez aucune sortie de ce script. Il générera cependant un fichier log dans le répertoire d’exécution.

#!/bin/sh

#
# Generated 2/25/19 12:21 PM
# Start of user configurable variables
#
LANG=C
export LANG

# Trap to cleanup cookie file in case of unexpected exits.
trap 'rm -f $COOKIE_FILE; exit 1' 1 2 3 6

# SSO username
printf 'SSO UserName:'
read SSO_USERNAME



# Path to wget command
WGET=/usr/bin/wget

# Log directory and file
LOGDIR=.
LOGFILE=$LOGDIR/wgetlog-$(date +%m-%d-%y-%H:%M).log

# Print wget version info
echo "Wget version info:
------------------------------
$($WGET -V)
------------------------------" > "$LOGFILE" 2>&1

# Location of cookie file
COOKIE_FILE=$(mktemp -t wget_sh_XXXXXX) >> "$LOGFILE" 2>&1
if [ $? -ne 0 ] || [ -z "$COOKIE_FILE" ]
then
 echo "Temporary cookie file creation failed. See $LOGFILE for more details." |  tee -a "$LOGFILE"
 exit 1
fi
echo "Created temporary cookie file $COOKIE_FILE" >> "$LOGFILE"

# Output directory and file
OUTPUT_DIR=.

#
# End of user configurable variable
#

# The following command to authenticate uses HTTPS. This will work only if the wget in the environment
# where this script will be executed was compiled with OpenSSL. 
#
 $WGET  --secure-protocol=auto --save-cookies="$COOKIE_FILE" --keep-session-cookies  --http-user "$SSO_USERNAME" --ask-password  "https://updates.oracle.com/Orion/Services/download" -O /dev/null 2>> "$LOGFILE"

# Verify if authentication is successful
if [ $? -ne 0 ]
then
 echo "Authentication failed with the given credentials." | tee -a "$LOGFILE"
 echo "Please check logfile: $LOGFILE for more details."
else
 echo "Authentication is successful. Proceeding with downloads..." >> "$LOGFILE"

 $WGET  --load-cookies="$COOKIE_FILE" "https://updates.oracle.com/Orion/Services/download/p28980123_121020_Linux-x86-64.zip?aru=22674059&patch_file=p28980123_121020_Linux-x86-64.zip" -O "$OUTPUT_DIR/p28980123_121020_Linux-x86-64.zip"   >> "$LOGFILE" 2>&1 

fi

# Cleanup
rm -f "$COOKIE_FILE"
echo "Removed temporary cookie file $COOKIE_FILE" >> "$LOGFILE"

 

Télécharger le patch

Une fois ce petit script sur votre poste de travail, à vous de le transférer sur le serveur cible, ou bien de l’y créer manuellement en recopiant son code.

[oracle@server12c oracle.linuxamd64.12102]$ vi wget.sh

Modifier les permissions du fichier pour le rendre exécutable.

[oracle@server12c oracle.linuxamd64.12102]$ chmod u+x wget.sh
[oracle@server12c oracle.linuxamd64.12102]$ ls -ls
      4 -rwxr--r-- 1 oracle oinstall       1950 Feb 25 04:22 wget.sh

Lancer le téléchargement.

Le script vous demandera alors de renseigner votre login MOS (sauf si vous l’avez indiqué en dur précédemment dans le script), ainsi que votre mot de passe.

[oracle@server12c oracle.linuxamd64.12102]$ ./wget.sh
SSO UserName:support@easyteam.fr
Password:

Consulter la log depuis une autre session ssh

On le répète : le script n’affichera rien à l’écran. Il génère, dans le répertoire d’exécution, un fichier de log « wgetlog-horodatage.log ».

[oracle@server12c oracle.linuxamd64.12102]$ ls -lrth
  4 -rwxr--r-- 1 oracle oinstall 1950 Feb 25 04:22 wget.sh
1341444 -rw-r--r-- 1 oracle oinstall 1373634560 Feb 25 04:48 p28980123_121020_Linux-x86-64.zip
2108 -rw-r--r-- 1 oracle oinstall 2155437 Feb 25 04:48 wgetlog-02-25-19-04:23.log

Voici à quoi il ressemble :

[oracle@server12c oracle.linuxamd64.12102]$ tail -f wgetlog-02-25-19-04:23.log
Length: unspecified [text/plain]
Saving to: `/dev/null'

0K 29.6M=0s

2019-02-25 04:24:02 (29.6 MB/s) - `/dev/null' saved [118]

Authentication is successful. Proceeding with downloads...
--2019-02-25 04:24:03-- https://updates.oracle.com/Orion/Services/download/p28980123_121020_Linux-x86-64.zip?aru=22674059&patch_file=p28980123_121020_Linux-x86-64.zip
Resolving updates.oracle.com... 141.146.44.51
Connecting to updates.oracle.com|141.146.44.51|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://aru-akam.oracle.com/adcarurepos/vol/patch01/PLATFORM/CORE/Linux-x86-64/R600000000009300/p28980123_121020_Linux-x86-64.zip?FilePath=/adcarurepos/vol/patch01/PLATFORM/CORE/Linu
x-x86-64/R600000000009300/p28980123_121020_Linux-x86-64.zip&File=p28980123_121020_Linux-x86-64.zip&params=cisweEo1ek5zcDVVdkVHa3V2cVVPZzphcnU9MjI2NzQwNTkmZW1haWw9c3VwcG9ydEBlYXN5dGVhbS5mciZmaW
xlX2lkPTEwMzEwODY1MiZwYXRjaF9maWxlPXAyODk4MDEyM18xMjEwMjBfTGludXgteDg2LTY0LnppcCZ1c2VyaWQ9by1zdXBwb3J0QGVhc3l0ZWFtLmZyJnNpemU9MzMxOTE1OTMwNyZjb250ZXh0PUFAMTArSEBhYXJ1dm10cDAxLm9yYWNsZS5jb20rUE
AmZG93bmxvYWRfaWQ9Mzk2MzU3MjM0&AuthParam=1551097572_5d160f7cc0999c550e4cec0b1b552a18 [following]
--2019-02-25 04:24:04-- https://aru-akam.oracle.com/adcarurepos/vol/patch01/PLATFORM/CORE/Linux-x86-64/R600000000009300/p28980123_121020_Linux-x86-64.zip?FilePath=/adcarurepos/vol/patch01/PLA
TFORM/CORE/Linux-x86-64/R600000000009300/p28980123_121020_Linux-x86-64.zip&File=p28980123_121020_Linux-x86-64.zip&params=cisweEo1ek5zcDVVdkVHa3V2cVVPZzphcnU9MjI2NzQwNTkmZW1haWw9c3VwcG9ydEBlYXN
5dGVhbS5mciZmaWxlX2lkPTEwMzEwODY1MiZwYXRjaF9maWxlPXAyODk4MDEyM18xMjEwMjBfTGludXgteDg2LTY0LnppcCZ1c2VyaWQ9by1zdXBwb3J0QGVhc3l0ZWFtLmZyJnNpemU9MzMxOTE1OTMwNyZjb250ZXh0PUFAMTArSEBhYXJ1dm10cDAxLm9
yYWNsZS5jb20rUEAmZG93bmxvYWRfaWQ9Mzk2MzU3MjM0&AuthParam=1551097572_5d160f7cc0999c550e4cec0b1b552a18
Resolving aru-akam.oracle.com... 23.77.59.73
Connecting to aru-akam.oracle.com|23.77.59.73|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3319159307 (3.1G) [application/zip]
Saving to: `./p28980123_121020_Linux-x86-64.zip'

0K .......... .......... .......... .......... .......... 0% 258K 3h29m
50K .......... .......... .......... .......... .......... 0% 357K 3h0m
100K .......... .......... .......... .......... .......... 0% 4.47M 2h4m
150K .......... .......... .......... .......... .......... 0% 360K 2h10m
200K .......... .......... .......... .......... .......... 0% 6.55M 1h46m
250K .......... .......... .......... .......... .......... 0% 1.75M 93m28s
300K .......... .......... .......... .......... .......... 0% 9.09M 80m57s

1216350K .......... .......... .......... .......... .......... 37% 7.04M 36m50s
1216400K .......... .......... .......... .......... .......... 37% 373K 36m51s
1216450K .......... .......... .......... .......... .......... 37% 10.3M 36m50s
1216500K .......... .......... .......... .......... .......... 37% 53.9K 36m52s
1216550K .......... .......... .......... .......... .......... 37% 8.87M 36m52s
1216600K .......... .......... .......... .......... .......... 37% 8.93M 36m52s
1216650K .......... .......... .......... .......... .......... 37% 8.17M 36m51s
1216700K .......... .......... .......... .......... .......... 37% 11.0M 36m51s
1216750K .......... .......... .......... .......... .......... 37% 362K 36m51s
1216800K .......... .......... .......... .......... .......... 37% 9.91M 36m51s
1216850K .......... .......... .......... .......... .......... 37% 9.33M 36m51s
1216900K .......... .......... .......... .......... .......... 37% 351K 36m51s
1216950K .......... .......... .......... .......... .......... 37% 11.8M 36m51s
1217000K .......... .......... .......... .......... .......... 37% 9.65M 36m51s
1217050K .......... .......... .......... .......... .......... 37% 345K 36m51s

3240750K .......... .......... .......... .......... .......... 99% 2.40M 1s
3240800K .......... .......... .......... .......... .......... 99% 2.27M 1s
3240850K .......... .......... .......... .......... .......... 99% 653K 1s
3240900K .......... .......... .......... .......... .......... 99% 2.65M 0s
3240950K .......... .......... .......... .......... .......... 99% 1.93M 0s
3241000K .......... .......... .......... .......... .......... 99% 3.01M 0s
3241050K .......... .......... .......... .......... .......... 99% 1.89M 0s
3241100K .......... .......... .......... .......... .......... 99% 653K 0s
3241150K .......... .......... .......... .......... .......... 99% 2.64M 0s
3241200K .......... .......... .......... .......... .......... 99% 2.48M 0s
3241250K .......... .......... .......... .......... .......... 99% 2.16M 0s
3241300K .......... .......... .......... .......... .......... 99% 515K 0s
3241350K .......... ...... 100% 4.07M=62m51s

2019-02-25 05:26:56 (860 KB/s) - `./p28980123_121020_Linux-x86-64.zip' saved [3319159307/3319159307]

Removed temporary cookie file /tmp/wget_sh_Vw4e9R

 

C’est terminé ! Le patch est téléchargé sur le serveur.