Skip to content

Commit

Permalink
Create linux_os_update_check.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
dinger1986 authored Mar 11, 2024
1 parent 0ee108e commit 00a373b
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions scripts_staging/linux_os_update_check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/bin/bash

# Synopsis:
# This script is designed to check for available package updates on Linux systems. It supports multiple package
# managers, including apt-get (used by Debian-based distributions like Ubuntu), dnf (used by Fedora), and yum
# (used by CentOS and RHEL). The script identifies which package manager is available on the system and uses it
# to check for updates. If updates are available, it lists them and exits with code 1. If updates cannot be checked,
# it exits with code 2. If there are no updates, it exits with code 0.

# Exit Codes:
# 0 - Success: No updates are available.
# 1 - Error: Updates are available (this script treats the availability of updates as an actionable item, thus 'Error').
# 2 - Warning: The script was unable to check for updates, possibly due to an unsupported package manager or other issue.

# The script provides a straightforward way for administrators and scripts to check for software updates across a
# variety of Linux distributions using Tactical RMM, simplifying maintenance tasks and ensuring systems can be kept up to date with
# minimal manual intervention.

#!/bin/bash

# Function to check for updates using apt-get
check_apt_get() {
apt-get update > /dev/null
UPDATES=$(apt-get -s upgrade | awk '/^Inst/ { print $2 }')
if [ -n "$UPDATES" ]; then
echo "Updates available:"
echo "$UPDATES"
exit 1
fi
}

# Function to check for updates using dnf
check_dnf() {
UPDATES=$(dnf check-update | awk '{if (NR!=1) {print $1}}')
if [ -n "$UPDATES" ]; then
echo "Updates available:"
echo "$UPDATES"
exit 1
fi
}

# Function to check for updates using yum
check_yum() {
UPDATES=$(yum check-update | awk '{if (NR!=1 && !/Loaded plugins/) {print $1}}')
if [ -n "$UPDATES" ]; then
echo "Updates available:"
echo "$UPDATES"
exit 1
fi
}

# Determine which package manager is available and check for updates
if command -v apt-get &> /dev/null; then
check_apt_get
elif command -v dnf &> /dev/null; then
check_dnf
elif command -v yum &> /dev/null; then
check_yum
else
echo "Unable to determine package manager or check updates."
exit 2
fi

echo "No updates available."
exit 0

0 comments on commit 00a373b

Please sign in to comment.