Automatisiertes Paketupgrade
tuxnix
Hallo
Mit der Änderung sieht es gut aus.
In der "ureminder-fg" habe ich die Meldungen auf DE eingetragen und die Rechte geändert.
sudo chmod go-x /usr/local/bin/ureminder-fg
ls -la /usr/local/bin/
-rwxr--r-- 1 root root 7757 19. Aug 15:42 ureminder-fg
journalctl -b | grep ureminder-fg
Aug 19 15:39:15 rk-7072 dolphin[1188]: kf.kio.workers.file: copy() QUrl("file:///run/media/ralf/D7DC-D7BD/version-3/ureminder-fg") to QUrl("file:///home/ralf/version-3/ureminder-fg") mode= 420
Aug 19 15:41:10 rk-7072 sudo[1328]: ralf : TTY=pts/1 ; PWD=/home/ralf ; USER=root ; COMMAND=/usr/bin/nano /usr/local/bin/ureminder-fg
Aug 19 15:44:52 rk-7072 sudo[1402]: ralf : TTY=pts/1 ; PWD=/home/ralf ; USER=root ; COMMAND=/usr/bin/chmod go-x /usr/local/bin/ureminder-fg
Aug 19 15:48:36 rk-7072 sudo[1449]: ralf : TTY=pts/1 ; PWD=/home/ralf ; USER=root ; COMMAND=/usr/local/bin/ureminder-fg -h
Aug 19 15:49:38 rk-7072 sudo[1462]: ralf : TTY=pts/1 ; PWD=/home/ralf ; USER=root ; COMMAND=/usr/local/bin/ureminder-fg
Aug 19 15:55:14 rk-7072 ureminder-fg[1838]: ==> no candidate packages found for pruning
Aug 19 15:55:15 rk-7072 ureminder-fg[1847]: ==> finished: 1 packages removed (disk space saved: 81.2 KiB)
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: :: Paketdatenbanken werden synchronisiert …
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: endeavouros wird heruntergeladen …
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: core wird heruntergeladen …
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: extra wird heruntergeladen …
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: multilib wird heruntergeladen …
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: :: Vollständige Systemaktualisierung wird gestartet …
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: Abhängigkeiten werden aufgelöst …
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: Paket (13) Alte Version Neue Version Netto-Veränderung
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: core/btrfs-progs 6.10-1 6.10.1-1 -0,05 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: core/fakeroot 1.35.1-1 1.36-1 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: extra/gtk-update-icon-cache 1:4.14.4-2 1:4.14.5-1 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: extra/gtk4 1:4.14.4-2 1:4.14.5-1 0,21 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: extra/libinput 1.26.1-1 1.26.2-1 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: extra/librsvg 2:2.58.2-1 2:2.58.3-1 -0,06 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: extra/libssh 0.11.0-1 0.11.0-2 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: extra/luajit 2.1.1720049189-1 2.1.1723675123-1 0,01 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: extra/pv 1.8.12-1 1.8.13-1 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: core/systemd 256.4-1 256.5-1 0,01 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: core/systemd-libs 256.4-1 256.5-1 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: core/systemd-resolvconf 256.4-1 256.5-1 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: core/systemd-sysvcompat 256.4-1 256.5-1 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: Gesamtgröße des Downloads: 0,00 MiB
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: :: Download fortsetzen? [J/n]
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: Schlüsselbund wird geprüft …
Aug 19 15:55:15 rk-7072 ureminder-fg[1866]: Paketintegrität wird geprüft …
Aug 19 15:55:16 rk-7072 ureminder-fg[1830]: With Days=7. Nächstes automatisches Package-Upgrade bei der Ausführung von ureminder in 95 hour(s)
- Bearbeitet
Ist das schon der erste fork?
Schön wenn du damit kreativ umgehst, das Skript an deine Bedürfnisse anpasst und ausprobierst. Genau deshalb sind Skripte ja auch so wertvoll. 😉
Bei den Änderung der Rechte hätte ich es an deiner Stelle bevorzugt, die Datei der Gruppe users mit Schreibrechten zuzuordnen. Der Besitzer root muss weiterhin ausführen können, aber wenn ralf Mitglied in der Gruppe users ist, dann kann er danach das Skript bearbeiten ohne sudo und dann kann er auch einen editor wie z.B. kate viel einfacher benutzen.
Ungefähr so:
id ralf
chown root:users ureminder-fg
chmod g+w ureminder-fg
tuxnix
Hallo
Der Pc soll bei zwei Freunden als Linux Test und Spielwiese neben Ihren Window Pc stehen.
Mit den original Meldungen würde ich beiden(Ü70) keine Freude machen, deshalb eher eine Notwendigkeit als ein fork.
Die Änderung an den Rechten gefällt mir auch gut, das werden ich noch ändern.
Für den Einsatz bei den Freunden kommt mir das AutoUpdate Script sehr gelegen.
Danke für Deine Arbeit.
- Bearbeitet
md_39118
Das ist genau das angedachte Einsatzszenario für das Skript.
Es führt dazu hin was man tun soll und teilt mit was passiert.
Nimm doch mal das Original Arch Linux dafür. 😉
Mit den Spickern ist das schneller per konsole installiert als der Calamares Installer von Endeverous durchgeklickt ist.
O.k. erst beim zweiten mal 😉
Als GUi würde ich dir sway vorschlagen. Ich habe da was altengerechtes, sehr einfach und intuitiv zu bedienendes konfiguriert, mit dem auch mein 80 jähriger Onkel auf Anhieb zurechtkommt. Plasma hat so viele Knöpfe die am Anfang irritieren können. Aber vor allem schnurrt selbst ein schwacher Rechner wieder wie am ersten Tag damit.
Sag Bescheid wenn du soweit bist.
tuxnix
Hallo
- Rechte ändern. In Endeavour sieht es so aus.
Nach dem ändern kann man mit kate das Script öffnen, ändern, speichern alles OK.
Aber im Journal ist nicht mehr viel zu sehen, deshalb noch die Gruppe "log" bringt aber auch nichts.
id ralf
uid=1000(ralf) gid=1000(ralf) Gruppen=1000(ralf),3(sys),998(wheel),981(rfkill)
sudo chown root:ralf ureminder-fg
sudo chmod g+w ureminder-fg
sudo usermod -aG log ralf
id
uid=1000(ralf) gid=1000(ralf) Gruppen=1000(ralf),3(sys),19(log),981(rfkill),998(wheel)
journalctl -b | grep ureminder-fg
Aug 20 17:18:06 rk-7072 sudo[1205]: ralf : TTY=pts/1 ; PWD=/home/ralf ; USER=root ; COMMAND=/usr/local/bin/ureminder-fg
Die Übersetzungen habe ich mit deepl gemacht und dann in das Script eingetragen. Das Script lege ich an das Ende.
Die beiden Links kannte ich nicht, um mich da einzulesen dauert es etwas.Die Spickzettel werden von mir auch benutzt.
Bei 1.Vorbereitung steht "lynx wiki.archlinux.de/title/spicker" das ist an der Stelle aber nicht möglich.
Bei 2.Installation_des_Grundsystems benutze ich - d) EFI, crypted-LVM
Bei 4._Bootloader dann - b) EFI, crypted-LVM - hier soll mit nano /boot/loader/loader.conf - default arch-uefi.conf eingetragen werden, die Datei gibt es nicht.Zu sway kann nach der Installation ein User weiter Plasma und der andere User dann sway benutzen.
Das Script
#!/bin/bash #file-> /usr/local/bin/ureminder # Days from last packgag upgrade to autoupgrade (default) # Tage vom letzten Packgag-Upgrade bis zum Autoupgrade (Standard) DAYS="7" #options while [[ $# -gt 0 ]]; do case "$1" in --help|-h) # echo "Reminds package upgrades and will autoupgrade if user does'nt do it" echo "Erinnert an Paket-Upgrades und führt automatisch ein Upgrade durch, wenn der Benutzer dies nicht tut" echo "Aufruf: ureminder [OPTION]... [Value]..." echo "Options:" # echo "-d [n] --days [n] Autoupgrade in n days from the last pkg upgrade done - (default 7)" echo "-d [n] --days [n] Autoupgrade in n Tagen ab dem letzten durchgeführten pkg-Upgrade - (default 7)" echo "-h --help Print this help" echo "-v --verbose Verbose mode" exit ;; --days| -d) if [ $2 ] && [ $2 -gt 0 ]; then DAYS=$2 shift 1 break else # echo "-d --days needs a positiv number as argument" echo "-d --days benötigt eine positive Zahl als Argument" fi exit ;; --verbose|-v) # echo "Verbose Mode Activated" echo "Ausführlicher Modus Aktiviert" set -vx shift 1 break ;; -dv| -vd) set -vx if [ $2 ] && [ $2 -gt 0 ]; then DAYS=$2 shift 1 break else # echo "-d --days needs a positiv number as argument" echo "-d --days benötigt eine positive Zahl als Argument" fi exit ;; *) # Invalid option #\?) # Invalid option echo "Unknown option: $1" echo "Run -h or --help for help" exit ;; esac done 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 "$@" } # time span last pkg upgrade (Unix seconds) # Zeitspanne letztes pkg-Upgrade (Unix-Sekunden) NOW=$(date --date='now' +%s) UPAC=$(date -d $(awk '/upgraded/ { print $1 }' /var/log/pacman.log | tail -1 | sed -e 's/\[//' -e 's/\]//') +%s) SECS=$((NOW-UPAC)) # error db.lck if [ -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>" -t 0 -u critical exit 1 fi # update mirrors reflector --age 1 --delay 0.25 --protocol https --latest 5 --save /etc/pacman.d/mirrorlist || Error="reflector --age 1 --delay 0.25 --protocol https --latest 5" # del PKGS from cache which are not installed anymore # PKGS aus dem Cache löschen, die nicht mehr installiert sind paccache -ruk0 || Error="paccache -ruk0" # keep current package and last for downgrade purpose # Beibehaltung des aktuellen Pakets und des letzten Pakets zum Zwecke des Downgrades paccache -rk2 || Error="paccache -rk2" # list all installed packages # alle installierten Pakete auflisten pacman -Qqe > /var/pkg.lst || Error="pacman -Qqe" # preload new packages # neue Pakete vorladen pacman -Syuw --noconfirm || Error="# pacman -Syuw" # check for PKGS upgrades available # Prüfung auf verfügbare PKGS-Upgrades PKGS=($(pacman -Qu | awk '{print $1}')) || Error="pacman -Qu" # print # echo "With Days=$DAYS. Next automated packgage upgrade when runnig uriminder in $(( (DAYS*86400-3600+UPAC-NOW)/3600)) hour(s)" # echo "With Days=$DAYS. Nächstes automatisches Package-Upgrade bei der Ausführung von ureminder in $(( (DAYS*86400-3600+UPAC-NOW)/3600)) hour(s)" echo "With Days=$DAYS. Nächstes automatisches Package-Upgrade bei der Ausführung von Script ureminder in $(( (DAYS*86400-3600+UPAC-NOW)/3600)) hour(s)" # auto upgrade in (86400sec-3600sec=82800sec=23h) if [ "$((SECS/DAYS))" -ge "82800" ] && [ "${#PKGS[*]}" -gt "0" ]; then # NID=$(send "Upgrade starts in 1 minute:" "Save your documents!" -t 0 -u normal -p) # NID=$(send "Upgrade beginnt in 1 Minute:“ “Speichern Sie Ihre Dokumente!" -t 0 -u normal -p) NID=$(send "Upgrade beginnt in 1 Minute:“ “Bitte Speichern Sie Ihre Dokumente!" -t 0 -u normal -p) sleep 60 # NID=$(send "Upgrading:" "Keep system running!" -t 0 -u critical -r $NID -p) # NID=$(send "Upgrade:“ “System weiterlaufen lassen!" -t 0 -u critical -r $NID -p) NID=$(send "Upgrade:“ “Bitte System weiterlaufen lassen!" -t 0 -u critical -r $NID -p) pacman -Su --noconfirm || Error="# pacman -Su" # KERNEL upgrade message # KERNEL-Upgrade-Meldung KERNEL=$(cat /proc/version | awk '{ print $4}'| sed -e 's/(//' -e 's/@.*//') for i in ${PKGS[*]}; do if [ $KERNEL = $i ]; then # send "Installed next $i version:" "This new kernel will run after your next system boot!" -t 0 -u normal send "Installierte nächste $i-Version:“ “Dieser neue Kernel wird nach dem nächsten Systemstart laufen!" -t 0 -u normal fi done # running GUI was upgraded # Die laufende GUI wurde aktualisiert GUIs=('qt5' 'qt6' 'gtk4''awesome' 'budgie-session' 'cinnamon-desktop' 'deepin-daemon' 'gnome-shell' 'i3' 'lxsession' 'lxqt-session' 'mate-desktop' 'plasma-desktop' 'kwindowsystem' 'sway' 'xfce4-session') 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 # wich of these often used applications is runnig now # Welche dieser häufig genutzten Anwendungen wird gerade ausgeführt? APPS=('firefox' 'chromium' 'dolphin' 'nautilus' 'kmail' 'kontact' 'kate' 'vim' 'libreoffice' 'libreoffice-still') for k in ${APPS[@]}; do if [[ $(pgrep -fc $k) -ge "0" ]]; then RAPPS+=($k); fi done # wich of these runnig applikatins were upgraded # Welche dieser laufenden Anwendungen wurden aktualisiert? for m in ${PKGS[*]}; do for n in ${RAPPS[*]};do if [ $m = $n ]; then PRAPPS+=('$n'); fi done done # GUI message - if GUI was upgraded # GUI-Meldung - wenn die GUI aktualisiert wurde if [ $GUI ]; then # send "$GUI was upgraded:" "Please restart your usersesson!" -t 0 -u normal #-r $NID send "$GUI wurde aktualisiert:“ “Bitte starten Sie Ihr Benutzersystem neu!" -t 0 -u normal #-r $NID # applikation message - for some usual apps + # applikation message - für einige übliche apps + elif [ ${#PRAPPS[*]} -gt "0" ]; then # send "Upgrade successfully:" "Please restart $PRAPPS and other applications you are using now!" -t 0 -u normal #-r $NID send "Upgrade erfolgreich:" "Bitte neu starten $PRAPPS und andere Anwendungen, die Sie gerade benutzen!" -t 0 -u normal #-r $NID # application message all apps # Anwendungsnachricht alle Anwendungen else # send "Upgrade successfully:" "Just to be safe, restart applikations you are using now!" -t 0 -u normal -r $NID send "Upgrade erfolgreich:" "Starten Sie sicherheitshalber alle Anwendungen neu, die Sie gerade verwenden!" -t 0 -u normal -r $NID fi # remind message # Meldung erinnern elif [ ${#PKGS[*]} -eq "1" ]; then # send "${#PKGS[*]} upgrade. Run: # pacman -Syu" "<i>$(echo ${PKGS[*]})</i>" -t 0 -u normal # send "${#PKGS[*]} Upgrade. Laufen: # pacman -Syu" "<i>$(echo ${PKGS[*]})</i>" -t 0 -u normal send "${#PKGS[*]} Upgrade. geladen: Manuelles Install mit pacman -Syu pacman -Syu" "<i>$(echo ${PKGS[*]})</i>" -t 0 -u normal elif [ ${#PKGS[*]} -gt "1" ]; then Nr=0 for PKG in ${PKGS[@]}; do Nr=$(($Nr+1)) PK+=("$Nr.$PKG") done # send "${#PKGS[*]} upgrades. Run: # pacman -Syu" "<i>${PK[*]}</i>" -t 0 -u normal # send "${#PKGS[*]} Upgrades. Laufen: # pacman -Syu" "<i>${PK[*]}</i>" -t 0 -u normal send "${#PKGS[*]} Upgrades geladen: Manuelles Install mit pacman -Syu" "<i>${PK[*]}</i>" -t 0 -u normal fi # error message # Fehlermeldung if [ "$Error" != "" ]; then # send "Error: $Error" "To analyse run this command on terminal" -t 0 -u critical send "Error: $Error" "Zur Analyse führen Sie diesen Befehl im Terminal aus" -t 0 -u critical fi # TODO: # GUI- und APP-Messages noch um weite Pakete ergänzen und testen. # In Plasma und GNOME die Notiz Meldung gößer darstellen lassen damit eine lange Paket-Upgrade-Liste komplett angezeigt wird.. # Know issues: # Probleme erkennen: # 'pacman -Qu' does not list new added Dendendencies of package upgrades. This is not very importent for ureminder script - Fix would need a bug report to pacman # 'pacman -Qu' listet keine neu hinzugefügten Dendendenzen von Paket-Upgrades auf. Dies ist für das Ureminder-Skript nicht sehr wichtig - eine Behebung würde einen Fehlerbericht an pacman erfordern
- Bearbeitet
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.
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.
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
- Bearbeitet
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.
- Bearbeitet
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:"
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 "$@"
#}
- Bearbeitet
Gib mir doch bitte mal die Ausgabe von who -a
auf der konsole an. Macht endeverous hier etwas anderes als arch?
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 "$@"
}
- Bearbeitet
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 "$@"
}
- Bearbeitet
Das script läuft hoffentlich als root und sendet dem user Mitteilungen. (Nur mal so bemerkt 😉 )
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.
- Bearbeitet
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