[Debian] unattended-upgrades – Automatische Updates einrichten/installieren

Hinweis: Wir haben in diesem Artikel möglicherweise Provisions-Links verwendet und sie durch (*) gekennzeichnet. Erfolgt über diese Links eine Bestellung, erhält maffert.net eine Provision. Es entstehen für Sie keine Nachteile beim Kauf oder Preis.

Da ich mir die Frage gestellt habe wie man einen Linux Server am besten automatisch Updaten kann, bin ich auf die Software „unattended-upgrades“ gestoßen. Ich möchte euch hier zeigen, wie man  „unattended-upgrades“ einrichtet/installiert.

Bei Cubian (Cubietruck) muss vor den Befehlen jeweils immer ein sudo davor oder einmalig „sudo -i“ ausführen! 😉

  1. „unattended-upgrades“ installieren:
    apt-get install unattended-upgrades
  2. Config anpassen (ist eigentlich alles selbsterklärend) > nano /etc/apt/apt.conf.d/50unattended-upgrades
    Beispiel:

    // Automatically upgrade packages from these (origin, archive) pairs
    Unattended-Upgrade::Allowed-Origins {
    "${distro_id} stable";
    "${distro_id} ${distro_codename}-security";
    "${distro_id} ${distro_codename}-updates";
    //      "${distro_id} ${distro_codename}-proposed-updates";
    };
    
    // List of packages to not update
    Unattended-Upgrade::Package-Blacklist {
    //      "vim";
    //      "libc6";
    //      "libc6-dev";
    //      "libc6-i686";
    };
    
    // Send email to this address for problems or packages upgrades
    // If empty or unset then no email is sent, make sure that you
    // have a working mail setup on your system. The package 'mailx'
    // must be installed or anything that provides /usr/bin/mail.
    Unattended-Upgrade::Mail "Name@Domain.net";
    
    // Do automatic removal of new unused dependencies after the upgrade
    // (equivalent to apt-get autoremove)
    Unattended-Upgrade::Remove-Unused-Dependencies "true";
    
    // Automatically reboot *WITHOUT CONFIRMATION* if a
    // the file /var/run/reboot-required is found after the upgrade
    //Unattended-Upgrade::Automatic-Reboot "false";
    
    // Use apt bandwidth limit feature, this example limits the download
    // speed to 70kb/sec
    //Acquire::http::Dl-Limit "70";
  3. Config anpassen (ist eigentlich alles selbsterklärend) > nano /etc/apt/apt.conf.d/02periodic
    Beispiel:

    // Enable the update/upgrade script (0=disable)
    APT::Periodic::Enable "1";
    
    // Set maximum size of the cache in MB (0=disable)
    APT::Periodic::MaxSize "512";
    
    // Do "apt-get update" automatically every n-days (0=disable)
    APT::Periodic::Update-Package-Lists "1";
    
    // Do "apt-get upgrade --download-only" every n-days (0=disable)
    APT::Periodic::Download-Upgradeable-Packages "1";
    
    // Run the "unattended-upgrade" security upgrade script
    // every n-days (0=disabled)
    // Requires the package "unattended-upgrades" and will write
    // a log in /var/log/unattended-upgrades
    APT::Periodic::Unattended-Upgrade "1";
    
    // Do "apt-get autoclean" every n-days (0=disable)
    APT::Periodic::AutocleanInterval "7";
    
    //     Send report mail to root
    //     0:  no report             (or null string)
    //     1:  progress report       (actually any string)
    //     2:  + command outputs     (remove -qq, remove 2>/dev/null, add -d)
    //     3:  + trace on
    APT::Periodic::Verbose "0";
  4. testen ob alles funktioniert:
    unattended-upgrades --dry-run
  5. In den Log-Dateien schauen und gucken ob fehler aufgetaucht sind:
    tail /var/log/unattended-upgrades/unattended-upgrades.log

 

Ganz wichtig:

Da auch Betriebsysteme wie Linux neue Versionen bekommen (6, 7 bzw. squeeze, wheezy usw.) muss ggf. auch dementsprechend in der Datei „/etc/apt/apt.conf.d/50unattended-upgrades“ „„${distro_id} stable“;“ angepasst werden:

bei Debian Jessie: kann alles so bleiben (Stand 24.06.2015)

bei Debian Wheezy:

"${distro_id} oldstable";

bei Debian Squeeze:
folgendes hinzfügen:

"${distro_id} ${distro_codename}-lts";

Oder weitere/andere Quellen:

${distro_id} ${distro_codename}-backports";

Leider musste ich feststellen, dass auf manchen Servern „unattended-upgrades“ nicht einwandfrei funktionierte sprich „unattended-upgrades“ einfach keine Updates heruntergeladen und installiert hatte . Oft lag es aber an „apt“, entweder fehlte die Datei „/etc/cron.daily/apt“, hatte ne falsche Berechtigung oder das Paket hatte irgendwie ne Macke. Wenn ihr die gleichen Probleme haben solltet, mal folgendes durchgehen:

Prüfen ob das Paket „apt“ überhaupt installiert ist:

dpkg -l | grep apt

 

  • Prüfen ob die Datei „/etc/cron.daily/apt“ fehlt:
    ls -l /etc/cron.daily/apt

    wenn ja, entweder das .deb Paket runterladen, entpacken und die Datein kopieren oder einfach direkt die apt Datei von mir herrunterladen und in das Verzeichnis „/etc/cron.daily/“ verschieben:

    wget http://pub.maffert.net/debian/apt
    mv apt /etc/cron.daily/
  • Prüfen ob die Datei „/etc/cron.daily/apt“ eine falsche Berechtigung hat:
    ls -l /etc/cron.daily/apt

    sollte in etwa so aussehen:

    -rwxr-xr-x 1 root root 14799 Apr 15  2011 /etc/cron.daily/apt

    wenn die Berechtigung anders ist, dann richtig setzen:

    chmod aou+x /etc/cron.daily/apt

 

Wenn es immer noch Probleme geben sollte, einfach via Kommentar nachfragen und das Problem genau schildern! 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert