Table of Contents
Usage
Show help
It is a command lne tool.
With -h
or --help
you get a list of supported options.
$ ./eol_check.sh -h
_______________________________________________________________________________
EOL CHECK v0.8
_______________________________________________________________________________
Get end of life information to a product.
Data source is https://endoflife.date/ API.
This tool needs 'curl' and 'jq' to run.
👤 Author: Axel Hahn; Institute for Medical Education; University of Bern
📄 Source: <https://git-repo.iml.unibe.ch/iml-open-source/eol-check>
📜 License: GNU GPL 3.0
📗 Docs: <https://os-docs.iml.unibe.ch/eol-check/>
_______________________________________________________________________________
SYNTAX:
eol_check.sh [OPTIONS] [PRODUCT]
OPTIONS:
-h|--help show this help and exit
-a|--api force api request and ignore cache
-c|--category NAME list products of given category name
-d|--details show details
-f|--full show all details (same like '-d -r')
-l|--list MODE list items (products|categories|identifiers|tags)
from endoflife.date
default is 'products'
-n|--newest show newest version data as json for given product
without check of local installation
-r|--raw show raw output for versions (JSON)
-s|--show show end of life data as JSON and exit without check
of local installation
-t|--tag NAME list products of given tag name
-v|--verbose show more output (written to STDERR)
-w|--wipe Wipe created cache files
PARAMETER:
PRODUCT product name to check; use --list for a list of
known products
EXITCODES:
0: OK - up to date
1: minor update available
2: major update available
3: no support for your version
4: no support for the product
>10: execution erors - version check was not performed
EXAMPLES
eol_check.sh ansible Eol infos in 2..3 lines output
eol_check.sh -d -r php full output with details and JSON
eol_check.sh -v java verbode mode with details during execution
eol_check.sh -n ruby Show newest version data for ruby
eol_check.sh -l List all products as <product> <tab> <description>
eol_check.sh -l tags List all products as <product> <tab> <description>
eol_check.sh -w Wipe cache data
Show eol data of an installed product
You can just add a product name.
Simple output:
$ ./eol_check.sh php
✅ PHP v8.4.8: You have the current major version '8.4'.
⚠️ A minor update is available: '8.4.10'.
OK, your version is maintained. Known eol date: 2028-12-31 (1269 days left)
or
$ ./eol_check.sh node
⚠️ Node.js v20.19.2: Update with new major version is available: '24.4.0'.
OK, your version is maintained. Known eol date: 2026-04-30 (293 days left)
Full output:
./eol_check.sh -f node
⚠️ Node.js v20.19.2: Update with new major version is available: '24.4.0'.
OK, your version is maintained. Known eol date: 2026-04-30 (292 days left)
----------------------------------------------------------------------
Produkt Node.js
Latest version 24
Category framework
Link https://endoflife.date/nodejs
EOL Security Support
Discontinued null
----------------------------------------------------------------------
Version 20.19.2
LTS true
Maintaned true
EOL false
EOL since 2026-04-30
----------------------------------------------------------------------
Data for latest version:
{
"name": "24",
"codename": null,
"label": "24 (Upcoming LTS)",
"releaseDate": "2025-05-06",
"isLts": false,
"ltsFrom": "2025-10-28",
"isEoas": false,
"eoasFrom": "2026-10-20",
"isEol": false,
"eolFrom": "2028-04-30",
"isEoes": null,
"eoesFrom": null,
"isMaintained": true,
"latest": {
"name": "24.4.0",
"date": "2025-07-09",
"link": "https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V24.md#24.4.0"
},
"custom": null
}
----------------------------------------------------------------------
Data for your version:
{
"name": "20",
"codename": null,
"label": "20 (LTS)",
"releaseDate": "2023-04-18",
"isLts": true,
"ltsFrom": "2023-10-24",
"isEoas": true,
"eoasFrom": "2024-10-22",
"isEol": false,
"eolFrom": "2026-04-30",
"isEoes": null,
"eoesFrom": null,
"isMaintained": true,
"latest": {
"name": "20.19.3",
"date": "2025-06-23",
"link": "https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.19.3"
},
"custom": null
}
Get a list of known products
Use -l
or --list
to get a list from the api what products are supported:
$ ./eol_check.sh -l
akeneo-pim Akeneo PIM
alibaba-ack Alibaba ACK
alibaba-dragonwell Alibaba Dragonwell
almalinux AlmaLinux OS
alpine-linux Alpine Linux
...
yocto Yocto Project
zabbix Zabbix
zentyal Zentyal
zerto Zerto
zookeeper Apache ZooKeeper
Get raw data for a product
If you want to see all data from the endoflife.data api us -s
or --show
. Use the ist keyword from the list of --list
output.
With this option no local version will be checked.
The response is json.
$ ./eol_check.sh -s ruby
{
"schema_version": "1.2.0",
"generated_at": "2025-07-02T05:32:23+00:00",
"last_modified": "2025-06-01T10:30:23+00:00",
"result": {
"name": "ruby",
"aliases": [],
"label": "Ruby",
"category": "lang",
"tags": [
"lang"
],
"versionCommand": "ruby --version",
...
}
}
Show newest version of product
Next to the raw data is --newest
a flag that shows data only without checking a local version.
./eol_check.sh --newest node
----------------------------------------------------------------------
Node.js
Latest version 24
Category framework
Link https://endoflife.date/nodejs
EOL Security Support
Discontinued null
----------------------------------------------------------------------
{
"name": "24",
"codename": null,
"label": "24 (Upcoming LTS)",
"releaseDate": "2025-05-06",
"isLts": false,
"ltsFrom": "2025-10-28",
"isEoas": false,
"eoasFrom": "2026-10-20",
"isEol": false,
"eolFrom": "2028-04-30",
"isEoes": null,
"eoesFrom": null,
"isMaintained": true,
"latest": {
"name": "24.4.0",
"date": "2025-07-09",
"link": "https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V24.md#24.4.0"
},
"custom": null
}
Use it in scripts
You can use the exitcodes to get the logical result and show your own message or initialize an action.
Redirect the output to make it invisible eol_check.sh <program> >/dev/null
.
Exitcode | Description |
---|---|
0 | OK - up to date |
1 | minor update available |
2 | major update available |
3 | no support for your version |
4 | no support for the product |
More lists
You can get a filtered list by tag or category.
set one of the modes behind –list
- products (default)
- categories
- identifiers
- tags
./eol_check.sh -l categories
server-app
service
lang
os
framework
app
database
device
standard
To get a list of products matching a category or filter use
./eol_check.sh --category <category>
or
./eol_check.sh --tag <tagname>
Check operating systems
The endoflife.date website lists not only software products - among the list are operating systems too.
Show all tags:
./eol_check.sh --tag
php-runtime
server-app
alibaba
...
linux-distribution
os <<<
amazon
...
veeam
windows
zerto
To see supported operating systems we filter by tag “os”
./eol_check.sh --tag os
almalinux AlmaLinux OS
alpine-linux Alpine Linux
amazon-linux Amazon Linux
android Android OS
antix antiX Linux
tvos Apple tvOS
big-ip BIG-IP
centos-stream CentOS Stream
centos CentOS
cos Google Container-Optimized OS (COS)
debian Debian
devuan Devuan
eurolinux EuroLinux
fedora Fedora Linux
fortios FortiOS
freebsd FreeBSD
ibm-aix IBM AIX
ibm-i IBM iSeries
ios Apple iOS
ipados Apple iPadOS
kde-plasma KDE Plasma
lineageos LineageOS
linux Linux Kernel
linuxmint Linux Mint
macos Apple macOS
mageia Mageia
mxlinux MX Linux
netapp-ontap NetApp ONTAP
netbsd NetBSD
nixos NixOS
nutanix-aos Nutanix AOS
openbsd OpenBSD
opensuse openSUSE
openwrt OpenWrt
oracle-linux Oracle Linux
oracle-solaris Oracle Solaris
panos Palo Alto Networks PAN-OS
pop-os Pop!_OS
postmarketos postmarketOS
proxmox-ve Proxmox VE
rhel Red Hat Enterprise Linux
rocky-linux Rocky Linux
slackware Slackware Linux
sles SUSE Linux Enterprise Server
steamos SteamOS
tails Tails
ubuntu Ubuntu
visionos Apple visionOS
esxi VMware ESXi
photon VMware Photon
watchos Apple watchOS
windows-embedded Microsoft Windows Embedded
windows-nano-server Microsoft Nano Server
windows-server-core Microsoft Windows Server Core
windows-server Microsoft Windows Server
windows Microsoft Windows
xcp-ng XCP-ng
yocto Yocto Project
zentyal Zentyal
You can see the raw endoflife api data with –show … and to extract the latest version filter it with jq
.
Here is an example for debian
as opearting system:
./eol_check.sh -s debian | jq ".result .releases.[0]"
{
"name": "12",
"codename": "Bookworm",
"label": "12 (Bookworm)",
"releaseDate": "2023-06-10",
"isLts": false,
"ltsFrom": null,
"isEol": false,
"eolFrom": "2026-06-10",
"isEoes": false,
"eoesFrom": "2028-06-10",
"isMaintained": true,
"latest": {
"name": "12.11",
"date": "2025-05-17",
"link": "https://www.debian.org/News/2025/20250111"
},
"custom": null
}
Handle caching
By default a first request to the api of endoflife.data is needed. The response will be stored in /tmp/eol-cache__<name>.json
. For 1 day the cache file is used für the same api request.
You can override the local cache by using --api
.
With --wipe
all generated cache files can be deleted.