Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] notify-send aus root-script geht mehr  (Read 1436 times)

Offline postkutscher

  • User
  • Posts: 65
[DE] notify-send aus root-script geht mehr
« on: 2025/04/02, 07:14:43 »
Hallo,

hatte mir damals ein backup-script gesucht was ich einfach für mich anpassen konnte und hatte dieses gefunden.
https://www.bitblokes.de/automatische-datensicherung-backup-script-mit-rsync-bei-einstecken-einer-externen-festplatte/

Das script liegt in/root und wird über cron gestartet.
Code: [Select]
#!/bin/bash
#Juergen Donauer
#http://www.bitblokes.de
#Freeware!
#Benutzung auf eigene Gefahr!


notify_me() {
  ALL_USER="$(users | sort)"
  echo Desktop-Message to: $ALL_USER
        for USER_TMP in $ALL_USER; do
                if [ "$USER_TMP" = "$USER_LAST" ]; then
                        #if user already notified, continue
                        continue
                fi
                su $USER_TMP -c "XAUTHORITY=/home/$USER_TMP/.Xauthority DISPLAY=:0 notify-send $1 $2"
                #save last username to avoid double notification
                USER_LAST=$USER_TMP
        done
}


########## Konfiguration ############
#UUID="42d23002-497e-4ed9-9697-057a643108b8" #ist durch die eigene UUID zu ersetzen
#UUID="59BC624820D7C496"
UUID="EE9063009062CF21"
CHECK_DISC="/dev/disk/by-uuid/$UUID"
DATE=`/bin/date +%Y%m%d`
CHECK_DATE_DIR="/root" #Verzeichnis der Datum-Steuerdatei und temporäres Einbinden der Backup-Platte
BACKUP_DIR_MEDIA="backup" #Mounte die Backup-Platte da hin
BACKUP_DIR="$CHECK_DATE_DIR/$BACKUP_DIR_MEDIA" #Backup-Verzeichnis, in dem Fall root der Backup-Platte
DATE_FILE="$CHECK_DATE_DIR/$DATE.date" #Datum-Steuerdatei, ob Backup schon durchgeführt wurde
CHECK_RSYNC=`ps -aef | grep -v grep | grep rsync | wc -l`
CHECK_MOUNT=`df -h | awk '{print $6}' | grep $BACKUP_DIR_MEDIA | wc -l`
SOURCE_DIR="/home/"

#####################################

/bin/umount $CHECK_DISC

if [ ! -d $CHECK_DATE_DIR/$BACKUP_DIR_MEDIA ]; then
/bin/mkdir $CHECK_DATE_DIR/$BACKUP_DIR_MEDIA
fi

if [ $CHECK_RSYNC = 0 ]; then #wenn kein anderer rsync-Prozess läuft, dann leg los
if [ -e $CHECK_DISC ]; then
if [ $CHECK_MOUNT = 0 ]; then
if [ ! -f $DATE_FILE ]; then
/bin/mount UUID=$UUID $CHECK_DATE_DIR/$BACKUP_DIR_MEDIA
sleep 5
rm -f $CHECK_DATE_DIR/*.date
notify_me "Backup\-Platte\ erkannt" "starte\ Datensicherung\ \(ich\ sag\ es\ Dir,\ wenn\ ich\ fertig\ bin\!\)"
/usr/bin/rsync -av --safe-links --delete --ignore-errors $SOURCE_DIR $BACKUP_DIR #macht nur einen Testlauf. Für den Ernstfall -avn zu -av ändern
/bin/sync
/usr/bin/touch $DATE_FILE
/bin/umount /dev/disk/by-uuid/$UUID
else
notify_me "Backup\ heute\ schon\ durchgefuehrt" "Du\ kannst\ die\ Festplatte\ nun\ abstecken"
fi
fi
fi
fi


Seit längerem erscheinen die entsprechenden Info-Fenster nicht mehr. Erst dachte ich, das wird sich mit weiteren full-upgrades wieder von selbst "heilen" , leider nicht. Das backup wird ausgefüht, nur die notify wird nicht angezeigt.

Nun habe ich die letzten beiden Wochenenden damit verbracht eine Lösung zu finden, leider ohne Erfolg.   >:(

Nun suche ich hier Hilfe für mein Problem und hoffe, hier die Lösung oder Denkanstoß zu finden
 
MfG Detlef

Offline unklarer

  • User
  • Posts: 910
Re: notify-send aus root-script geht mehr
« Reply #1 on: 2025/04/02, 15:50:07 »
Handelt es sich eigentlich um notify-osd oder xfce4-notifyd ?

Ersteres wurde laut Changelog im September 2024 letztmalig behandelt, während das von xfce Anfang März diesen Jahres 'in Arbeit' war.
Ich habe allerdings keinen Bug gefunden. Wobei, wie sich das Teil unter Plasma nennt, weiß ich gar nicht.

Offline postkutscher

  • User
  • Posts: 65
Re: notify-send aus root-script geht mehr
« Reply #2 on: 2025/04/02, 18:47:08 »
Hallo Unklarer,

Code: [Select]
root@T580:/home/detlef# apt-cache policy xfce4-notifyd
xfce4-notifyd:
  Installiert:           0.9.7-2
  Installationskandidat: 0.9.7-2
  Versionstabelle:
 *** 0.9.7-2 500
        500 https://deb.debian.org/debian unstable/main amd64 Packages
        100 /var/lib/dpkg/status
root@T580:/home/detlef#

Ich nutze XFCE4  ;)

MfG Detlef

Offline unklarer

  • User
  • Posts: 910
Re: notify-send aus root-script geht mehr
« Reply #3 on: 2025/04/02, 18:52:05 »
kriegste eigentlich eine Nachricht auf dem Desk, wenn du im Terminal eingibst:
Code: [Select]
notify-send "this is the summary" "this is the body of the notification"
Es sollten die zwei Zeilen erscheinen.  ;)

Quelle hier

Offline postkutscher

  • User
  • Posts: 65
Re: notify-send aus root-script geht mehr
« Reply #4 on: 2025/04/02, 18:59:46 »
Hallo Unklarer,

wenn ich das als user ausführe ja.

Es geht ja nicht aus dem script heraus von root gestartet nicht mehr.

MfG Detlef

Offline unklarer

  • User
  • Posts: 910
Re: notify-send aus root-script geht mehr
« Reply #5 on: 2025/04/02, 19:18:26 »
Hmm, als root habe ich bammel, das auszuführen. Immerhin hat er das Script 2012 geschrieben.   ;)

Es liegt also am Script. Da ist aber mein Latein am Ende. Tut mir Leid.   >:(

Offline postkutscher

  • User
  • Posts: 65
Re: notify-send aus root-script geht mehr
« Reply #6 on: 2025/04/02, 19:34:14 »
also ich habe das Skript über 3 Jahre in Gebrauch, es macht ja immer noch das Backup! Nur das die Nachrichten nicht mehr angezeigt werden.

Mein bessere Hälfte hatte voreilig die Festplatte abgezogen und ich hatte dann den Stress mit der Wiederherstellung der Daten.  ;)

Danke für Dein Interesse mir zu helfen.


Offline towo

  • Administrator
  • User
  • *****
  • Posts: 3.065
Re: notify-send aus root-script geht mehr
« Reply #7 on: 2025/04/02, 20:11:57 »
Root darf nicht so einfach Sachen auf einem User Desktop ausgeben, da muss die Xauthority mitgegeben werden.
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.

Offline postkutscher

  • User
  • Posts: 65
Re: notify-send aus root-script geht mehr
« Reply #8 on: 2025/04/03, 06:42:37 »
Hallo towo,

dann muß sich aber in Richtung Xauthority in den letzten Monaten was geändert haben. Das Script hat ja nach Anpassung des Ordners, der gesichert werden soll auf Anhieb funktioniert. Und das über knapp 3 Jahre mit den notify.

Wenn jemand ein ähnliches backupskript hat, das als user ausgeführt werden kann, dann wäre es schön, wenn es mir hier bereitgestellt werden würde.

Beim skripte erstellen bin ich ein totaler DAU! ;)

MfG Detlef

Offline scholle1

  • Global Moderator
  • User
  • *****
  • Posts: 163
Re: notify-send aus root-script geht mehr
« Reply #9 on: 2025/04/03, 12:24:31 »
Code: [Select]
Zeile 16 in der Funktion notify_me()
su $USER_TMP -c "XAUTHORITY=/home/$USER_TMP/.Xauthority DISPLAY=:0 notify-send $1 $2"

Zeile 52
notify_me "Backup\-Platte\ erkannt" "starte\ Datensicherung\ \(ich\ sag\ es\ Dir,\ wenn\ ich\ fertig\ bin\!\)"

Zeile 58
notify_me "Backup\ heute\ schon\ durchgefuehrt" "Du\ kannst\ die\ Festplatte\ nun\ abstecken"

Code: [Select]
notify-send "this is the summary" "this is the body of the notification"

@postkutscher und @unklarer
Ich habe die Zeile von unklarer ausprobiert.
Als User in der graphischen Oberfläche angemeldet und in einem Terminal ausgeführt funktioniert es.
In einem root Terminal nicht mehr. (Wurde ja auch schon beschrieben.)

Die Befehlzeile im Skript enthält "Xauthority". Soweit eigentlich in Ordnung.
Die  Zeile von unklarer mit su erweitert, wobei <user> durch meinen Benutzernamen ersetzt wurde

su <user> -c notify-send "this is the summary" "this is the body of the notification"

ergab den Fehler No summary specified.
Mein Verdacht, es hat mit Quoting zu tun. Zusätzliche einfache Anführungszeichen um den ursprünglichen Befehl führten zum Erfolg:

su <user> -c 'notify-send "this is the summary" "this is the body of the notification"'

Deshalb teste das Skript mal mit der Zeile 16

Code: [Select]
su $USER_TMP -c 'XAUTHORITY=/home/$USER_TMP/.Xauthority DISPLAY=:0 notify-send "$1" "$2"'
Der gesamte von root als $USER_TMP auszuführende Befehl steht in einfachen und die Variablen $1 und $2 in doppelten Anführungszeichen.
Du kannst analog dazu die Zeile in einem root Terminal testen, wobei die beiden <user> durch deinen Benutzernamen zu ersetzen sind.

su <user> -c 'XAUTHORITY=/home/<user>/.Xauthority DISPLAY=:0 notify-send "Summary" "The notification"'

Die Zeilen 52 und 58 betreffend beinhaltete die Ausgabe im Titel die Backslashes.
Teste das bitte, und wenn es bei dir auch so ist dann:

"Backup\-Platte\ erkannt" zu "Backup-Platte erkannt"
und
"Backup\ heute\ schon\ durchgefuehrt" zu "Backup heute schon durchgefuehrt"

ändern.

« Last Edit: 2025/04/03, 12:35:20 by scholle1 »
"pax in terra" - Das ist mein großer, mein einzigster, von Herzen kommender Wunsch.
"Frieden auf der Erde" und alles Weitere erscheint einfach.

Offline postkutscher

  • User
  • Posts: 65
Re: notify-send aus root-script geht mehr
« Reply #10 on: 2025/04/03, 21:43:25 »
Hallo scholle1,

vielen Dank für Deine Bemühungen mir zu helfen.

Wenn ich im user-terminal
Code: [Select]
su detlef -c 'notify-send "this is the summary" "this is the body of the notification"' eingebe und das user-passwort eingebe, wird das Fenster (notify) angezeigt.

Habe daraufhin die Zeilen 16, 52 und 58 nach Deinen Vorschlägen angepasst, leider ohne Erfolg.

Das backup wird durchgeführt, es kommt aber keine Meldungen/notify.

Das skript liegt in /root/ und wird über "root cron befehl" gestartet. Selbst wenn ich den cron-befehl mit # auskommentiere und das skript manuell starte kommt kein notify

Ich habe keinen Plan!

Was mich persönlich vollkommen irritiert, ist, das es funktioniert hat und auf einmal nicht mehr funktioniert. >:(

MfG Detlef

Offline ro_sid

  • User
  • Posts: 391
Re: notify-send aus root-script geht mehr
« Reply #11 on: 2025/04/05, 12:00:33 »
Wechsel von X11 auf Wayland?

Offline towo

  • Administrator
  • User
  • *****
  • Posts: 3.065
Re: notify-send aus root-script geht mehr
« Reply #12 on: 2025/04/05, 12:02:47 »
Jo, aber mit XFCE wird das nicht so einfach.

Ich würde testhalber als user mal ein
Code: [Select]
xhost + in ein terminal tippen und dann schauen, ob die Benachrichtigungen erscheinen, wenn ja, ist es definitiv ein X-Auth Problem.
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.

Offline postkutscher

  • User
  • Posts: 65
Re: notify-send aus root-script geht mehr
« Reply #13 on: 2025/04/05, 20:17:38 »
Hallo towo,

Code: [Select]
detlef@T580:~$ xhost +
access control disabled, clients can connect from any host
detlef@T580:~$

muss/soll das so sein?

Angezeigt wird jedenfalls nix.

Habe jetzt mal ne Testinstallation gemacht, bevor ich mir mein laufendes System noch kaputt spiele. ;)

Wie gehabt, Skript läuft, Anzeige nicht.

MfG Detlef

Offline towo

  • Administrator
  • User
  • *****
  • Posts: 3.065
Re: notify-send aus root-script geht mehr
« Reply #14 on: 2025/04/05, 20:23:01 »
Wnn es nach 'xhost +' auch nicht funktioniert, ist es kein Berechtigungsproblem.
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.