Hi,
ich hab ein kleines Backupscript erstellt, um per cron-job inkrementelle Sicherungen meines Home-Verzeichnisses zu erstellen;
für sich allein läuft das Skript auch (über keys werd ich via ssh am Server eingeloggt) - sogar mit GUI (Benachrichtigung via notify-send).
Cron gibt mir aber immer wieder den Fehler 127 in der /var/log/crond.log aus.
Hier ist mal das Skript:
#!/bin/bash
/usr/bin/sleep 30
export DISPLAY=:0
case $(/bin/grep nameserver /etc/resolv.conf | sed 's/nameserver //g') in
<IP-meines-Routers/Gateways>) /usr/bin/notify-send rsync 'Backup via LAN gestartet' && /usr/bin/rsync -aze ssh /home/user/ ssh-shortcut-lan:/data/data-backups/dyn-user --backup-dir=/data/data-backups/dynback --stats --partial --exclude=.gvfs > /tmp/statistics-rsync-LAN 2> /tmp/errors-rsync-LAN && /usr/bin/notify-send rsync 'Backup beendet';;
*) /usr/bin/notify-send rsync 'Backup via Internet gestartet' && /usr/bin/rsync -aze ssh /home/user/ ssh-shortcut-out:/data/data-backups/dyn-user --backup-dir=/data/data-backups/dynback --stats --partial --exclude=.gvsf > /tmp/statistics-rsync-WWW 2> /tmp/errors-rsync-WWW && /usr/bin/notify-send rsync 'Backup beendet';;
esac
Die einzelnen Programmpfade hab ich bewusst komplett angeführt, weil cron ja selbst die PATH-Variable nicht übernimmt (und rumzickt, wenn ich PATH=/usr/bin:/bin usw. angebe).
Meine crontab sieht wie folgt aus:
# allgemeine Struktur:
# M S T WT WNR
SHELL=/bin/bash
PATH=/bin:/usr/bin:/usr/sbin/:/usr/lib/:/home/pfad-zur-datei/
#---------------------------
* * * * * /home/pfad-zur-datei/rsync-backup
* * * * * DISPLAY=:0 notify-send test
Der 2. Eintrag dient als Test - und der läuft interessanterweise ohne explizite Pfadangabe (notify-send statt /usr/bin/notify-send).
Außerdem hab ich rsync-backup auch schon als rsync-backup.sh laufen lassen - ohne Auswirkung.
Meine SSH-Konfiguration nutzt sicherungsgeber@host1 nach sicherungsnehmer@host2 (2 versch. user-Namen, 2 versch. Server), was aber wie o.g. bei manuellem Start des Skripts 1a läuft.
Hat irgendjemand eine Idee, wo der Haken an der Sache liegt?
Grüße
yarch
PS: Ich hab auch schon probiert, die DISPLAY=:0 direkt vor die notify-send-Befehle zu setzen - ebenso ohne Veränderung.
[Edit: Titel geändert → + gelöst| Lsg.: Pfad in Anführungszeichen setzen, die PATH-Variable muss nicht gesetzt werden. S. u. für Weiteres]