• Café
  • Automatisiertes Paketupgrade

md_39118
Zu 1.
Schau lieber auf die Ausgabe auf der Konsole wenn du die Befehle eingibst.
Bei dir fehlt die Pfadangabe, sonst findet der Befehl die Datei nicht.
Du kannst eine Gruppe users oder admin auch selbst anlegen.
Ich weiß nicht wie viele Leute deinen PC nutzen sollen und wer dann noch in dieser Gruppe mit rein soll.
Zu 2.
Ich schaue es mit auch selbst an. Das hat aber auch noch Zeit.
Zu 3.
lynx ist ein textbasierter Browser für die Konsole. Den musst du erst installieren damit er laufen kann. Auf der Arch-Linux-ISO ist er aber schon drauf. Ist nur dafür wenn man kein Handy oder 2. Pc oder Drucker zur Verfügen hat, um die Wiki bei der Installation lesen zu können.

Welchen Bootloader möchtest du installieren? Wenn das systemd-boot ist dann musst du die Datei /boot/loader/entries/arch.conf und /boot/loader/entries/arch-fallback.conf neu anlegen. Du kannst dabei auch auf die ausführliche Anleitung https://wiki.archlinux.de/title/Installation_mit_UEFI_und_Verschl%C3%BCsselung zurückgreifen. Die erklärt es besser.
(Im Zweifel gilt der Pfad aus der ausführlichen Anleitung, dort habe ich für die Spicker (falsch) abgeschrieben)
Oder du nimmst alternativ grub als bootloder. Der macht die config weitgehend automatisch.

Zu 4.
Ja, das geht. Man kann beim Login dann wählen welche GUI man jeweils nutzen möchte. Die stören sich nicht.
Nimm für Plasma gleich das Paket 'plasma-meta' dann hast du komplett alles drauf.

Zu 5.
Danke ich schau mir die Übersetzungen dann an. (Wie gesagt, in ein paar Tagen)

