• Café
  • Automatisiertes Paketupgrade

Hallo
Vor der Installation mit trizen aus dem AUR wurde /usr/local/bin/ureminder und /etc/systemd/system/ureminder* gelöscht.
Die Installation aus dem AUR war OK. Der erste Lauf Endet ohne die Installation der 10 Pakete.
Frage wo kommt die Meldung "Sichere neue Dokumente!\nAuto-Upgrade in -30 Minutens oder -59 Minutens" eigentlich her?
Frage wo kann der Tag eingestellt werden wann ein Auto-Upgrade erfolgen soll?
Nach vier Versuchen ist nichts Installiert worden. Es bleibt bei

uname -a
Linux rk-7072 6.12.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 10 Jan 2025 00:39:41 +0000 x86_64 GNU/Linux

Der erste Versuch.

Jan 19 17:36:52 rk-7072 systemd[1]: Started ureminder.service.
Jan 19 17:36:52 rk-7072 ureminder[1246]: Anzeige: Was nach dem Upgrade zu tun ist- EIN
Jan 19 17:36:52 rk-7072 ureminder[1246]: Anzeige: Auto-Upgrade alle 7 Tage - EIN
Jan 19 17:36:53 rk-7072 ureminder[1252]: ==> no candidate packages found for pruning
Jan 19 17:36:53 rk-7072 ureminder[1261]: ==> finished: 241 packages removed (disk space saved: 1.3 GiB)
Jan 19 17:37:14 rk-7072 ureminder[1281]: :: Paketdatenbanken werden synchronisiert …
Jan 19 17:40:15 rk-7072 ureminder[1281]:  endeavouros wird heruntergeladen …
Jan 19 17:40:15 rk-7072 ureminder[1281]:  core wird heruntergeladen …
Jan 19 17:40:15 rk-7072 ureminder[1281]:  extra wird heruntergeladen …
Jan 19 17:40:15 rk-7072 ureminder[1281]:  multilib wird heruntergeladen …
Jan 19 17:40:15 rk-7072 ureminder[1281]: :: Vollständige Systemaktualisierung wird gestartet …
Jan 19 17:40:16 rk-7072 ureminder[1281]: Abhängigkeiten werden aufgelöst …
Jan 19 17:40:16 rk-7072 ureminder[1281]: Paket (10)                   Alte Version    Neue Version     Netto-Veränderung  Größe des Downloads
Jan 19 17:40:16 rk-7072 ureminder[1281]: endeavouros/eos-bash-shared  25.1.3-1        25.1.4-1                  0,00 MiB             0,06 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: extra/fontconfig             2:2.15.0-2      2:2.16.0-1                0,01 MiB             0,36 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: core/libsecret               0.21.4-1        0.21.6-1                  0,01 MiB             0,18 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: core/linux                   6.12.9.arch1-1  6.12.10.arch1-1          -0,08 MiB           137,63 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: core/linux-headers           6.12.9.arch1-1  6.12.10.arch1-1           0,00 MiB            26,66 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: extra/pango                  1:1.54.0-1      1:1.56.1-1                0,02 MiB             0,41 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: extra/pangomm-2.48           2.54.0-1        2.56.1-1                  0,01 MiB             0,11 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: extra/serd                   0.32.2-1        0.32.4-1                  0,00 MiB             0,06 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: extra/sord                   0.16.16-1       0.16.18-1                 0,00 MiB             0,03 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: extra/zix                    0.4.2-2         0.6.2-1                   0,01 MiB             0,04 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: Gesamtgröße des Downloads:  165,56 MiB
Jan 19 17:40:16 rk-7072 ureminder[1281]: :: Download fortsetzen? [J/n]
Jan 19 17:40:16 rk-7072 ureminder[1281]: :: Pakete werden empfangen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  linux-6.12.10.arch1-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  linux-headers-6.12.10.arch1-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  pango-1:1.56.1-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  fontconfig-2:2.16.0-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  libsecret-0.21.6-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  pangomm-2.48-2.56.1-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  serd-0.32.4-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  eos-bash-shared-25.1.4-1-any wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  zix-0.6.2-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]:  sord-0.16.18-1-x86_64 wird heruntergeladen …
Jan 19 17:41:30 rk-7072 ureminder[1281]: Schlüsselbund wird geprüft …
Jan 19 17:41:31 rk-7072 ureminder[1281]: Paketintegrität wird geprüft …
Jan 19 17:41:34 rk-7072 sudo[1413]:     root : PWD=/ ; USER=ralf ; ENV=DISPLAY= DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus ; COMMAND=/usr/bin/notify-send '10 neue Pakete: 1.eos-bash-shared 2.fontconfig 3.libsecret 4.linux 5.linux-headers 6.pango 7.pangomm-2.48 8.serd 9.sord 10.zix' 'Sichere neue Dokumente!\\nAuto-Upgrade in -30 Minutens\\n' -t 0 -u normal -p
Jan 19 17:41:34 rk-7072 sudo[1413]: pam_unix(sudo:session): session opened for user ralf(uid=1000) by (uid=0)
Jan 19 17:41:34 rk-7072 sudo[1413]: pam_unix(sudo:session): session closed for user ralf
Jan 19 17:41:34 rk-7072 systemd[1]: ureminder.service: Deactivated successfully.
Jan 19 17:41:34 rk-7072 systemd[1]: ureminder.service: Consumed 9.433s CPU time, 249.5M memory peak.

Der zweite Versuch.

Jan 19 18:23:43 rk-7072 ureminder[1279]: Anzeige: Was nach dem Upgrade zu tun ist- EIN
Jan 19 18:23:43 rk-7072 ureminder[1279]: Anzeige: Auto-Upgrade alle 7 Tage - EIN
Jan 19 18:23:44 rk-7072 ureminder[1286]: ==> no candidate packages found for pruning
Jan 19 18:23:44 rk-7072 ureminder[1295]: ==> finished: 4 packages removed (disk space saved: 164.53 MiB)
Jan 19 18:24:06 rk-7072 ureminder[1317]: :: Paketdatenbanken werden synchronisiert …
Jan 19 18:24:07 rk-7072 ureminder[1317]:  endeavouros wird heruntergeladen …
Jan 19 18:24:07 rk-7072 ureminder[1317]:  core wird heruntergeladen …
Jan 19 18:24:07 rk-7072 ureminder[1317]:  extra wird heruntergeladen …
Jan 19 18:24:07 rk-7072 ureminder[1317]:  multilib wird heruntergeladen …
Jan 19 18:24:07 rk-7072 ureminder[1317]: :: Vollständige Systemaktualisierung wird gestartet …
Jan 19 18:24:08 rk-7072 ureminder[1317]: Abhängigkeiten werden aufgelöst …
Jan 19 18:24:08 rk-7072 ureminder[1317]: Paket (10)                   Alte Version    Neue Version     Netto-Veränderung
Jan 19 18:24:08 rk-7072 ureminder[1317]: endeavouros/eos-bash-shared  25.1.3-1        25.1.4-1                  0,00 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: extra/fontconfig             2:2.15.0-2      2:2.16.0-1                0,01 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: core/libsecret               0.21.4-1        0.21.6-1                  0,01 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: core/linux                   6.12.9.arch1-1  6.12.10.arch1-1          -0,08 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: core/linux-headers           6.12.9.arch1-1  6.12.10.arch1-1           0,00 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: extra/pango                  1:1.54.0-1      1:1.56.1-1                0,02 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: extra/pangomm-2.48           2.54.0-1        2.56.1-1                  0,01 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: extra/serd                   0.32.2-1        0.32.4-1                  0,00 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: extra/sord                   0.16.16-1       0.16.18-1                 0,00 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: extra/zix                    0.4.2-2         0.6.2-1                   0,01 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: Gesamtgröße des Downloads:  0,00 MiB
Jan 19 18:24:08 rk-7072 ureminder[1317]: :: Download fortsetzen? [J/n]
Jan 19 18:24:08 rk-7072 ureminder[1317]: Schlüsselbund wird geprüft …
Jan 19 18:24:08 rk-7072 ureminder[1317]: Paketintegrität wird geprüft …
Jan 19 18:24:12 rk-7072 sudo[1421]:     root : PWD=/ ; USER=ralf ; ENV=DISPLAY= DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus ; COMMAND=/usr/bin/notify-send '10 neue Pakete: 1.eos-bash-shared 2.fontconfig 3.libsecret 4.linux 5.linux-headers 6.pango 7.pangomm-2.48 8.serd 9.sord 10.zix' 'Sichere neue Dokumente!\\nAuto-Upgrade in -59 Minutens\\n' -t 0 -u normal -p
Jan 19 18:24:12 rk-7072 sudo[1421]: pam_unix(sudo:session): session opened for user ralf(uid=1000) by (uid=0)
Jan 19 18:24:12 rk-7072 sudo[1421]: pam_unix(sudo:session): session closed for user ralf
Jan 19 18:24:12 rk-7072 systemd[1]: ureminder.service: Deactivated successfully.
Jan 19 18:24:12 rk-7072 systemd[1]: ureminder.service: Consumed 4.101s CPU time, 244.3M memory peak.

  • Bearbeitet

