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