Automatisches Update

In diesem Beitrag zeige ich euch, wie man ein automatisches Update durch Führen kann. Es gibt einen Unterschied von CentOS7 und CentOS8, wenn Sie CentOS7 Betriebssystem haben, müssen Sie einen Schritt zusätzlich machen, sollten Sie CentOS8 haben können Sie direkt mit der Installation des Automatischen Paket beginnen. Ich werde euch markieren, ab welchem Punkt Sie beginnen können.


Inhaltsverzeichnis

  1. Version
  2. CentOS7 Vorbereiten
  3. Installation
  4. DNF-AUTOMATIC Version
  5. Konfigurieren
  6. Aufgabenplanner konfigurieren
  7. Test
  8. Reload
  9. Scheduler Anzeigen
  10. System
  11. Troubleshooting
    1. CentOS7
      1. Error Message “Segmentation fault” oder “Segmentation fault (core dump)”
      2. dnf-automatic.timer

Version

Da die selbe Vorgehensweise ist wie bei CentOS8, aber wir benötigen ein zusätzliches Paket damit dies funktioniert.

rpm -q centos-release

CentOS7 Vorbereiten

Wir müssen zwei Paket installieren, wenn Sie CentOS7 für das Autoupdate funktioniert.

sudo yum install -y epel-release dnf

Installation

Wir werden nun das Paket zum Automatischen Update installieren, ab diesen Zeitpunkt ist es gleich bei CentOS7 und CentOS8.

sudo dnf install -y dnf-automatic nano

DNF-AUTOMATIC Version

Wir können die Version abfragen, mit diesem Befehl.

sudo rpm -qi dnf-automatic

Konfigurieren


Zuerst werden wir von der Konfigurationsdatei ein Backup anlegen.

sudo cp /etc/dnf/automatic.conf /etc/dnf/automatic.conf_bck

Wir werden, nun konfigurieren, damit das Auto- Update nach einen gewissen Schema abläuft.

sudo nano /etc/dnf/automatic.conf

Passen Sie die Zeilen darunter an.

[commands]
#  What kind of upgrade to perform:
# default                            = all available upgrades
# security                           = only the security upgrades
upgrade_type = default
random_sleep = 0

# To just receive updates use dnf-automatic-notifyonly.timer

# Whether updates should be downloaded when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
download_updates = yes

# Whether updates should be applied when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
apply_updates = yes

Ich werde es auf Mail anpassen, da es für mich an Sinnvollsten empfinde, ansonsten muss ich mich immer auf den Server verbinden.

[emitters]
# Name to use for this system in messages that are emitted.  Default is the
# hostname.
system_name = CentOS-Test

# How to send messages.  Valid options are stdio, email and motd.  If
# emit_via includes stdio, messages will be sent to stdout; this is useful
# to have cron send the messages.  If emit_via includes email, this
# program will send email itself according to the configured options.
# If emit_via includes motd, /etc/motd file will have the messages. if
# emit_via includes command_email, then messages will be send via a shell
# command compatible with sendmail.
# Default is email,stdio.
# If emit_via is None or left blank, no messages will be sent.
emit_via = email

Hier werden die Mails Grundeinstellungen eingestellt.

[email]
# The address to send email messages from.
email_from = example@example.com

# List of addresses to send messages to.
email_to = example@example.local

# Name of the host to connect to to send email messages.
email_host = localhost
[command]
# The shell command to execute. This is a Python format string, as used in
# str.format(). The format function will pass a shell-quoted argument called
# `body`.
# command_format = "cat"

# The contents of stdin to pass to the command. It is a format string with the
# same arguments as `command_format`.
# stdin_format = "{body}"


[command_email]
# The shell command to use to send email. This is a Python format string,
# as used in str.format(). The format function will pass shell-quoted arguments
# called body, subject, email_from, email_to.
command_format = "mail -s {subject} -r {email_from} {email_to}"

# The contents of stdin to pass to the command. It is a format string with the
# same arguments as `command_format`.
# stdin_format = "{body}"
# The address to send email messages from.
email_from = example@example.com

# List of addresses to send messages to.
email_to = example@example.com


[base]
# This section overrides dnf.conf

# Use this to filter DNF core messages
debuglevel = 1

Aufgabenplanner konfigurieren

Wir werden ebenso wie oben ein Backup erstellen.

sudo cp /usr/lib/systemd/system/dnf-automatic.timer /usr/lib/systemd/system/dnf-automatic.timer_bck

Ein Update sollte geplant sein, da ein Neustart folgen kann. Daher werden wir es natürlich granular gestalten.

sudo nano /usr/lib/systemd/system/dnf-automatic.timer

Wir werden diese Zeilen anpassen. Ich rate diese Dokumentation zu nutzen. Ich habe es konfiguriert, dass jeden 1. Samstag im Monat um 23:00 Uhr laufen soll. Dies ist nicht für jeden, daher benutzen Sie diese Dokumentation.

Link: https://wiki.archlinux.org/index.php/Systemd/Timers

[Unit]
Description=dnf-automatic timer
# See comment in dnf-makecache.service
ConditionPathExists=!/run/ostree-booted
Wants=network-online.target

[Timer]
OnCalendar=Sat *-*-1..7 23:00:00
Persistent=true

[Install]
WantedBy=timers.target

Mit diesem Befehl aktivieren und starten wir den Task-Scheduler.

sudo systemctl enable dnf-automatic.timer
sudo systemctl start dnf-automatic.timer

Test

Man kann es Testen in dem man in die Konsole eingibt:

sudo dnf-automatic

Reload

Manchmal muss man den Timer umkonfigurieren, muss man aber den Deamon neuladen:

sudo systemctl daemon-reload

Scheduler Anzeigen

Hier können wir sehen wann dieser Task läuft.

sudo systemctl list-timers dnf-automatic.timer

System

sudo systemctl enable dnf-automatic.timer
sudo systemctl start dnf-automatic.timer
sudo systemctl stop dnf-automatic.timer
sudo systemctl status dnf-automatic.timer
sudo systemctl restart dnf-automatic.timer
sudo systemctl disable dnf-automatic.timer

Troubleshooting

CentOS7

Error Message “Segmentation fault” oder “Segmentation fault (core dump)”

Dies ist eine nervige Fehlermeldung, es schein nichts zu funktionieren. Es trotzdem eine einfach und schnell Lösung, wir machen vorweg ein Update.

sudo yum -y update

Nun können Sie den die dnf-Pakete installieren.

dnf-automatic.timer

Der Befehl dient zur Überprüfung:

sudo systemd-analyze verify /usr/lib/systemd/system/dnf-automatic.timer

Error-Meldung:

[/usr/lib/systemd/system/dnf-automatic.timer:8] Failed to parse calendar specificat
dnf-automatic.timer lacks value setting. Refusing.

Der Eintrag, denn ich oben beschrieben habe funktioniert, aber unter umständen kann es passieren das gewisse Synaxen nicht ganz funktioniert. Daher können Sie, wie darunter beschrieben benutzen.

[Unit]
Description=dnf-automatic timer
# See comment in dnf-makecache.service
ConditionPathExists=!/run/ostree-booted
Wants=network-online.target

[Timer]
OnCalendar=Sun *-*-1,2,3,4,5,6,7 23:00:00
Persistent=true

[Install]
WantedBy=timers.target

Schreibe einen Kommentar

%d Bloggern gefällt das: