By Brian Fitzgerald
Introduction
Our objective is to download Oracle binaries or patches directly to Linux using the bash shell. For binaries, we will log in to Oracle and accept the license agreement in a Windows browser, and then perform the download in Linux. For patches, we will log in to MOS. The technique is useful for cloud or on-prem.
Linux preparations
Complete the following preparations.
Check your Linux version
$ uname -r 3.10.0-1062.9.1.el7.x86_64
wget download from oracle may fail on Red Hat Enterprise Linux el5 or lower.
Check your ssl version
$ openssl version OpenSSL 1.0.2k-fips 26 Jan 2017
wget download from oracle may fail on openssl version 0.9 or lower.
Install wget
If necessary, install wget
sudo -i -u root yum -y install wget
cd to your download area:
Redirect cat standard output to a file.
[grid@ora19c ~]$ mkdir download [grid@ora19c ~]$ cd download/ [grid@ora19c download]$ cat > cook.txt
Let the cat session wait there.
Windows preparations
browser
Chrome is used in this example.
cookie plugin
- Install the EditThisCookie plugin.
- Right click EditThisCookie and navigate to Options
- For export format, select “Netscape HTTP Cookie File”

other browsers
Export methods exist for other browsers. For example, in Firefox, you may use “Export Cookies” by Rotem Dan. Also, you may try your browser’s builtin inspection tools.
binaries download page
- Login to oracle.com with your ID and password.
- Navigate to the download page. For example:
https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html
Export cookies
Complete the cookie export and start the download within 30 minutes:
- From Chrome click the download icon.
- When prompted, accept the license agreement.
- Click the large download button.

- Interrupt the download.
- Click the EditThisCookie icon
- In the EditThisCookie, clear the search box,
- Enter “oracle.com”
- Using the scrollbar, check that these cookies are present:
| domain | name |
| .oracle.com | oraclelicense |
| edelivery.oracle.com | OAMAuthnCookie_edelivery.oracle.com:443 |

- If OAMAuthnCookie_edelivery.oracle.com:443 is missing, it could be because:
- you did not start the download
- you did not search oracle.com
- Click the export button. Note the confirmation message:

- Paste the cookies into your Linux cat session.
- Type ctrl-d (end of file) into the cat session.
- Check Linux cookies file cook.txt with egrep:
[grid@ora19c download]$ egrep 'oraclelicense|OAMAuthnCookie_edelivery' cook.txt .oracle.com TRUE / FALSE 1566398899 oraclelicense 152015 edelivery.oracle.com FALSE / TRUE 0 OAMAuthnCookie_edelivery.oracle.com:443 0ba9acafe65e911747b1cc43daf2bb6269988c0b%7EbOV%2F2lmNMEtBQ0AQibaanasshtknkgx1dWreuPjqkvXEFXKl3n3wj1zmKsG1lkM56uv%2F2cWPSSrH3HRWYEsWaDh2eGTSS8fizlEZF01NQdIF6hEG8rp5qkdvQv3twKXCO%2BpAgxiixhlxb61xlMvNDiLiv8JpDY97yvTSf1QyDxuY7Fjs03Qb0Zaq6i88NPsqkq0gu1C8fEbwEZbgW55YAUVQQdKfOpN4yR2iXenEJfiiKmHTCISZRvPNzgPf0JxPK3fVnvLsAO9HEFBsu%2Fwx0uUsYqe%2FHPJJwkFjBLudqkD8bO84t7HTCED80o%2BrxzcOJ%2BE%2BuvlaqItiidQ7asFuHQanPUS10CeTEXXWzK3h4Lni4Gp29wKtnQ6ADJfPET%2FCnKehcnEsB9lYeQliSvdhWkRD9v3Azr5SYkhEdsDCF4z%2FWXP1dOT6gB9oQVn1352FcJbnA8Zo6ulnXPhKdwJE21SiskmOAelR0GVvA9M3DNU%2FokD1s2Msy293j9goob%2Fpj0IvtsTyuxOdRc1p4gV1XyZbulYn8q1q6Fnu7SpEq7hxiKh6TjY1737uh2w%2FTO3G%2F1QviFlrG%2BK1Ts76KNp45lYwefYA7U29v9W4H4gJ4Cs%3D
Download
In Linux, start the download with wget:
[grid@ora19c download]$ wget --load-cookies=cook.txt 'https://download.oracle.com/otn/linux/oracle19c/190000/LINUX.X64_193000_grid_home.zip'
Downloading patches from MOS
The procedure for downloading patches from My Oracle Support is simpler because you don’t have to acknowledge the license agreement and then start and interrupt the download. However, MOS download links contain the “&” and “?” characters, so you need to quote the URL.
To download a patch from MOS:
- Login to MOS
- open EditThisCookie
- clear the URL window and enter “oracle.com”
- click the export button
- In your shell, issue cat > /tmp/cook.txt
- Paste your shell into the cat
- Type ctrl-D
- navigate to the patch download link. For example:

- hover your mouse over the download button and right-click
- select “Copy link address”
- paste the link into your shell between quotes, such as in this example:
wget --load-cookies=/tmp/cook.txt ''
- after paste:
wget --load-cookies /tmp/cook.txt 'https://updates.oracle.com/Orion/Services/download/p30501926_180000_Linux-x86-64.zip?aru=23242022&patch_file=p30501926_180000_Linux-x86-64.zip'
- You can specify the output file using the “-O” option. i.e.
-O p30501926_180000_Linux-x86-64.zip
- Putting it all together, you get:
wget --load-cookies=/tmp/cook.txt 'https://updates.oracle.com/Orion/Services/download/p30501926_180000_Linux-x86-64.zip?aru=23242022&patch_file=p30501926_180000_Linux-x86-64.zip' -O p30501926_180000_Linux-x86-64.zip
- Press enter to start the download
Cookies file check
For MOS downloads, there is only one required cookie, namely Oracle_updates_auth
grep Oracle_updates_auth /tmp/cook.txt .updates.oracle.com TRUE / FALSE 1582699648 Oracle_updates_auth ZDA1YzU4OThkODUyM2Y3NjgzZWUxYmNhNGQzMDFjN2UtNTM2MTZjNzQ2NTY0NWY1ZmY5ZDVkMDZmZGZkMWQyMzBkY2FmZGI5NDdlOWE3NWVkMWY1NWVjYjYzZmE4ZDc3ZjAwN2JkYjMzNzViYjAyMmZkZjUzNmRkYWE3OWRiYzg4NDIzY2JlY2JkMzcwMjk5OWQyZDNlMWYzYTAzZTFhYjU oracle:/ora_local/download/oracle/PSU_PATCHES
Special characters in the URL
You should quote the URL. Otherwise:
- If ‘&’ appears in the URL, the shell will interpret the string to the right of the ‘&’ as a separate command.
- If ‘?’ appears in the URL, the shell may interpret it as a metacharacter.
An example of this problem while downloading a Release Update from MOS:
wget --load-cookies /tmp/cook.txt https://updates.oracle.com/Orion/Services/download/p30501926_180000_Linux-x86-64.zip?aru=23242022&patch_file=p30501926_180000_Linux-x86-64.zip -O p30501926_180000_Linux-x86-64.zip [1] 13367 --2020-02-25 14:15:12-- https://updates.oracle.com/Orion/Services/download/p30501926_180000_Linux-x86-64.zip?aru=23242022 bash: -O: command not found... Resolving updates.oracle.com (updates.oracle.com)... oracle:/ora_local/download/oracle/PSU_PATCHES =>141.146.44.51 Connecting to updates.oracle.com (updates.oracle.com)|141.146.44.51|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://aru-akam.oracle.com/adcarurepos/vol/patch14/PLATFORM/CORE/Linux-x86-64/R600000000071008/p30501926_180000_Linux-x86-64.zip?FilePath=/adcarurepos/vol/patch14/PLATFORM/CORE/Linux-x86-64/R600000000071008/p30501926_180000_Linux-x86-64.zip&File=p30501926_180000_Linux-x86-64.zip¶ms=UGw0Nnppc2RUZnBGTkx2aUEraURsUTphcnU9MjMyNDIwMjImZW1haWw9YmYyMTkwQG55dS5lZHUmZmlsZV9pZD0xMDY0NzI4MTYmcGF0Y2hfZmlsZT1wMzA1MDE5MjZfMTgwMDAwX0xpbnV4LXg4Ni02NC56aXAmdXNlcmlkPW8tYmYyMTkwQG55dS5lZHUmc2l6ZT0xMTQ4Mjg4MjMmY29udGV4dD1BQDEwK0hAYWFydXZtdHAwNy5vcmFjbGUuY29tK1BAJmRvd25sb2FkX2lkPTQxMjI3Mzc2Mw@@&AuthParam=1582658233_7e9698372721c6852f3ca053d3a8e443 [following] --2020-02-25 14:15:13-- https://aru-akam.oracle.com/adcarurepos/vol/patch14/PLATFORM/CORE/Linux-x86-64/R600000000071008/p30501926_180000_Linux-x86-64.zip?FilePath=/adcarurepos/vol/patch14/PLATFORM/CORE/Linux-x86-64/R600000000071008/p30501926_180000_Linux-x86-64.zip&File=p30501926_180000_Linux-x86-64.zip¶ms=UGw0Nnppc2RUZnBGTkx2aUEraURsUTphcnU9MjMyNDIwMjImZW1haWw9YmYyMTkwQG55dS5lZHUmZmlsZV9pZD0xMDY0NzI4MTYmcGF0Y2hfZmlsZT1wMzA1MDE5MjZfMTgwMDAwX0xpbnV4LXg4Ni02NC56aXAmdXNlcmlkPW8tYmYyMTkwQG55dS5lZHUmc2l6ZT0xMTQ4Mjg4MjMmY29udGV4dD1BQDEwK0hAYWFydXZtdHAwNy5vcmFjbGUuY29tK1BAJmRvd25sb2FkX2lkPTQxMjI3Mzc2Mw@@&AuthParam=1582658233_7e9698372721c6852f3ca053d3a8e443 Resolving aru-akam.oracle.com (aru-akam.oracle.com)... 104.124.100.114 Connecting to aru-akam.oracle.com (aru-akam.oracle.com)|104.124.100.114|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 114828823 (110M) [application/zip] Saving to: ‘p30501926_180000_Linux-x86-64.zip?aru=23242022’ 100%[=========================================================================================================================================================================>] 114,828,823 42.1MB/s in 2.6s 2020-02-25 14:15:15 (42.1 MB/s) - ‘p30501926_180000_Linux-x86-64.zip?aru=23242022’ saved [114828823/114828823]
Notice that:
- the shell interpreted
patch_file=p30501926_180000_Linux-x86-64.zip -O
as a command and printed this error:
bash: -O: command not found...
- The file got saved as ‘p30501926_180000_Linux-x86-64.zip?aru=23242022’
Solution:
Quote the URL.
wget --load-cookies /tmp/cook.txt 'https://updates.oracle.com/Orion/Services/download/p30501926_180000_Linux-x86-64.zip?aru=23242022&patch_file=p30501926_180000_Linux-x86-64.zip'
Special characters in the output file name
You may find that wget saves the file to an unexpected name. For example:
ls p30501926_180000_Linux-x86-64.zip?aru=23242022&patch_file=p30501926_180000_Linux-x86-64.zip
Solution:
Specify the output file using “-O”, as previously explained.
Summary
Using Chrome, you can log in to Oracle and accept the license agreement. Next, using EditThisCookie, you can export the needed cookies. Finally, using wget and the –load-cookies option, you can start your download.
The possible benefit is that the download will run faster on the Linux server than on your Windows host. Also, direct download saves you an additional transfer step from Windows.