Validiert mit Ubuntu 22.04.2 LTS

Je nach installierten Paketen kann es notwendig sein, upgrade anstelle von dist-upgrade zu verwenden. In diesem Fall muß das versandte Log auf Warnungen über zurückgehaltene Pakete geprüft werden. Diese müssen dann nachinstalliert werden. Bei LAMP funktioniert dist-upgrade üblicherweise problemlos.

Voraussetzungen:

  • Kenntnis annehmender SMTP-Server

Ablauf

  1. Benötigte Pakete installieren
    apt-get install cron ssmtp -y
  2. /etc/ssmtp/ssmtp.conf editieren

    root=postmaster
    mailhub=smtp.sld.tld
    hostname=host.sld.tld
    FromLineOverride=YES

  3. Datei /root/autoupdate.sh erstellen

    #!/bin/bash
    host="host.sld.tld"
    recipient="Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein."
    LOG="/var/log/apt/$(date +%Y%m%d_%H%M%S).log"
    date > $LOG
    echo "" >> $LOG
    /usr/bin/apt-get update -q -y >> $LOG
    echo "" >> $LOG
    echo "upgrading..." >> $LOG
    /usr/bin/apt-get dist-upgrade -q -y >> $LOG
    echo "" >> $LOG
    /usr/bin/apt-get autoremove -q -y >> $LOG
    echo "" >> $LOG
    if test -f /var/run/reboot-required; then >> $LOG
     echo "REBOOT REQUIRED!" >> $LOG
    else
     echo "FINISHED!" >> $LOG
    fi

    echo "From: cron@$host" > /var/tmp/autoupdate.mail
    echo "To: $recipient" >> /var/tmp/autoupdate.mail
    echo "Subject: update run @$host" >> /var/tmp/autoupdate.mail
    echo "" >> /var/tmp/autoupdate.mail
    cat $LOG >> /var/tmp/autoupdate.mail
    cat /var/tmp/autoupdate.mail | /usr/sbin/ssmtp -v $recipient

    if test -f /var/run/reboot-required; then
     reboot
    fi

  4. Neustartverhalten Daemons anpassen in /etc/needrestart/needrestart.conf
    #$nrconf{restart} = 'i'; => $nrconf{restart} = 'a';
  5. crontab -e
  6. Zeile anfügen
    0 22 * * 5 /root/autoupdate.sh > /dev/null