Arch ahoi,
ich mache meine Backups mit rsync auf eine externe Festplatte.[
Skript aus dem engl. wiki]
#!/bin/sh
START=$(date +%s)
rsync -aAXvh /* /media/usb1/Backups/Thinkpad/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs,/var/lib/pacman/sync/*}
FINISH=$(date +%s)
echo "total time: $(( ($FINISH-$START) / 60 )) minutes, $(( ($FINISH-$START) % 60 )) seconds"
touch /media/usb1/Backups/Thinkpad/"Last Backup from $(date '+%A, %d %B %Y, %T')"
if [ $(ls -la /var/log/Backups/ | wc -l) -gt 3 ]; then
[ `rm -f /var/log/Backups/*` ];
fi;
touch /var/log/Backups/"Last Backup from $(date '+%A, %d %B %Y, %T')"
chmod 0644 /var/log/Backups/*
Ein cronjob guckt dann regelmässig, wann das letzte Backup stattgefunden hat und gibt mir bescheid, wenn's länger als 7 Tage her ist.
#!/bin/sh
DATES=$(find /var/log/Backups/ -type f -mtime +7 | cut -d / -f 5)
if [ -z "$DATES" ]; then
exit 0;
else su dings -c "DISPLAY=:0 notify-send -u critical REMINDER! '$DATES'"
fi;
Das hat bislang auf meinem alten 32bit System auch funktioniert. Nun nach dem Umzug auf einen neuen Rechner und 64bit funktioniert die notify-send Ausgabe nicht mehr.
Ich habe daraufhin eine andere Variante des 2.Skriptes ausprobiert:
#!/bin/sh
echo `set | grep DBUS_SESSION_BUS_ADDRESS | cut -d "=" -f2-4` > /tmp/dbus_session_hostname
chmod 0744 /tmp/dbus_session_hostname
DATES=$(find /var/log/Backups/ -type f -mtime +7 | cut -d / -f 5)
if [ -z "$DATES" ]; then
exit 0;
else /usr/bin/su dings -c "DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=`cat /tmp/dbus_session_hostname` /usr/bin/notify-send -u critical REMINDER! '$DATES'"
fi;
rm /tmp/dbus_session_hostname
Funktioniert auch nicht.
Beide Varianten funktionieren, wenn ich sie aus dem Terminal als Benutzer aufrufe.
Melde ich mich mittels su als root an und führe die Skripte aus, funktionieren sie auch. Melde ich mich als root übers rootterminal (urxvt -e su -) an und führe die Skripte aus, passiert nichts, jedenfalls wird keine Fehlermeldung ausgegeben.
Die beiden Skripte liegen in /etc/cron.hourly und sind auch ausführbar (0755), das cronlog zeigt nichts an, was auf einen Fehler hindeutet.
Ich habe auch schon versucht, am Anfang des Skripts DISPLAY zu setzen und zu exportieren, nützt aber ebenfalls nichts.
Beim Suchen findet sich zu dem Thema etliches und ich meine das in meinen Skripten berücksichtigt zu haben, habe also absolut keine Idee wie ich das Problem beheben kann.
Gruss