"-59 Minutenes" geht ja gar nicht, nicht einmal von der Rechtschreibung her.
Frage: "Wo kommt das her?" Antwort: "im Zweifelsfall von mir!" LEIDER.

Ersteinmal Danke für die Rückmeldung.
Im Zweifelsfall, führst du exakt zur Minute 0 ein '# pacman -Syu' aus.

Was das ureminder Skript angeht .... schau ich dann mal was dafür verantwortlich ist.
Bei mir hat es eigentlich das getan was es sollte. Ich schau mal....

Frage wo kann der Tag eingestellt werden wann ein Auto-Upgrade erfolgen soll?
Es gibt die Option -d <num>.
Das regelt aber keinen exakten Zeitpunkt, sonder richtet sich danach wann das letzte Paket Upgrde erfolgt ist.
Wenn die Option auf -d 7 eingestellt ist, und du in dem Zeitraum manuel ein Upgrade fährst dann ist der Zeitpunkt="Letztes Upgrade+7 Tage".
Das Skript wird aber durch den systemd Timer ausgelöst. Das heißt, erst dann wenn der Timer das Skript auslöst und zu dem Zeitpunkt dann mehr als, in dem Fall 7 Tege seit dem letzten Upgrade vergangen ist, sollte ein auto upgrade duchgeführt werden.
So jedenfalls der Plan. '-30 min' oder '-59 min' geht natürlich gar nicht.
Danke erstmal für den Screenshot.

Hallo
Der Versuch von Heute sieht gut aus, nach dem Punkt 3. erfolgte ein "reboot" danach ist der Kernel "Linux rk-7072 6.12.10-arch1-1 " aktiv.
Mein Vorgehen war folgendes.

1. Den Timer ändern um das Script dann von Hand zu starten.
OnStartupSec=5min
#OnCalendar=daily

sudo systemctl stop ureminder.timer
sudo systemctl disable ureminder.timer

2.	Das Script als user starten.
ureminder -ad 1
Anzeige: Was nach dem Upgrade zu tun ist- EIN
Anzeige: Auto-Upgrade alle 1 Tage - EIN
error: Permission denied
==> no candidate packages found for pruning
==> no candidate packages found for pruning
/usr/bin/ureminder: Zeile 76: /var/pkg.lst: Keine Berechtigung
Fehler: Sie benötigen Root-Rechte, um diese Operation auszuführen.

3. Das Script als root starten.
sudo ureminder -ad 1
Anzeige: Was nach dem Upgrade zu tun ist- EIN
Anzeige: Auto-Upgrade alle 1 Tage - EIN
==> no candidate packages found for pruning
==> no candidate packages found for pruning
:: Paketdatenbanken werden synchronisiert …
....
dracut[I]: *** Creating initramfs image file '/boot/initramfs-linux.img' done ***