P.S.: Der aller wichtigste Unterschied zu Endeverous ist, dass du nach dem Installieren von Arch Linux weißt wie dein System aufgebaut ist. Schön, dass du die Gelegenheit beim Schopf packst.

  • md_39118 hat auf diesen Beitrag geantwortet.

    tuxnix
    Hallo
    Zun 1. Die Ausgabe in der Endeavour Konsole ist OK. Der Pc soll von zwei Leuten benutzt werden.
    Die Gruppe users werde ich noch anlegen und beiden Leuten geben, dann mit chown ureminder-fg nochmal ändern.
    Die Pfadangabe ist OK type zeigt /usr/local/bin/ureminder-fg

    Zu 3. Mein Arbeits Pc läuft seit 2020 und wurde genau wie im Link beschrieben aufgebaut mit bootctl von Systemd
    Zu 4. Sway werde ich mal Testen. Das 'plasma-meta' habe ich nicht Installiert weil ich vieles nicht benötige.
    Ich kann erst nächste Woche weiter Testen und melde mich dann wieder.

    6 Tage später

    Hallo
    Das Update ist am 26.08.2024 erfolgreich gelaufen.
    Die Anzeigen des Scripts in der Konsole und im Journal sind vollkommen OK.

    Dazu wurde folgendes eingerichtet.

    less /etc/group
    sudo usermod -aG users ralf
    sudo usermod -aG users gerald
    cd /usr/local/bin/
    sudo chown root:users ureminder-fg
    ls -la /usr/local/bin/
    -rwxrw-r--  1 root users 8352 20. Aug 16:42 ureminder-fg
    journalctl -b | grep ureminder    # Von heute, bei Interesse als zip verfügbar.

    Ab hier der Start von heute.
    Frage sollte der Kernel und die Anwendungen mit in der Notify Meldung angezeigt werden?
    Im Bild und im Journal ist nichts zu sehen, könnte das an der Übersetzung liegen?

    send "Installierte nächste $i-Version:“ “Dieser neue Kernel wird nach dem nächsten Systemstart laufen!" -t 0 -u normal
    send "Upgrade erfolgreich:" "Bitte neu starten $PRAPPS und andere Anwendungen, die Sie gerade benutzen!" -t 0 -u normal #-r $NID
    
    journalctl -b | grep sudo
    Aug 26 17:22:08 rk-7072 sudo[1852]:     root : PWD=/ ; USER=ralf ; ENV=DISPLAY= DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus ; COMMAND=/usr/bin/notify-send 'Upgrade beginnt in 1 Minute:“ “Bitte Speichern Sie Ihre Dokumente!' -t 0 -u normal -p
    Aug 26 17:22:08 rk-7072 sudo[1852]: pam_systemd_home(sudo:session): New sd-bus connection (system-bus-pam-systemd-home-1852) opened.
    Aug 26 17:22:08 rk-7072 sudo[1852]: pam_unix(sudo:session): session opened for user ralf(uid=1000) by (uid=0)
    Aug 26 17:22:08 rk-7072 sudo[1852]: pam_unix(sudo:session): session closed for user ralf
    Aug 26 17:23:08 rk-7072 sudo[1882]:     root : PWD=/ ; USER=ralf ; ENV=DISPLAY= DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus ; COMMAND=/usr/bin/notify-send 'Upgrade:“ “Bitte System weiterlaufen lassen!' -t 0 -u critical -r 1 -p
    Aug 26 17:23:08 rk-7072 sudo[1882]: pam_systemd_home(sudo:session): New sd-bus connection (system-bus-pam-systemd-home-1882) opened.
    Aug 26 17:23:08 rk-7072 sudo[1882]: pam_unix(sudo:session): session opened for user ralf(uid=1000) by (uid=0)
    Aug 26 17:23:08 rk-7072 sudo[1882]: pam_unix(sudo:session): session closed for user ralf
    
    Aug 26 17:24:43 rk-7072 sudo[10849]:     root : PWD=/ ; USER=ralf ; ENV=DISPLAY= DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus ; COMMAND=/usr/bin/notify-send 'Installierte nächste linux-Version:“ “Dieser neue Kernel wird nach dem nächsten Systemstart laufen!' -t 0 -u normal
    Aug 26 17:24:43 rk-7072 sudo[10849]: pam_systemd_home(sudo:session): New sd-bus connection (system-bus-pam-systemd-home-10849) opened.
    Aug 26 17:24:43 rk-7072 sudo[10849]: pam_unix(sudo:session): session opened for user ralf(uid=1000) by (uid=0)
    Aug 26 17:24:43 rk-7072 sudo[10849]: pam_unix(sudo:session): session closed for user ralf
    Aug 26 17:24:44 rk-7072 sudo[10891]:     root : PWD=/ ; USER=ralf ; ENV=DISPLAY= DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus ; COMMAND=/usr/bin/notify-send 'Upgrade erfolgreich:' 'Bitte neu starten $n und andere Anwendungen, die Sie gerade benutzen!' -t 0 -u normal
    Aug 26 17:24:44 rk-7072 sudo[10891]: pam_systemd_home(sudo:session): New sd-bus connection (system-bus-pam-systemd-home-10891) opened.
    Aug 26 17:24:44 rk-7072 sudo[10891]: pam_unix(sudo:session): session opened for user ralf(uid=1000) by (uid=0)
    Aug 26 17:24:44 rk-7072 sudo[10891]: pam_unix(sudo:session): session closed for user ralf

    • tuxnix hat auf diesen Beitrag geantwortet.

      md_39118
      Das mit den Rechten war nur ein Tipp wenn du das Skript bearbeiten möchtest. Ist O.K. so.
      Endeverous macht zusätzliche Desktop Meldungen. O.K. wir lassen sie mal machen.
      Was Anwendungen- und Kernel-Meldung angeht, da waren noch kleine Fehler im Skript. Lass es erst einmal gut sein. Es kommt ohnehin neu und dann komplett incl. deutscher Übersetzung als AUR Paket.

      md_39118
      Immer noch nicht fertig aber hier mal eine kleine Vorrausschau:

      Meldung beim normalen Durchlauf ohne, dass ein upgrade durchgeführt wird:

      Das Selbe mit laufendem Libreoffice:

      Und jetzt die Meldungen die während eines auto-upgrades erscheinen:

      Die erste Meldung verschwindet wenn die 2. erscheint:

      Die 2. verschwindet wenn die 3. erscheint:

      Die deutsche Übersetzungsdatei kann ich leider hier nicht mitliefern. Das Srkipt ist oben aktualisiert und du kannst gerne das Deutsche abschreiben und ins Skript eintragen wenn du magst. Deepl ist für diesen Zweck nicht so geeignet.
      In plasma gibt es hier und da einen Zeilenumbruch mehr. Es gibt zwar eine Einstellung der Benachrichtigungen in der Systemsteuerung aber die Weite der Meldungen kann man dort nicht einstellen. Ich habe den Text so kurz gehalten wie nur möglich.

      Edit: Mir fällt ein, ich kann dir doch was schicken, bei dem du mit copy & past arbeiten kannst. Die Nummern entsprechen dabei den Zeilen im Skript.

      #: ureminder:16
      msgid "Reminds to upgrade and does it if user does not"
      msgstr ""
      "Erinnert an Upgrades und führt sie durch,\n"
      "wenn der Benutzer dies nicht selbst tut."
      
      #: ureminder:18
      msgid "Call: ureminder [OPTION]... [Value]..."
      msgstr "Aufruf: ureminder [OPTION]... [Value]..."
      
      #: ureminder:19
      msgid "Options:"
      msgstr "Optionen:"
      
      #: ureminder:20
      msgid "--days [n]         Autoupgrade in n days - default 7"
      msgstr "--days [n]         Auto-Upgrade in n Tagen - default 7"
      
      #: ureminder:21
      msgid "-h --help          Print this help"
      msgstr "-h --help          Zeigt diese Hilfe an"
      
      #: ureminder:22
      msgid "-v --verbose       Verbose mode"
      msgstr "-v --verbose       Zeigt ausführliche Meldungten an"
      
      #: ureminder:24
      msgid "Example: ureminder --days 30 -v"
      msgstr "Beispiel: ureminder --days 30 -v"
      
      #: ureminder:34
      msgid "--day(s) needs a positiv number as argument"
      msgstr "--day(s) benötigt eine positive Zahl als Argument"
      
      #: ureminder:40
      msgid "Verbose mode activated"
      msgstr "Auskunftsfreudiger Modus eingeschaltet"
      
      #: ureminder:47
      msgid "Unknown option: $1"
      msgstr "Unbekonnte Option $1"
      
      #: ureminder:48
      msgid "Run -h or --help for help"
      msgstr "Nutze -h oder --help um die Hilfe anzuzeigen"
      
      #: ureminder:67
      msgid "Next upgrade with days=$DAYS at least in $NEXT hour(s)."
      msgstr "Nächstes Auto-Upgrade mit days=$DAYS frühestens in $NEXT Stunde(n)"
      
      #: ureminder:71
      msgid "Error: Pacman database locked"
      msgstr "Fehler: Die Pacman Datenbank ist geblockt"
      
      #: ureminder:153
      msgid "Save open documents!"
      msgstr "Sichere geöffnete Dokumente!"
      
      #: ureminder:154
      msgid "<b>Run # pacman -Syu on terminal!</b>\\n"
      msgstr "<b>Führe # pacman -Syu auf der Konsole aus!</b>\\n"
      
      #: ureminder:155
      msgid "<b>After upgrading:</b>\\n"
      msgstr "<b>Nach dem Upgrade:</b>\\n"
      
      #: ureminder:156
      msgid "<b>Next auto upgrade in $NEXT h possible.</b>\\n"
      msgstr "<b>Nächstes Auto-Upgrade frühestens in $NEXT h.</b>\\n"
      
      #: ureminder:157
      msgid "${#PKGS[*]} package(s): <i>${PK[*]}</i>"
      msgstr "${#PKGS[*]} Paket(e): <i>${PK[*]}</i>"
      
      #: ureminder:159
      msgid "$GUI and kernel upgrade:"
      msgstr "$GUI und Kernel Upgrade:"
      
      #: ureminder:160
      msgid "Reboot your system!"
      msgstr "Starte das System neu!"
      
      #: ureminder:162
      msgid "$GUI upgrade:"
      msgstr "$GUI wurde erneuert:"
      
      #: ureminder:163
      msgid "<b>Restart your usersesson!</b>\\n"
      msgstr "Starte deine Benutzersitzung neu!"
      
      #: ureminder:165
      msgid "Application and kernel upgrade:"
      msgstr "Anwendungen und Kernel erneuert:"
      
      #: ureminder:166
      msgid ""
      "<b>Restart ${UAPPS[*]} and other applikations you are working with! New "
      "$RKERNEL version will run after your next system boot.</b>\\n"
      msgstr ""
      "<b>Starte ${UAPPS[*]} und Anwendungen neu die in Benutzung sind! Die neue "
      "$KERNEL version wird aktiv mit dem nächsten Systemstart.</b>\\n"
      
      #: ureminder:168
      msgid "Kernel upgrade:"
      msgstr "Kernel upgrade:"
      
      #: ureminder:169
      msgid "<b>New $RKERNEL version will run after your next system boot.</b>\\n"
      msgstr ""
      "<b>Die neue $KERNEL Version läuft nach dem nächsten Systemstart.</b>\\n"
      
      #: ureminder:171
      msgid "Application upgrade:"
      msgstr "Upgrade von Anwendungen:"
      
      #: ureminder:172
      msgid ""
      "<b>Restart${UAPPS[*]} and other applikations you are working with!</b>\\n"
      msgstr "<b>Starte${UAPPS[*]} und Programme in Benutzung neu!</b>\\n"
      
      #: ureminder:174
      msgid "<b>Upgrade successfull</b>"
      msgstr "<b>Uggrade erfolgreich durchgeführt:</b>"
      
      #: ureminder:175
      msgid "<b>Restart applikations you're working with!</b>\\n"
      msgstr "<b>Programme in Benutzung neu starten!</b>\\n"
      
      #: ureminder:181
      msgid "Upgrade starts in 1 minute:"
      msgstr "Upgrade startet in 1 Minute:"
      
      #: ureminder:181
      msgid "$SAVE"
      msgstr "$SAVE"
      
      #: ureminder:183
      msgid "Upgrading:"
      msgstr "Das Upgrade wird eingespielt:"
      
      #: ureminder:183
      msgid "Keep system running!"
      msgstr "Computer bitte laufen lassen!"
      
      #: ureminder:193
      msgid "Error: $Error"
      msgstr "Fehler: $Error"
      
      #: ureminder:193
      msgid "To analyse run this command on terminal:"
      msgstr "Gebe zur Analyse den Befehl in die Konsole ein:"
      • md_39118 hat auf diesen Beitrag geantwortet.

        tuxnix
        Hallo
        Die DE Übersetzungen sind im Script, ein Test läuft.
        Bei Post 40 ist im Script noch/wieder der Fehler bei send()

        send() {
        tty1user=$(who | awk '{print $1}'| tail -1)
        sudo -u $tty1user DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $tty1user)/bus notify-send "$@"
        }
        
        #send() {
        #TUSER=$(who | awk '/tty1/{print $1}')
        #sudo -u $TUSER DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $TUSER)/bus notify-send "$@"
        #}

        Gib mir doch bitte mal die Ausgabe von who -a auf der konsole an. Macht endeverous hier etwas anderes als arch?

        • md_39118 hat auf diesen Beitrag geantwortet.

          tuxnix
          Hallo
          Hier die Abfragen von beiden Usern auf dem Pc.

          who -a
                     Systemstart  2024-08-28 14:43
          ralf     + tty2         2024-08-28 14:44 00:03         822 (:0)
          ralf     - pts/0        2024-08-28 14:44 00:01        1368 (:0)
          ralf     - pts/1        2024-08-28 14:45   .          1375 (:0)
          #
          who -a
                     Systemstart  2024-08-28 14:43
          gerald     + tty2         2024-08-28 15:02 00:22      1892 (:0)
          gerald     - pts/0        2024-08-28 15:02  .         2602 (:0)
                       pts/1        2024-08-28 15:01            1349 id=ts/1 term=0 exit=0
                       pts/2        2024-08-28 14:49            1545 id=ts/2 term=0 exit=0

          Das Script habe ich dann so geändert, nach einem reboot läuft es dann auch als user und zeigt nun 11 Upgrades an.

          send() {
          tty2user=$(who | awk '{print $1}'| tail -1)
          sudo -u $tty2user DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $tty2user)/bus notify-send "$@"
          }

          Danke! Ja, das kannst du so machen.
          Arch und Endeverous sind hier unterschiedlich.
          Bei Plasma bin ich auf tty1 und einem pseudoterminal (pts) gelistet.
          Das + Zeichen zeigt übrigens an, auf welchem Terminal messages empfangen werden können.

          Zur 1. Befehlszeile:

          • who -T zeigt die + und - Werte mit an.
          • | ist eine Pipe und ist dafür da, die Ausgabe vom einem Befehl dem nächsten zu übergeben.
          • awk '{print $1}' zeigt die erste Spalte an.
          • awk '/+/{print $1}' zeigt die erste Spalte an. davon aber nur die Zeilen in denen das + Zeichen vorkommt.
          • head -1 zeigt nur die erste Zeile an, und wird dafür benötigt falls das + mehrmals auftauchen sollte, was bei mir bei Plasma auch der Fall ist.
          • Wie die Variable heißt, ist übrigens egal, solange der Name nicht schon belegt ist.

          Probier doch bitte nochmal dass folgende aus. Ich hätte gern das + Zeichen als Kriterium mit drin. Das sieht dann so aus:

          send() {
          TUSER=$(who -T | awk '/+/{print $1}' | head -1)
          sudo -u $TUSER DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $TUSER)/bus notify-send "$@"
          }

            tuxnix
            Hallo
            Mit dieser send() Funktion ist es auch OK das Script läuft als User der nächste Update Termin ist in 115 Stunden.

            Das script läuft hoffentlich als root und sendet dem user Mitteilungen. (Nur mal so bemerkt 😉 )

            • md_39118 hat auf diesen Beitrag geantwortet.

              tuxnix
              Hallo
              Das script läuft als root, die Meldung sieht der User(ralf) so lese ich zumindest den Journal Eintrag von gestern.

              journalctl -f
              Aug 28 15:18:42 rk-7072 sudo[1380]:     root : PWD=/ ; USER=ralf ; ENV=DISPLAY= DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus ; COMMAND=/usr/bin/notify-send 'Sichere geöffnete Dokumente!' '<b>Führe # pacman -Syu auf der Konsole aus!</b>\\n<b>Nach dem Upgrade:</b>\\n<b>Programme in Benutzung neu starten!</b>\\n<b>Nächstes Auto-Upgrade frühestens in 121 h.</b>\\n11 Paket(e): <i>1.box2d 2.cifs-utils 3.cpio 4.eos-apps-info 5.glib2 6.glibmm-2.68 7.haruna 8.kmod 9.libnm 10.libreoffice-fresh 11.networkmanager</i>' -t 0 -u normal

              Mit sway kann ich mich nicht anfreunden, die ersten Versuche mit waybar, wofi usw. nach einen Artikel im LinuxUser 7/24 sind ernüchternd.

              Alles richtig!
              Hab das nur mal deshalb bemerkt, weil der Sinn bzw. auch die Schwierigkeit von der send () Funktion ja gerade darin besteht vom root aus eine Botschaft an den jeweils eingeloggten User zu verschiecken. Als User gibst du auf der Konsole lediglich ein notify-send "Hallo" "Du" ein und die Nachricht erscheint.

              Würde das Skript als User laufen bräuchte es die send () Funktion nicht!

              Du kannst auch mal mit den Befehlen (siehe oben) auf der Konsole spielen, nur um zu sehen was damit passiert : 😉
              ẁho -T | awk '/+/ {print $1,$2}' und dann mal /+/ weglassen und auch mal die nächste pipe dranhängen. Hinterher steht dann auf der Konsole ein schlichtes ralf und genau das wird gebracht um es per Variable in die 2. Zeile an die richtigen Stellen zu schreiben.

              Habe gerade das Skript und den Service in Post tuxnix aktualisiert. (siehe changelog). Bis auf die präzise Berechnung, wann das Auto-Upgrade stattfindet, ist für dich nichts Neues dabei. Die erfahreneren Arch Linux User können aber jetzt auch die Auto-Upgrades und die anleitenden Mitteilungen einzeln aus- bzw. einschalten. Und können das Skript jetzt dafür nutzen, lediglich die neuen Paket-Upgrades automatisch angezeigt zu bekommen.

              Was sway betrifft so ist es in der Rohversion sehr spartanisch. Wenn die Arbeit am Skript mal beendet ist, zeige ich dir meine Einrichtung von sway, die es durchaus mit Plasma aufnehmen kann aber weniger Anleitung benötigt und viel weniger Ressourcen auf schwachen Rechnern in Beschlag nimmt.

              Hier mal eine Voransicht der Bedienleiste:

              Rechts werden Infos angezeigt: Bluethooth, W-/LAN, RAM-Nutzung, CPU-Last, TEMP, Akku, Lautstärke. Ein Klick auf das jeweilige Symbol erlaubt weitere Einstellungen oder öffnet bei der RAM-Anzeige das Programm htop welches benötigt wird um dem aktuellen RAM Verbrauch zu analysieren.

              In der Mitte Uhrzeit, WoTag, Datum - 1Klick s erscheint ein Kalender.

              Links: Stehen die geöffneten Programme. Sway startet bei mir schon standartmäßig mit geladenem Browser, E-mail, File-Manager, Terminal, Fehrnsehprogramm ect. - Zu Bedienen per Mausklick oder Tastatur. Z.B.: mod+b öffnet das Browserfenster..

              Und weil das Ganze incl. geöffneter Programme weniger RAM benötigt als Plasma oder GNOME ohne Programme, bin ich auf einem ausrangierten ollen 15 Jahre alten Rechner mit nur 2GB RAM fast noch schneller unterwegs als jemand der ca. 500€ ausgibt.

              So long

              • md_39118 hat auf diesen Beitrag geantwortet.

                tuxnix
                Hallo
                Der Pc für meine Freunde ist nicht ganz so alt, immerhin eine i5 CPU und 8Gb RAM damit läuft Plasma(x11) gut.
                Im Moment ist die waybar mit den Standard Anzeigen aktiv, sway ist auf DE eingestellt, Programme werden nicht mit gestartet.

                Mit Plasma
                free -h
                              gesamt       benutzt     frei      gemns.  Puffer/Cache verfügbar
                Speicher:      7,7Gi       1,1Gi       5,9Gi        38Mi      1,1Gi       6,6Gi
                Swap:             0B          0B          0B
                #
                Mit sway
                free -h
                              gesamt       benutzt     frei      gemns.  Puffer/Cache verfügbar
                Speicher:      7,7Gi       598Mi       6,2Gi        1Mi       1,3Gi       7,1Gi
                Swap:             0B          0B          0B

                Das sieht bei mir ganz anders aus, allerdings läuft er schon länge Zeit und etliche Progs und Internet Seiten sind geöffnet :

                free -h
                              gesamt       benutzt     frei      gemns.  Puffer/Cache verfügbar
                Speicher:      1,8Gi       1,6Gi       149Mi       113Mi       374Mi       260Mi
                Swap:          8,0Gi       2,3Gi       5,7Gi

                Und trotz lahmer 2 Kern CPU und den Missbrauch der SSD als RAM-Ersatz behaupte ich, dass mein Rechner mit Sway reagibler läuft, als der deinige mit Plasma.
                1,1 Gi zu 600 Mi bedeutet auch, dass viel weniger gerechnet werden muss wenn was auf der GUI geschehen soll. Auf meinen Rechner läuft auch Plasma, braucht lange bis es gestartet ist und läuft dann etwas zäher. Aber bei GNOME ohne Anwendungen läuft der Lüfter schon dauerhaft im Leerlauf hoch.
                Ohne Anwendungen sind es bei mir auch nur gut 300MB im RAM wenn sway allein gestartet wird.

                • md_39118 hat auf diesen Beitrag geantwortet.

                  tuxnix
                  Hallo
                  Ich habe vorhin die Version 8 von ureminder getestet, dort ist ein Fehler beim Datum zu sehen.

                  journalctl -f
                  Aug 30 17:32:11 rk-7072 systemd[1]: Started ureminder.service.
                  Aug 30 17:32:11 rk-7072 ureminder[1236]: Display message: After upgrade: Do.. - ON
                  Aug 30 17:32:11 rk-7072 ureminder[1236]: Display message: Save your Documents & pacman -Syu - ON
                  Aug 30 17:32:11 rk-7072 ureminder[1236]: Display message: Next upgrade in x hours - ON
                  Aug 30 17:32:11 rk-7072 ureminder[1236]: Auto upgrade - days=7 - ON
                  Aug 30 17:32:11 rk-7072 ureminder[1243]: date: ungültiges Datum „-TFri“
                  Aug 30 17:32:11 rk-7072 ureminder[1248]: date: ungültiges Datum „448msTago“
                  Aug 30 17:32:11 rk-7072 ureminder[1236]: /usr/local/bin/ureminder: Zeile 85: NEXT/PERIOD: Division durch 0. (Fehlerverursachendes Zeichen ist "PERIOD").
                  Aug 30 17:32:11 rk-7072 ureminder[1236]: Next upgrade in 479175 h 27 m
                  Aug 30 17:32:12 rk-7072 ureminder[1257]: ==> no candidate packages found for pruning
                  Aug 30 17:32:12 rk-7072 ureminder[1266]: ==> finished: 5 packages removed (disk space saved: 179.88 MiB)

                  Ja, ich weiß! Neue Funktion, neuer Bug. Da komme ich leider auch nicht drum herum.
                  Die Tücken bemerkt man erst, wenn man neue Wege beschreitet.
                  Es klappt prima, wenn # ureminder -tabsd 5 auf der Konsole initiiert wird.
                  Dann werden Stunden und Minuten auch korrekt angezeigt.
                  Wenn der Timer das Skript auslöst, dann nicht. Systemd ist offenbar zu lahm um sofort die neuen Zeiten von NEXT und LAST korrekt wiederzugeben. Habe die Zeitberechnung extra schon nach unten im Skript verlagert, um systemd dafür mehr Zeit einzuräumen, was aber auch nichts nutzt.

                  Schau dir auch mal die b Option an, damit kannst dem Skript beim Rechnen zuschauen.
                  Wenn dich die falsche Zeitberechnung stört, dann nimm das t bei den Optionen raus.
                  Die deutsche Übersetzung folgt wenn das behoben ist.

                  5 Tage später

                  Hab jetzt die Lösung für die korrekte Zeitangabe, aber ich werde das erst einmal noch besser testen müssen bevor ich es herausgebe. Leider fehlt mir momentan die Zeit dafür.
                  Und die Anzeige der Arch-Linux-News ist auch schon auf dem Weg.
                  Diese Nachricht nur um mal kurz über den Stand der Dinge Bescheid zu geben.

                  • md_39118 hat auf diesen Beitrag geantwortet.

                    tuxnix
                    Hallo
                    Danke für die Info und viel Erfolg mit der neuen Lösung.
                    Der Stand bei mir, ohne den Schalter -t und mit -b läuft das Script und gibt alle Debug Meldungen aus.
                    Als Test habe ich nur die Zeitberechnung mal als Script gestartet, das sieht auch gut aus.

                    systemctl list-timers
                    sleep 3
                    days="7"
                    NOW=$(date --date='now' +%s)
                    UPAC=$(date -d $(awk '/upgraded/ { print $1 }' /var/log/pacman.log | tail -1 | sed -e 's/\[//' -e 's/\]//') +%s)
                    NTIMER=$(date -d $(systemctl list-timers shadow.timer | awk 'NR>1 && NR<3{print $2,$3}' | sed -e 's/ /T/') +%s)
                    LTIMER=$(date -d $(systemctl list-timers shadow.timer | awk 'NR>1 && NR<3{print $7,$8}' | sed -e 's/ /T/') +%s)
                    NEXT=$((days*86400+UPAC-NOW))
                    PERIOD=$((NTIMER-LTIMER))
                    COUNTS=$((NEXT/PERIOD))
                    HOURS=$(( (NOW-LTIMER+PERIOD*COUNTS) / 3600))
                    REST=$(( (NOW-LTIMER+PERIOD*COUNTS) % 3600))
                    MINUTES=$(( (3600-REST) / 60))
                    sleep 3
                    echo $NOW
                    echo $UPAC
                    echo $NTIMER
                    echo $LTIMER
                    echo $NEXT
                    echo $PERIOD
                    echo $COUNTS
                    echo $HOURS
                    echo $REST
                    echo $MINUTES
                    echo $"Next upgrade in $HOURS h $MINUTES m"

                    Hier die Ausgabe.

                    sudo ureminder-test
                    NEXT                             LEFT LAST                            PASSED UNIT                             ACTIVATES
                    -                                   - Wed 2024-09-04 14:34:05 CEST  6min ago ureminder.timer                  ureminder.service
                    
                    1725453656
                    1725218464
                    1725487200
                    1725452947
                    369608
                    34253
                    10
                    95
                    1239
                    39
                    Next upgrade in 95 h 39 m

                    Ja, es rechnet und bekommt jetzt auch immer zuverlässig Ausgangswerte aus dem journal geliefert, aber es rechnet in einigen Fällen je nach Voreinstellung der Tage und des Timers noch falsch. Sorry, aber für die ganz banale Punkt und Strichrechnung bei zwei Uhren an denen man drehen kann, brauche ich den richtigen Moment an Ruhe.
                    Gestern war die Beerdigung meiner Schwester und meine Konzentration ist gerade auf ganz andere Dinge gerichtet. Wenn dieser Moment kommt, dann geht's dann auch schnell wieder mit dem ein mal eins weiter. 😉