I trust you’ve already used AutoUpgrade to download patches. If not, you’re missing out big time.
Here’s a nifty new feature that makes AutoUpgrade fit better into your automation and gives you an overview of what you’ve downloaded already.
The Download JSON File
- AutoUpgrade constructs and maintains a JSON file named
patches_info.json. - AutoUpgrade stores the file in the download folder (config file entry
folder). - It contains information about all the patches AutoUpgrade has downloaded.
- The file is cumulative, so it contains information about not just the latest download but also previous ones.
Example
Here’s a sample output:
{
"patchFolder": "/home/oracle/patches",
"patches": [
{
"description": "DATABASE RELEASE UPDATE 23.26.3.0.0(GOLD IMAGE)",
"platform": "Linux x86-64",
"releaseUpdate": "23.26.3.0.0",
"files": [
{
"name": "p39581612_230000_Linux-x86-64.zip",
"checksum": "DDBEBAC94B5F0B7D3FF4910AB01DB8FCDD3390A7",
"checksum-256": "2CAFECB11DBDD7F81C55DEE9FC846AA7E8F8C265721C1B8AB4B23EF13F94643D"
}
]
},
{
"description": "OPatch 12.2.0.1.52 for DB 23.0.0.0.0 (Jul 2026)",
"platform": "Linux x86-64",
"files": [
{
"name": "p6880880_230000_Linux-x86-64.zip",
"checksum": "21EF498D3ECA4E734467A02FD0A799C464008726",
"checksum-256": "8C0D19B7774CD2E0443D2FC2BD29D3A784383199BEA3867CD4D39E2D32BFA6CC"
}
]
}
]
}
Checksum
After downloading a file, AutoUpgrade automatically checks the integrity of the file by calculating and verifying the checksum.
If there is a discrepancy, AutoUpgrade deletes the file and informs you.
If you want to verify it manually, you can find the expected checksum in the JSON file.
Human Readable
JSON is good for machines, but bad for humans, so here’s a party trick to beautify the output:
jq -r '
["TYPE","DESCRIPTION","PLATFORM","FILE","SHA1","SHA256"],
(.patches[] |
[
(if .description|test("RELEASE UPDATE") then "RU"
elif .description|test("OPatch") then "OPATCH"
elif .description|test("OJVM") then "OJVM"
elif .description|test("DATAPUMP") then "DPBP"
else "PATCH" end),
.description,
(.platform // "Generic"),
.files[0].name,
.files[0].checksum,
.files[0]["checksum-256"]
]) | @tsv
' patches_info.json | column -t -s $'\t'
This command turns the JSON file into a tabular format:
TYPE DESCRIPTION PLATFORM FILE SHA1 SHA256
RU DATABASE RELEASE UPDATE 23.26.3.0.0(GOLD IMAGE) Linux x86-64 p39581612_230000_Linux-x86-64.zip DDBEBAC94B5F0B7D3FF4910AB01DB8FCDD3390A7 2CAFECB11DBDD7F81C55DEE9FC846AA7E8F8C265721C1B8AB4B23EF13F94643D
OPATCH OPatch 12.2.0.1.52 for DB 23.0.0.0.0 (Jul 2026) Linux x86-64 p6880880_230000_Linux-x86-64.zip 21EF498D3ECA4E734467A02FD0A799C464008726 8C0D19B7774CD2E0443D2FC2BD29D3A784383199BEA3867CD4D39E2D32BFA6CC
Thanks to Abhilash Kumar for the tip.
Happy patching!