Frage warum wird go Installiert.
extra/go 2:1.23.5-1 223,40 MiB 39,78 MiB

  • tuxnix hat auf diesen Beitrag geantwortet.
    • Bearbeitet

    md_39118

    Ich hatte im ureminder.service in der Zeile ExecStart="/usr/bin/ureminder -ad 7" vergessen die Gänsefüßchen zu setzen. Desshalb lief der service nicht. (Ohne Füße können die Gänse nicht laufen)
    Zusätzlich gibt es jetzt ein schlichtes Sorry, you must be root wenn du versuchst das Skript als Benutzer auszuführen. "Dank, deiner Rückmeldung hier." Und ich habe ein AUR-Paket ureminder-git angelegt, auf dass du wechseln solltest, denn dort wird es dann schneller als bei dem Paket ohne -git Änderungen bzw. die Korrekturen geben. (Wenn es welche gibt)
    Du könntest also jetzt ein trizen -R ureminder ausführen und danach ein trizen -S ureminder-git, das spielt dann die Version 0.8.2-1 ein, dann funktioniert es.

    Weshalb das go Paket bei dir installiert ist, weiß ich nicht.
    Eigentlich wird das nur zum compilieren von Programmen benötigt (siehe hier) die mit go geschrieben sind. Was hast du sonst noch aus dem AUR installiert was go benötigt?

    Hallo
    Weshalb das go Paket bei dir installiert ist, weiß ich nicht, das solltest Du aber.
    Das go Paket ist eine Abhängigkeit vom pup, wird das zur Übersetzung der Meldungen benutzt?
    Hier nur ein Auszug aus der AUR Installation von ureminder, bei Bedarf kann ich das komplette log dazu liefern.

    #_gitauthor="tuxnix"
    #_gitbranch="master"
    # Maintainer: tuxnix <tuxnix@gmx.com>
    
    depends=('bash' 'curl' 'pup' 'systemd' 'libnotify' 'reflector' 'pacman-contrib')
    makedepends=('git')
    
    Repository      : AUR
    Name            : ureminder
    Version         : 0.8.1-1
    Maintainer      : tuxnix
    URL             : https://codeberg.org/tuxnix/ureminder
    AUR URL         : https://aur.archlinux.org/packages/ureminder
    License         : GLPv2-only
    Votes           : 1
    Popularity      : 1%
    Installed       : No
    Out Of Date     : No
    Depends On      : bash
                      curl
                      systemd
                      libnotify
                      reflector
                      pacman-contrib
                      pup
    Make Deps       : git
    Check Deps      : None
    Optional Deps   : None
    Provides        : None
    Conflicts With  : None
    Replaces        : None
    Package Base    : ureminder
    Last Update     : Sat Jan 18 16:16:11 2025
    Description     : Remind user upgrade packages and keeps package cache clean
    
    :: Cloning AUR package: pup
    
    # Maintainer: Adrian Perez de Castro <aperez@igalia.com>
    pkgdesc='Command line tool for processing HTML'
    pkgname=pup
    
    =>> Edit pup/PKGBUILD? [y/N]: n
    
    Repository      : AUR
    Name            : pup
    
    ==> Installiere fehlende Abhängigkeiten...
    
    Paket (1)  Neue Version  Netto-Veränderung  Größe des Downloads
    
    extra/go   2:1.23.5-1           223,40 MiB            39,78 MiB
    • tuxnix hat auf diesen Beitrag geantwortet.
      • Bearbeitet

      md_39118
      Danke, dass du da nachhakst, das werde ich mir wohl nochmal gesondert anschauen müssen.

      Übrigens: Es gibt inzwischen die 0.8.2-2 Version für das ureminder-git Paket.
      Wenn du schon auf dem git Zweig bist, genügt ein trizen -Syu zum upgraden.
      Geändert hat sich die Einstellung im ureminder.timer in OnUnitActiveSec=24hours anstatt wie bisher OnCalendarSec=daily.

      Mit OnCalendarSec=daily läuft das Stript immer um 00:00 Uhr.
      Bei OnUnitActiveSec synchronisiert sich das script mit den Gewohnheiten des users, mit den Zeiten wann der Rechner einschaltet wird. Außerdem kann man damit auch Intervalle von z.B. 12 oder 6 Stunden einstellen, wenn man öfters an ein upgrade erinnert werden möchte.

      Ich werde den ureminder-git Zweig zum Testen von kleinen Änderungen nutzen.
      Der ureminder Zweig ist dann eher für deine Kumpels gedacht, dort sollte es stable laufen.

      • Bearbeitet

      md_39118
      Ich habe nachgeschaut.
      Du hast recht: 'pup' ist unnötig für das ureminder script.
      Ich habe die Abhängigkeit von pup jetzt herausgenommen.
      ureminder-git 0.8.2-3 ist online.

      trizen -R pup ureminder-git
      trizen -S ureminder-git

      So müsste es klappen.

      (go war auf meinen Rechner nicht installiert, deshalb weiß ich auch nicht wie du dazu gekommen bist. Deinstalliere es einfach. Wenn pacman dabei meckert dann weißt du warum.)

      Hallo
      Der Test Heute war ernüchternd aber der Reihe nach. Morgen wird es noch einen Test geben.
      Bevor die ureminder-git Version Installiert wird, wurde alles alte gelöscht.

      trizen -Rdd pup
      trizen -Rdd go
      trizen -Rdd ureminder
      trizen -S ureminder-git
      reboot

      Der 1 Start. Hier ein Auszug aus dem Log und das Bild dazu.

      Jan 25 17:27:54 rk-7072 systemd[1]: Started ureminder.service.
      Jan 25 17:27:54 rk-7072 ureminder[1258]: Display message: What's to do when upgrading - ON
      Jan 25 17:27:54 rk-7072 ureminder[1258]: Auto upgrade every 7 days - ON
      Jan 25 17:27:56 rk-7072 ureminder[1265]: ==> finished: 1 packages removed (disk space saved: 39.78 MiB)
      Jan 25 17:27:56 rk-7072 ureminder[1284]: ==> finished: 3 packages removed (disk space saved: 7.16 MiB)
      Jan 25 17:28:24 rk-7072 ureminder[1306]: Paket (25)                   Alte Version            Neue Version              Netto-Veränderung  Größe des Downloads
      Jan 25 17:28:24 rk-7072 ureminder[1306]: Gesamtgröße des Downloads:  153,62 MiB
      Jan 25 17:29:02 rk-7072 ureminder[1306]:  llhttp-9.2.1-2-x86_64 wird heruntergeladen …
      Jan 25 17:29:02 rk-7072 ureminder[1306]: Schlüsselbund wird geprüft …
      Jan 25 17:29:02 rk-7072 ureminder[1306]: Paketintegrität wird geprüft …
      Jan 25 17:29:06 rk-7072 systemd[1]: ureminder.service: Deactivated successfully.
      Jan 25 17:29:06 rk-7072 systemd[1]: ureminder.service: Consumed 10.401s CPU time, 232.5M memory peak.
      reboot

      Vor dem 2 Start wurde der timer und service geändert um mit journalctl -f alles sehen zu können.

      sudo nano /usr/lib/systemd/system/ureminder.timer
      OnStartupSec=5min
      sudo nano /usr/lib/systemd/system/ureminder.service
      ExecStart=/usr/bin/ureminder -ad 1
      
      Der 2 Start. Hier ein Auszug aus dem Log und das Bild dazu.
      Jan 25 17:52:20 rk-7072 ureminder[1225]: Auto upgrade every 7 days - ON
      Jan 25 17:52:21 rk-7072 ureminder[1233]: ==> finished: 1 packages removed (disk space saved: 30.56 KiB)
      Jan 25 17:52:21 rk-7072 ureminder[1252]: ==> finished: 18 packages removed (disk space saved: 142.22 MiB)
      Jan 25 17:52:47 rk-7072 ureminder[1274]:  llhttp-9.2.1-2-x86_64 wird heruntergeladen …
      Jan 25 17:52:47 rk-7072 ureminder[1274]: Schlüsselbund wird geprüft …
      Jan 25 17:52:48 rk-7072 ureminder[1274]: Paketintegrität wird geprüft …
      Jan 25 17:52:52 rk-7072 systemd[1]: ureminder.service: Deactivated successfully.
      Jan 25 17:52:52 rk-7072 systemd[1]: ureminder.service: Consumed 4.274s CPU time, 228.8M memory peak.
      reboot

      Der 3 Start. Hier ein Auszug aus dem Log und das Bild dazu.

      sudo ureminder -ad 1
      Display message: What's to do when upgrading - ON
      Auto upgrade every 7 days - ON
      ==> finished: 1 packages removed (disk space saved: 30.56 KiB)
      ==> no candidate packages found for pruning
      :: Pakete werden empfangen …
       llhttp-9.2.1-2-x86_64                                                                                             30,3 KiB   840 KiB/s 00:00 
      (25/25) Paket-Integrität wird überprüft                                                                                                       
      Das wars.
      reboot 

      Der 4 Start. Hier habe ich mitbekommen das es jetzt eine config Datei gibt, und den DAY auf 1 geändert.

      ls -la /etc/ureminder.config
      -rw-r--r-- 1 root root 704 25. Jan 17:05 /etc/ureminder.config
      sudo nano /etc/ureminder.config

      Donnerwetter der erste erfolgreiche Lauf.
      Wieder ein Auszug aus dem Log und das Bild dazu.

      sudo ureminder
      Display message: What's to do when upgrading - ON
      Auto upgrade every day - ON
      :: Vollständige Systemaktualisierung wird gestartet …
      Abhängigkeiten werden aufgelöst …
      Gesamtgröße der installierten Pakete:  591,00 MiB
      Größendifferenz der Aktualisierung:    -43,85 MiB
      :: Post-transaction-Hooks werden gestartet …
      (13/13) Updating the vlc plugin cache...

      • tuxnix hat auf diesen Beitrag geantwortet.
        • Bearbeitet

        Ich sehe nur, dass wieder "minus Minuten" als nächsten Upgradezeitpunt angzeigt werden.
        Ist es das, was du mir zeigen möchtest?
        Ich weiß jetzt nicht welchen Gegenstand deine Tests haben.

        Es könnte sein, dass beim ersten Lauf nachdem der systemd-timer neu anläuft vom script falsche Zeiten berechnet werden. Um zu sehen was da geschieht, kannst du das script mal zwischendurch manuell auf der konsole mit der -b Option laufen lassen. Dann siehst du genau wie das script sich da was zusammen rechnet. Wenn man weiß, weshalb, dann kann man das auch im script abfangen. Ich habe bisher leider noch keine "minus Minuten" bei mir gesehen obwohl ich darauf gelauert habe. Wenn du dann ein reboot durchführst, dann muss der Timer auch wieder neu starten und es passiert dann wieder das selbe. Besser wäre es mal zu schauen ob beim zweiten mal, wenn der Timer auslöst, das Problem behoben ist. Das gäbe ein Hinweis auf die Ursache.
        (Das Script bezieht seine Zahlen von dem was der Timer protokolliert. Es könnte sein, dass beim ersten Lauf noch keine Synchronizität besteht.)
        Falls das Problem mit der falschen Berechnung bei dir weiter bestehen sollte, bau ich dir eine Funktion ein, bei der das dann protokolliert wird. Dann können wir zusammen schauen.
        Jedenfalls sehe ich auf den screenshots und dem journal nur dass, aber nicht weshalb das passiert.

        Zu den Neuerungen:
        Gehe mal nach https://codeberg.org/tuxnix/ureminder
        Dort siehst du was sich wann genau am script tut.
        Wenn du ein trizen -S ureminder-git durchführst bist du immer auf dem aktuellen Stand.
        Auch versuche ich, die Dokumentation dort einigermaßen aktuell zu halten.
        (Ein screenshot von dir steht auch schon da 😉 )

        Führe mal ein cp /etc/ureminder.config ~/.config/ureminder.config
        durch.
        Sinn der ~/.config/ureminder.config ist, dass man dort mit Userrechten das script auf seine eigenen Bedürfnisse einstellen kann.

        Man kann die Liste der GUIs kürzen, dann läuft das script ein klein wenig schneller, oder man ergänzt die Liste, wenn die eigene GUI dort noch nicht gelistet ist.
        (Erfährt dann die dort gelistete GUI ein upgrade, dann erscheint falls diese GUI gerade aktiv läuft auch eine Mitteilung, dass man die usersession nach dem upgrade neu starten soll.

        Das Gleiche bei den APPS.
        In der Liste sollen die Programme stehen, mit denen der User auch arbeitet.
        Der Hinweis "Sichere neue Dokumente" entfällt. In Zukunft soll dort nur noch so etwas wie "Speichere deine libreoffice Dokumente ab" und "führe ein # pacman -Syu aus" "starte libreoffice nach dem upgrade neu" stehen. Natürlich nur dann wenn der user auch gerade liebreoffice am laufen hat. Nur dann macht so ein Hinweis auch Sinn.

        Die Option -a ist eine Hilfe für beginners die damit an die Hand genommen werden sollen.
        Der Anfänger weiß nicht was passiert wenn er ein # pacman -Syu tätigt und traut sich deshalb nicht. Die Hinweise sagen ihm: "Hey was soll denn groß passieren, speichere deinen eigenen Kram ab und hinterher startest du die Anwendung oder die GUI neu (die gerade ein upgrade erfährt), dann bist du auf der sicheren Seite.
        Außerdem haben die meisten Umsteiger von Windows her gelernt, ihrem eigen Verstand zu misstrauen, aber alles zu tun was ihnen ein Computer erzählt. Das möchte ich hier nutzen, damit ein völliger newbe mal den Einstieg schafft.

        Den systemd timer stellt man wie bisher mit Rootrechen mit z.B.:

        # nano /usr/lib/systemd/system/ureminder.timer
        systemctl reenable ureminder.timer

        ein. Neu ist, dass man jetzt Stundenintervalle wählen kann in denen das script starten soll.
        Für Testzecke ist es nicht verkehrt hier =1hours oder 2hours stehen zu haben.
        Das automatisch upgrade wir wie bisher maximal nur ein mal täglich durchgeführt.

        Neu hinzugekommen mit der config ist auch die Möglichkeit die Adv (advice-function Option -a ) mit userrechten anstellen zu können, und auch die Intervalle eines automatische Upgrades (days=7) kann man jetzt dort recht einfach regeln.

        Im ureminder.service steht deshalb nur noch ein ExecStart=/usr/bin/ureminder ohne Optionen!

        Orientierend gilt: Die Angaben der /etc/ureminder.config gelten nicht, wenn es eine ~/.config/ureminder.config gibt. Und mit den Optionen kann man, wenn man das script manuell auslöst auch zusätzlich mal eine Option hinzuschalten. (wie z.B. die Option -b wenn man wissen will, wie das script intern tickert.)

        Ganz neu hinzugekommen ist die Möglichkeit, ein geplantes Auto Upgrade komplett zu unterbinden, wenn Pakete ein Upgrade erfahren sollen, die für den User sensibel sind und Zeit der Nachsorge bedürfen.

        @GerBra hat diesen Punkt ganz am Anfang der Diskussion erwähnt.
        Er schaut sich immer genau die Liste der upgrades an und wählt falls etwas Sensibles darunter ist, einen Zeitpunkt bei dem er auch die Zeit für eine eventuelle Nachsorge hat.
        Diesen Zweck soll die neue Funktion erfüllen.

        Steht ein upgrade eines sensiblen Paketes an. Gibt es auf dem Desktop einen roten Warnhinweis bis der user das upgrade selbst durchgeführt hat:

        Die nächsten Tage wird nichts wesentlich Neues hinzukommen.
        Aber die jeweiligen notify-send Meldungen erfahren eine Überarbeitung.
        Neue Meldungen erscheinen dann erst einmal auf Englisch. Alte auf Deutsch.
        Und bei der config muss ich auch noch daran arbeiten, dass unsinnige Eintragungen abgefangen werden. Also bitte nicht wundern wenn noch nicht sofort alles ganz perfekt ist.
        Und Danke wie immer für deine Rückmeldungen.

        • Bearbeitet

        md_39118
        Es logged jetzt automatisch, wenn du ein trizen -S ureminder tätigst.
        (Habe im Skript eine Option -l hinzugefügt und im service ein -l gesetzt)

        Wenn dann wieder "minus Minuten" auftauchen, kannst du einen Blick in die
        /var/log/ureminder.log werfen und den Inhalt hier posten. Dort wird immer nur der letzte Aufruf notiert.

        Hallo
        Erstmal Danke für die ausführliche Beschreibung. Ja die "minus Minuten" Anzeige ist Unglücklich.
        Der Test von Heute ist auch sonderbar, das Script läuft findet zwei Dateien macht aber nichts.
        Bringt die Meldung aus dem Bild "Vor 7 min" danach wurde kopiert und Installiert, die Version war die gleiche wie vorhanden.

        cp /etc/ureminder.config ~/.config/ureminder.config
        trizen -S ureminder-git

        Dann wurde ohne reboot nochmal gestartet es wird eine log Datei angelegt und am Ende die Meldung aus dem Bild "Vor 2 min" erzeugt.
        Möglicherweise ist der Fehler in der Log Datei zu sehen.

        sudo ureminder -ald 1

        Ups wie bekomme ich die log.zip hier rein ?

        • tuxnix hat auf diesen Beitrag geantwortet.
          • Bearbeitet

          md_39118
          Zur Versionierung von ureminder:
          Ich hebe nicht immer die Revisionsnummer im AUR an, wenn ich nur eine kleine Änderung einspiele. Wenn du ein trizen -S ureminder tätigst dann bekommst du immer alles neu, so wie es bei Codeberg aktuell steht. Dort kannst du auch sehen, was sich wann und in welcher Datei genau geändert hat.
          Zum Timer:
          Jedes mal wenn du ureminder upgradest wird auch der timer neu gestartet. Jedes mal wenn du den PC hoch fährst auch. interessant wäre es zu schauen, ob der Rechenfehler weg ist, wenn der timer zum zweiten mal auslöst. Der timer steht aber auf 24hours und deshalb siehst du das wahrscheinlich nie. Stelle den timer mal auf z.B. 15min oder 1hours und schau was dann passiert.
          # nano /usr/lib/systemd/system/ureminder.timer Eintag ändern. Danach Strg+o, Enter, Strg+x.
          Und dann ein # systemctl reenable ureminder.timer und sichere dir die logs in eine andere Datei. (Die -l Option überschreibt jedes mal das alte log, damit hier keine riesengroße Datei entstehen kann.)

          Zum Posten der /var/log/ureminder.log:
          Öffne die Datei mit einem Editor z.B. kate. Markiere alles (STRG+A). Kopieren drücken (STRG+C).
          Und poste den Inhalt (Strg+V) hier im Forum. Vergiss nicht davor und hinter dem code eine Zeile mit diesen drei Zeichen ``` einzufügen damit es hier auch als 'code block' erscheint!

          Du kannst aber auch vorher mal selbst schauen woran es denn liegen könnte.
          Vielleicht findest du ja meinen Fehler. (Es ist alles nur +-* und \ Rechnung). 😉
          Ab der Zeile # Days, hours and minutes till next auto upgradewird gerechnet.
          Es wird immer in der Einheit Sekunden gerechnet.
          Die Variablen sind so benannt:

          • NOW - sind die Sekunden die seit der "Geburt von UNIX" vergangen sind also ab 1.1.1970
          • LPUU - wird der pacman.log entnommen und ist der Zeitpunkt vom 'Last Pacman upgrade` auch in UNIX Zeit.
          • LPU - Die Differenz aus den beiden
          • NPU - das 'Next Package Upgrade' - Also dann wann, von 'jetzt' ab gerechnet das nächste upgrade kommen darf, unter er Voraussetzung, dass das autoupgrade maximal nur einmal in 24Stunden sprich einmal in 86400 Sekunden, mal der Zahl, die man für das 'days Intervall' gesetzt hat, erwünscht ist.
            Ich denke, hier könnte der Fehler sein. Schau mal ob bei dir NPU negativ wird.

          Wenn der Fehler dort nicht ist, dann schauen wir den Rest später durch. Da geht es dann darum zu berechnen wann, je nach Einstellung, der Timer auslösen wird, um das gewünschte autoupgrade dann auch ausführen zu können.

          • Bearbeitet

          md_39118
          Version ureminder 0.9.1-1 ist online

          • Einige Anzeigen konkreter gestaltet, Singular-Plural unterschieden
          • Deutsche Übersetzung
          • user config file
          • Prüfen der Eingabewerte für Adv=, Days=

          Nur die "Zeitmaschiene" die bei dir ein Paketupgrade in der Vergangenheit vornehmen möchte, muss noch gestoppt werden. 😉

          Nach einem ureminder upgrade mit trizen -Syu ureminder sollte auch die config nocheinmal mit userrechten kopiert werden
          $ cp /etc/ureminder.config ~/.config/ureminder.config
          oder alternativ der Eintrag 'days=` zu 'Days=' in der ~/.config/ureminder.config abgeändert werden.

          Hallo
          Hier die Log Datei warum geht es nicht als zip ?
          Kann die Log Datei nicht mit dem Start Datum von ureminder geschrieben werden.
          Ich kann erst am Wochenende nochmal Testen.

          + getopts :abd:hlv option
          + case $option in
          + re='^[0-9]+$'
          + [[ 1 =~ ^[0-9]+$ ]]
          + '[' 1 -lt 1 ']'
          + days=1
          + getopts :abd:hlv option
          
          if [[ $adv == "true" ]] || [[ $Adv == "true" ]]; then do=1 && echo $"Display message: What's to do when upgrading - ON"; fi
          + [[ true == \t\r\u\e ]]
          + do=1
          + echo 'Display message: What'\''s to do when upgrading - ON'
          Display message: What's to do when upgrading - ON
          if [ $Days ]; then days=$Days; fi
          + '[' 7 ']'
          + days=7
          if [ $days -eq 1 ]; then echo $"Auto upgrade every day - ON"; fi
          + '[' 7 -eq 1 ']'
          if [ $days -gt 1 ]; then echo $"Auto upgrade every $days days - ON"; fi
          + '[' 7 -gt 1 ']'
          + echo 'Auto upgrade every 7 days - ON'
          Auto upgrade every 7 days - ON
          
          # error db.lck
          if [ $(pgrep pacman) ]; then
              send $"Error: Pacman is busy" "Is there another app upgrading your system?" -a ureminder -t 0 -u critical
              exit 1
          elif [ -f /var/lib/pacman/db.lck ] && [ ! $(pgrep pacman) ]; then
              send $"Error: Pacman database locked" "<a href='https://wiki.archlinux.org/title/Pacman#%22Failed_to_init_transaction_(unable_to_lock_database)%22_error'>How to solve the problem</a>" -a ureminder -t 0 -u critical
              exit 1
          fi
          ++ pgrep pacman
          + '[' ']'
          + '[' -f /var/lib/pacman/db.lck ']'
          
          # update mirrors
          reflector --age 5 --delay 0.25 --protocol https --latest 5 --save /etc/pacman.d/mirrorlist || Error="reflector --age 5 --delay 0.25 --protocol https --latest 5"
          + reflector --age 5 --delay 0.25 --protocol https --latest 5 --save /etc/pacman.d/mirrorlist
          
          # del PKGS from cache which are not installed anymore
          paccache -ruk0 || Error="paccache -ruk0"
          + paccache -ruk0
          ==> no candidate packages found for pruning
          
          # keep current package and last for downgrade purpose
          paccache -rk2 || Error="paccache -rk2"
          + paccache -rk2
          ==> no candidate packages found for pruning
          
          # list all installed packages
          pacman -Qqe > /var/pkg.lst || Error="pacman -Qqe"
          + pacman -Qqe
          
          # download new packages
          pacman -Syuw --noconfirm || Error="# pacman -Syuw"
          + pacman -Syuw --noconfirm
          :: Paketdatenbanken werden synchronisiert …
           endeavouros wird heruntergeladen …
           core wird heruntergeladen …
           extra wird heruntergeladen …
           multilib wird heruntergeladen …
          :: Vollständige Systemaktualisierung wird gestartet …
          Abhängigkeiten werden aufgelöst …
          
          Paket (2)                    Alte Version  Neue Version  Netto-Veränderung
          
          extra/abseil-cpp             20240722.0-1  20240722.1-1           0,00 MiB
          endeavouros/eos-bash-shared  25.1.8-1      25.1.9-1               0,00 MiB
          
          Gesamtgröße des Downloads:  0,00 MiB
          
          :: Download fortsetzen? [J/n] 
          Schlüsselbund wird geprüft …
          Paketintegrität wird geprüft …
          
          # check for PKGS upgrades available
          PKGS=($(pacman -Qu | awk '{print $1}')) || Error="pacman -Qu"
          + PKGS=($(pacman -Qu | awk '{print $1}'))
          ++ pacman -Qu
          ++ awk '{print $1}'
          
          Nr=0
          + Nr=0
          for PKG in ${PKGS[@]}; do
            Nr=$(($Nr+1))
            PK+=("$Nr.$PKG")
          done
          + for PKG in ${PKGS[@]}
          + Nr=1
          + PK+=("$Nr.$PKG")
          + for PKG in ${PKGS[@]}
          + Nr=2
          + PK+=("$Nr.$PKG")
          
          # KERNEL upgrade
          KERNEL=$(cat /proc/version | awk '{ print $4}'| sed -e 's/(//' -e 's/@.*//')
          ++ cat /proc/version
          ++ awk '{ print $4}'
          ++ sed -e 's/(//' -e 's/@.*//'
          + KERNEL=linux
          for i in ${PKGS[*]}; do
            if [[ $KERNEL == $i ]]; then
              RKERNEL=$i
            fi
          done
          + for i in ${PKGS[*]}
          + [[ linux == abseil-cpp ]]
          + for i in ${PKGS[*]}
          + [[ linux == eos-bash-shared ]]
          
          # GUI upgrade
          for j in ${GUIs[@]}; do
            if [ $(pgrep -fc $j) -gt "0" ]; then
              for l in ${PKGS[@]}; do
                if [[ $l == $j ]]; then
                  GUI=$j
                fi
              done
            fi
          done
          + for j in ${GUIs[@]}
          ++ pgrep -fc awesome
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc budgie-session
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc cinnamon-desktop
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc deepin-daemon
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc gnome-shell
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc hyprland
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc i3
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc lxsession
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc lxqt-session
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc mate-desktop
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc plasma-desktop
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc sway
          + '[' 0 -gt 0 ']'
          + for j in ${GUIs[@]}
          ++ pgrep -fc xfce4-session
          + '[' 0 -gt 0 ']'
          
          # Witch of in config file noted applicatins get's a package upgrade
          for m in ${PKGS[*]}; do
            for n in ${APPS[*]};do
              if [[ "$m" == "$n" ]]; then
                UAPPS+=($n)
              fi
            done
          done
          + for m in ${PKGS[*]}
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \f\i\r\e\f\o\x ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \l\i\b\r\e\w\o\l\f ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \k\a\t\e ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \v\i\m ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \l\i\b\r\e\o\f\f\i\c\e\-\s\t\i\l\l ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \l\i\b\r\e\o\f\f\i\c\e\-\f\r\e\s\h ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \g\i\m\p ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \i\n\k\s\c\a\p\e ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \k\d\e\n\l\i\v\e ]]
          + for n in ${APPS[*]}
          + [[ abseil-cpp == \r\e\t\e\x\t ]]
          + for m in ${PKGS[*]}
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \f\i\r\e\f\o\x ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \l\i\b\r\e\w\o\l\f ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \k\a\t\e ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \v\i\m ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \l\i\b\r\e\o\f\f\i\c\e\-\s\t\i\l\l ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \l\i\b\r\e\o\f\f\i\c\e\-\f\r\e\s\h ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \g\i\m\p ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \i\n\k\s\c\a\p\e ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \k\d\e\n\l\i\v\e ]]
          + for n in ${APPS[*]}
          + [[ eos-bash-shared == \r\e\t\e\x\t ]]
          
          # Exchange libreoffice pkg-name with app-name
          if [[ "${UAPPS[@]/libreoffice-still/}" != "${UAPPS[@]}" ]]; then
              UAPPS=("${UAPPS[@]/libreoffice-still}")
              UAPPS+=("libreoffice")
          elif [[ "${UAPPS[@]/libreoffice-fresh/}" != "${UAPPS[@]}" ]]; then
              UAPPS=("${UAPPS[@]/libreoffice-fresh}")
              UAPPS+=("libreoffice")
          fi
          + [[ '' != '' ]]
          + [[ '' != '' ]]
          
          # Witch of U-Application is running
          for k in ${UAPPS[@]}; do
            if [ $(pgrep -fc $k) -eq "0" ]; then
              RUAPPS=("${UAPPS[@]/$k}")
            fi
          done
          
          # Exchange app-name with pkg-name
          #if [[ "${APPS[@]/libreoffice/}" != "${APPS[@]}" ]]; then
          #    APPS=("${APPS[@]/libreoffice}")
          #    APPS+=("libreoffice-fresh")
          #    APPS+=("libreoffice-still")
          #fi
          
          for m in ${PKGS[*]}; do
            for n in ${StopUpgd[*]};do
              if [[ "$m" == "$n" ]]; then
                UStopUpgd+=($n)
              fi
            done
          done
          + for m in ${PKGS[*]}
          + for n in ${StopUpgd[*]}
          + [[ abseil-cpp == \a\p\a\c\h\e ]]
          + for n in ${StopUpgd[*]}
          + [[ abseil-cpp == \p\h\p ]]
          + for n in ${StopUpgd[*]}
          + [[ abseil-cpp == \o\p\e\n\s\s\h ]]
          + for n in ${StopUpgd[*]}
          + [[ abseil-cpp == \g\n\o\m\e\-\s\h\e\l\l ]]
          + for m in ${PKGS[*]}
          + for n in ${StopUpgd[*]}
          + [[ eos-bash-shared == \a\p\a\c\h\e ]]
          + for n in ${StopUpgd[*]}
          + [[ eos-bash-shared == \p\h\p ]]
          + for n in ${StopUpgd[*]}
          + [[ eos-bash-shared == \o\p\e\n\s\s\h ]]
          + for n in ${StopUpgd[*]}
          + [[ eos-bash-shared == \g\n\o\m\e\-\s\h\e\l\l ]]
          
          # Days, hours and minutes till next auto upgrade
          NOW=$(date --date='now' +%s)
          ++ date --date=now +%s
          + NOW=1737899776
          LPUU=$(date -d $(awk '/upgraded/ { print $1 }' /var/log/pacman.log | tail -1 | sed -e 's/\[//' -e 's/\]//') +%s)
          +++ awk '/upgraded/ { print $1 }' /var/log/pacman.log
          +++ tail -1
          +++ sed -e 's/\[//' -e 's/\]//'
          ++ date -d 2025-01-25T18:13:19+0100 +%s
          + LPUU=1737825199
          LPU=$((NOW-LPUU))
          + LPU=74577
          NPU=$((days*86400-LPU))
          + NPU=530223
          TIMER=( $(journalctl -u ureminder.service -g Started -o short-unix | tail -2 | awk '{print substr($1, 1, length($1) -7)}') )
          + TIMER=($(journalctl -u ureminder.service -g Started -o short-unix | tail -2 | awk '{print substr($1, 1, length($1) -7)}'))
          ++ journalctl -u ureminder.service -g Started -o short-unix
          ++ tail -2
          ++ awk '{print substr($1, 1, length($1) -7)}'
          #if [ $((TIMER + NPU)) -gt $NOW ]; then TIMER=
          PERIOD=$((${TIMER[1]}-${TIMER[0]}))
          + PERIOD=-1737898907
          COUNT=$((NPU/PERIOD))
          + COUNT=0
          CREST=$((NPU%PERIOD))
          + CREST=530223
          NTU=$((COUNT*PERIOD))
          + NTU=0
          if [ $CREST -eq 0 ]; then
              NU=$NPU
          else
              NU=$(($NPU+PERIOD))
          fi
          + '[' 530223 -eq 0 ']'
          + NU=-1737368684
          DAYS=$((NU/86400))
          + DAYS=-20108
          DREST=$((NU%86400))
          + DREST=-37484
          HOURS=$((DREST/3600))
          + HOURS=-10
          HREST=$((DREST%3600))
          + HREST=-1484
          MINUTES=$((HREST/60))
          + MINUTES=-24
          
          # Messages
          if [ ${#PKGS[*]} -eq 1 ]; then
          PKMESS=$"One new package: ${PK[*]}"
          elif [ ${#PKGS[*]} -ge 2 ]; then
          PKMESS=$"${#PKGS[*]} new packages: ${PK[*]}"
          fi
          + '[' 2 -eq 1 ']'
          + '[' 2 -ge 2 ']'
          + PKMESS='2 neue Pakete: 1.abseil-cpp 2.eos-bash-shared'
          
          if [ ${#RUAPPS[@]} -ge 1 ]; then
            SAVE=$"Save ${RUAPPS[@]} documents!\n"
          fi
          + '[' 0 -ge 1 ']'
          
          SYU=$"Run '# pacman -Syu' on terminal!\n"
          + SYU='Führe ein '\''# pacman -Syu'\'' im Terminal aus!\n'
          
          if [ $NU -ge 86400 ];  then NextUg=$"Next auto upgrade in $DAYS days\n"
          elif [ $NU -ge 3600 ]; then NextUg=$"Next auto upgrade in $HOURS hours\n"
          else NextUg=$"Next auto upgrade in $MINUTES minutes\n"
          fi
          + '[' -1737368684 -ge 86400 ']'
          + '[' -1737368684 -ge 3600 ']'
          + NextUg='Auto-Upgrade in -24 Minuten\n'
          
          if [[ "$RKERNEL" != "" ]] && [[ $GUI != "" ]]; then
              MESS=$"GUI and kernel upgrade:"
              DO=$"Restart your system"
          elif [[ "$RKERNEL" != "" ]]; then
              MESS=$"$RKERNEL upgrade:"
              DO=$"Restart your system"
          elif [[ $GUI != "" ]]; then
              MESS=$"$GUI upgrade:"
              DO=$"Restart your usersesson!\n"
          elif [ ${#UAPPS[*]} -gt "0" ]; then
              MESS=$"Application upgrade:"
              DO=$"Restart ${UAPPS[*]}!\n"
          else
              MESS=$"Upgrade successfull:"
              DO=$"Nothing else to do!\n"
          fi
          + [[ '' != '' ]]
          + [[ '' != '' ]]
          + [[ '' != '' ]]
          + '[' 0 -gt 0 ']'
          + MESS='Upgrade durchgeführt:'
          + DO='Nothing else to do!\n'
          
          if [ ${#UStopUpgd[@]} -ge 1 ]; then
            days=""
            send $"New version ${UStopUpgd[@]} arrived" $"$SYU$PKMESS" -a ureminder -t 0 -u critical
            exit 1
          fi
          + '[' 0 -ge 1 ']'
          
          # Auto upgrade
          if [ $days ] && [ "$(((LPU)/days))" -ge "86400" ] && [ "${#PKGS[*]}" -gt "0" ]; then
            NID=$(send  $"Upgrade starts in 1 minute:" $"$SAVE" -a ureminder -t 0 -u normal -p)
            sleep 60
            NID=$(send $"Upgrading:" $"Keep system running!" -a ureminder -t 0 -u critical -r $NID -p)
            pacman -Syu --noconfirm || Error="# pacman -Syu"
            send "$MESS" "$DO" -a ureminder -t 0 -u normal
          
          elif [ "${#PKGS[*]}" -gt "0" ]; then
          
              if  [ $do ] && [ $days ]; then send "$PKMESS" "$SAVE$SYU$DO$NextUg" -a ureminder -t 0 -u normal
            elif [ $days ]; then send "$PKMESS" "$NextUg" -a ureminder -t 0 -u normal
            elif [ $do ]; then send "$PKMESS" "$SAVE$SYU$DO" -a ureminder -t 0 -u normal
            else send "$PKMESS" -a ureminder -t 0 -u normal
            fi
          
          fi
          + '[' 7 ']'
          + '[' 10653 -ge 86400 ']'
          + '[' 2 -gt 0 ']'
          + '[' 1 ']'
          + '[' 7 ']'
          + send '2 neue Pakete: 1.abseil-cpp 2.eos-bash-shared' 'Führe ein '\''# pacman -Syu'\'' im Terminal aus!\nNothing else to do!\nAuto-Upgrade in -24 Minuten\n' -a ureminder -t 0 -u normal
          ++ who -T
          ++ awk '/+/{print $1}'
          ++ head -1
          + TUSER=ralf
          ++ id -u ralf
          + sudo -u ralf DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send '2 neue Pakete: 1.abseil-cpp 2.eos-bash-shared' 'Führe ein '\''# pacman -Syu'\'' im Terminal aus!\nNothing else to do!\nAuto-Upgrade in -24 Minuten\n' -a ureminder -t 0 -u normal
          
          # error message
          if  [ "$Error" != "" ]; then
            send $"Error: $Error" $"To analyse run this command on terminal!" -a ureminder -t 0 -u critical
          fi
          + '[' '' '!=' '' ']'
          • tuxnix hat auf diesen Beitrag geantwortet.
            • Bearbeitet

            zip kann man hier im forum nicht lesen.

            Das Start Datum von ureminder ist da:
            NOW=1737899776 UNIX Zeit in Sekunden
            oder übersetzt
            Sonntag, der 26.01.2025 um 14:56:16
            Das letzte Upgrade wurde laut pacman.log
            am 2025-01-25T18:13:19+0100 gefahren.
            LPU=74577 also 20 Stunden und 43 Minuten zuvor.
            Als days= war 7 eingestellt.
            Das gewünschte Update soll frühestens in NPU=530223 sec. stattfinden.
            Also von NOW an gut 6 Tage später.
            Soweit ist alles o.k.

            Aber dann beim Timer wird es richtig lustig.
            Geb doch mal bitte fogendes in die Konsole ein:

            journalctl -u ureminder.service -g Started | tail -2

            und

            journalctl -u ureminder.service -g Started -n2 -r

            und poste bitte was dann ausgegeben wird.

            Hallo
            Hier die Abfragen.

            journalctl -u ureminder.service -g Started | tail -2
            -- Boot 3d78464c3baf4cffa898c53503d72919 --
            Jan 26 14:41:47 rk-7072 systemd[1]: Started ureminder.service.
            #
            journalctl -u ureminder.service -g Started -n2 -r
            Jan 26 14:41:47 rk-7072 systemd[1]: Started ureminder.service.
            -- Boot 661856d8798d4f7fab8f6c4938066624 --
            Jan 25 17:52:20 rk-7072 systemd[1]: Started ureminder.service.
            #
            journalctl --list-boots -n10
            IDX BOOT ID                          FIRST ENTRY                 LAST ENTRY
             -9 39bc580cc5bc42529bf26ac90f0bf78e Sun 2025-01-19 20:34:03 CET Sun 2025-01-19 20:56:26 CET
             -8 1bc8cb1175d64336b499f702f7ba8c1e Mon 2025-01-20 14:48:30 CET Mon 2025-01-20 15:05:26 CET
             -7 0363700ce24646f0996e1d3ce4d0f6ac Mon 2025-01-20 15:05:41 CET Mon 2025-01-20 15:11:02 CET
             -6 4dd4b532c8b543f09c4c1a3005150f88 Sat 2025-01-25 16:47:15 CET Sat 2025-01-25 16:52:35 CET
             -5 09b11cddfe4d4c858037a723e65ae03d Sat 2025-01-25 16:53:03 CET Sat 2025-01-25 17:22:33 CET
             -4 035fdbf3dc0b4ee1ab412971475eccdb Sat 2025-01-25 17:22:48 CET Sat 2025-01-25 17:39:44 CET
             -3 46793ca7af26424485fd039e33c36ff4 Sat 2025-01-25 17:39:59 CET Sat 2025-01-25 17:46:34 CET
             -2 661856d8798d4f7fab8f6c4938066624 Sat 2025-01-25 17:46:49 CET Sat 2025-01-25 18:19:46 CET
             -1 3d78464c3baf4cffa898c53503d72919 Sun 2025-01-26 14:36:45 CET Sun 2025-01-26 15:08:48 CET
              0 0f2dc414d3f94f73ab1e76ebe700f358 Mon 2025-01-27 20:30:45 CET Mon 2025-01-27 20:35:38 CET
            #
            • Bearbeitet

            Danke!
            Sehr interssant was Endevour mit dem journal macht.

            Bei mir sieht die Ausgabe so aus:

            [matthias@leno1 ~]$ journalctl -u ureminder.service -g Started | tail -2
            Jan 27 21:57:43 leno1 systemd[1]: Started ureminder.service.
            Jan 27 23:58:00 leno1 systemd[1]: Started ureminder.service.

            Im skript wird der Befehl erweitert damit man zwei Zahlen (Unix Sekunden) erhält mit denen man rechnen kann:

            [matthias@leno1 ~]$ journalctl -u ureminder.service -g Started -o short-unix | tail -2 | awk '{print substr($1, 1, length($1) -7)}'
            1738011463
            1738018680

            Aber Endevour mogelt noch eine Zeile mit rein "------boot ...". Gib mal spaßeshalber den letzten Befehl bei dir ein, und schau einmal was dann passiert. Wenn man dann die erste Zahl von der zweiten abzieht (um das Intervall zu erhalten mit der der Timer auslöst) kommt dann immer eine "minus Zeit" heraus. (Das Endevour-Zeitparadox und wir beide haben es entdeckt.😉 ).

            Die Lösung könnte dieser Befehl sein:
            journalctl -u ureminder.service -g Started -r -n2 |grep ureminder.service
            bzw. komplett dann so:

            [matthias@leno1 ~]$ journalctl -u ureminder.service -g Started -r -n2 -o short-unix | grep ureminder.service | awk '{print substr($1, 1, length($1) -7)}'
            1738025890
            1738018680

            (Doppelt Filtern filtert besser - morgen werde ich meinen Kaffee mit zwei Kaffeefiltern kochen 😉 )

            1738025890-1738018680=7210 (Sekunden) heißt - Der Timer wurde auf 2hours eingestellt - stimmt!.

            (Schau interessehalber mal oben in deinen log post PERIOD ist dort eine unmöglich große negative Zahl)

            Probier auch den letzten Befehl mal bei dir aus. Sicher ist sicher. Aber parallel spiel ich das schon mal bei ureminder ein, dann dürften bei dir auch die Zeitangaben für das nächste Upgrade endlich mal stimmen.
            (natürlich muss jetzt (durch den zusätzlichen Gebrauch der -r Option - das journal wird dann von unten gelesen - die zweite Zahl von der ersten subtrahiert werden)

            Was man hier sieht ist, dass Endevour eben nicht Arch Linux ist und dass diese "recht gut gemeinten Verbesserungen" am Ende die Sachen eher verkomplizieren als erleichtern.

            Die Ausgaben bei Endeavour sehen so aus, wie man es von systemd auch unter Arch Linux gewöhnt ist, jedenfalls wenn die Logs persistent abgelegt wurden. Mit der Option -b limitiert man die Log-Einträge auf den aktuellen Start.

            Mit einer vernünftigen Validierung der Daten (input) hätte man dieses Problem abfangen können.

            • tuxnix hat auf diesen Beitrag geantwortet.

              Hallo
              Es ist genau so nach jeden Pc Start oder reboot wird eine ---Boot Zeile erzeugt und das Script zeigt eine - Zeit an.
              Wenn das Script das zweiten mal startet ist alles OK
              Möglicherweise bin ich aber Schuld daran durch meine Timer Einstellung.

              [Timer]
              OnBootSec=5min
              OnUnitActiveSec=15min
              Persistent=true
              
              [Install]
              WantedBy=multi-user.target

              Ich bin mir nicht sicher ob nur Endeavour diese ---boot Zeile in das journal schreibt.
              Auf meinen Arch Pc sieht eine Abfrage so aus.

              journalctl -u shadow.service -g Started | tail -2
              -- Boot 039d1183c54d4093af81480cf2c7a245 --
              Jan 28 17:08:23 linux-pc6 systemd[1]: Started Verify integrity of password and group files.

              Mir ist noch etwas aufgefallen. In der .config/ureminder.config war Days=1 eingetragen. In der /etc/ureminder.config war Days=7 eingetragen.
              Im Log wird + days=7 angezeigt, nachdem auch in der /etc/ureminder.config war Days=1 eingetragen wurde wird das auch im Log angezeigt.

              Hier die Zusammenfassung von Heute

              journalctl -u ureminder.service -g Started -r -n2 -o short-unix | grep ureminder.service | awk '{print substr($1, 1, length($1) -7)}'
              1738010796
              1738009261
              #
              reboot
              systemctl list-timers
              NEXT                            LEFT LAST                         PASSED UNIT                             ACTIVATES
              Tue 2025-01-28 20:24:21 CET  3min 9s Mon 2025-01-27 21:46:36 CET       - ureminder.timer                  ureminder.service
              #
              ls -la /var/log/ureminder*
              -rw-r--r-- 1 root root 12830 28. Jan 20:24 /var/log/ureminder.log
              #
              systemctl list-timers
              NEXT                            LEFT LAST                          PASSED UNIT                             ACTIVATES
              Tue 2025-01-28 20:39:25 CET    14min Tue 2025-01-28 20:24:25 CET  50s ago ureminder.timer                  ureminder.service
              #
              sudo mv /var/log/ureminder.log /var/log/ureminder-t4.log
              #
              journalctl -u ureminder.service -g Started | tail -4
              Jan 27 21:21:01 rk-7072 systemd[1]: Started ureminder.service.
              Jan 27 21:46:36 rk-7072 systemd[1]: Started ureminder.service.
              -- Boot 97eaedf8c8e94e9583efd1f89a8c4061 --
              Jan 28 20:24:25 rk-7072 systemd[1]: Started ureminder.service.
              #
              journalctl -u ureminder.service -g Started | tail -4
              Jan 27 21:46:36 rk-7072 systemd[1]: Started ureminder.service.
              -- Boot 97eaedf8c8e94e9583efd1f89a8c4061 --
              Jan 28 20:24:25 rk-7072 systemd[1]: Started ureminder.service.
              Jan 28 20:39:35 rk-7072 systemd[1]: Started ureminder.service.
              #
              sudo mv /var/log/ureminder.log /var/log/ureminder-t5.log
              #
              journalctl -u ureminder.service -g Started | tail -5
              Jan 27 21:46:36 rk-7072 systemd[1]: Started ureminder.service.
              -- Boot 97eaedf8c8e94e9583efd1f89a8c4061 --
              Jan 28 20:24:25 rk-7072 systemd[1]: Started ureminder.service.
              Jan 28 20:39:35 rk-7072 systemd[1]: Started ureminder.service.
              Jan 28 20:54:38 rk-7072 systemd[1]: Started ureminder.service.
              #
              sudo mv /var/log/ureminder.log /var/log/ureminder-t6.log

              Bei Bedarf können die Log Dateien nachgereicht werden.

              • tuxnix hat auf diesen Beitrag geantwortet.
                • Bearbeitet

                Gerry_Ghetto Mit einer vernünftigen Validierung der Daten (input) hätte man dieses Problem abfangen können.

                Die liebe Vernunft!
                Ich lese doch nur das ein, was systemed "vernünftiger Weise" nötiert hat.
                Und ja, ich hätte erst einmal validieren müssen, ob meine Vorstellungen von Vernunft und die Vernunft derer die systemd machen, an dieser Stelle mit einander korrelieren.
                Aber die einzige Methode das herauszufinden ist try & error.
                Jedenfalls stellte ich mir vernünftiger Weise vor, dass wenn ich die Startzeiten eines service abfrage auch die Startzeiten des service erhalte und nicht noch ein: "Darf's ein bisschen mehr sein." (und die -g Option bei journalctl so dachte ich, käme von grep.) Und auf meinem Pc hat es bisher ja auch immer danach ausgesehen, als wäre es so. Aber ja, ich kann mich irren. Das tue ich sogar häufig und dann wird es halt wieder korrigiert.
                Und ja, du hast recht, jetzt nachdem ich endlich weiß wo der Haase im Pfeffer liegt, sehe ich, dass wenn ich ein journalctl -u ureminder.service -g Started -n1000 tätige auch mal ab und an eine einsame Zeile mit -- Boot 97eaedf8c8e94........- zwischendurch auftaucht. Und ja, auch Endevour ist hiermit entlastet.

                md_39118
                Möglicherweise bin ich aber Schuld daran durch meine Timer Einstellung.

                Nein, der Timer löst aus, mehr will man von ihm nicht.
                Und ja, bei mir schreibt er auch die -- Boot Zeile, Das ist mir aber bisher nie aufgefallen. Ich boote recht selten. Deshalb hab ich auch nie die "minus Minuten" gesehen.
                Endevours ist in dem Punkt auch wieder entlastet. (s. oben)

                md_39118 Mir ist noch etwas aufgefallen. In der .config/ureminder.config war Days=1 eingetragen. In der /etc/ureminder.config war Days=7 eingetragen.....

                Ist mir inzwischen auch aufgefallen. Das ist bei mir schon korrigiert, aber die Korrektur noch nicht ausgeliefert. Die user-config sollte dann immer die ausschlaggebende sein.

                Ich bin gerade dabei die Validierung der Eingaben in der user-config Datei zu erarbeiten.
                Ob es so bleibt oder noch modifiziert wird, weiß ich jetzt auch noch nicht, jedenfalls ist Stand der Dinge dass das script den Inhalt der Arrays in der ~/...config für GUIs, APPS und StopUpgd darauf hin überprüft, ob es sich dabei um installierte Pakete handelt und falls nicht, darüber informiert und irrelevante Angaben dann auch selbsttätig löscht.
                (Es ist recht ungewöhnlich es so zu handhaben, aber hätte den Vorteil, dass die ~/.....config nur Eingaben hat, die auch etwas bewirken und Typos ect. pp. ausgeschlossen sind.
                Ohnehin spricht das script lediglich Empfehlungen aus, falls ein Upgrade eines installierten Paketes ansteht. Alles was kein installierte Paket ist, hat deshalb auch in der ~/...config nichts zu suchen. Das Löschen jedenfalls ändert nichts am System, sondern sorgt lediglich für eine kurze Laufzeit des scripts. Und das script selbst macht eigentlich auch nicht viel, außer dem user nette Hinweise zu geben. )

                Werden die auto upgrade Zeiten bei dir jetzt richtig angezeigt?

                Dann könnten wir dann auch ein Häkchen dahinter machen.

                Version 0.9.2-1 mit den beschriebenen Änderungen folgt auf dem Fuße.