#!/bin/sh -e LOG_FILE="/var/log/unattended-upgrades-check.log" # Colors RED='\033[0;31m' CYAN='\033[0;36m' YELLOW='\033[0;33m' LIGHT_GREEN='\033[0;92m' BOLD='\033[1m' NC='\033[0m' # No Color echo_error() { printf "${BOLD}${RED}ERROR: ${NC}${RED}%s${NC}\n" "$1" >&2 } echo_info() { printf "${BOLD}${CYAN}INFO: ${NC}${CYAN}%s${NC}\n" "$1" } echo_warning() { printf "${BOLD}${YELLOW}WARNING: ${NC}${YELLOW}%s${NC}\n" "$1" } echo_note() { printf "${BOLD}${LIGHT_GREEN}NOTE: ${NC}${LIGHT_GREEN}%s${NC}\n" "$1" } # ─< Check if the given command exists silently >───────────────────────────────────────── command_exists() { command -v "$@" >/dev/null 2>&1 } # ─< Check if the given command exists silently >───────────────────────────────────────── command_exists() { command -v "$@" >/dev/null 2>&1 } # ─< Check if the user is root and set sudo variable if necessary >─────────────────────── check_root() { if [ "$(id -u)" -ne 0 ]; then if command_exists sudo; then echo_info "User is not root. Using sudo for privileged operations." _sudo="sudo" else echo_error "No sudo found and you're not root! Can't install packages." return 1 fi else echo_info "Root access confirmed." _sudo="" fi } run_setup() { if command_exists unattended-upgrades; then $_sudo systemctl enable --now unattended-upgrades || echo_error "Something went wrong! Could not setup the service/autostart" fi } run_checks() { echo_info "Checking if unattended-upgrades is active..." if command_exists unattended-upgrades; then # if dpkg-query -W -f='${Status}' unattended-upgrades 2>/dev/null | grep -q "install ok installed"; then echo_note "unattended-upgrades is already installed." else echo_warning "unattended-upgrades is not installed. Attempting to install..." if command_exists apt-get; then if $_sudo apt-get update && $_sudo apt-get install --assume-yes unattended-upgrades; then echo_note "unattended-upgrades successfully installed." else echo_error "Failed to install unattended-upgrades. Exiting." exit 1 fi else echo_error "apt is not available on this system. Exiting." exit 1 fi fi # Enable unattended-upgrades UNATTENDED_UPGRADES_FILE="/etc/apt/apt.conf.d/50unattended-upgrades" if [ -f "$UNATTENDED_UPGRADES_FILE" ]; then echo_info "Configuring unattended upgrades in $UNATTENDED_UPGRADES_FILE" run_setup || echo_error "Something went wrong when configuring unattended-upgrades.." else echo_error "Unattended upgrades file not found!" fi } # Main script main() { echo_info "Starting unattended-upgrades check script..." if check_root; then run_checks # run_setup fi } main