Hallo miteinander,
dieses Forum hat mir nun schon so oft geholfen, aber diesmal komme ich einfach nicht weiter und muss euch jetzt auch mal blöde Fragen stellen.
Was will ich machen?
Ich habe ein Backupscript mit dem ich abfragen will ob das Backup noch aktuell ist oder nicht. Diese Prüfung soll täglich mit anacron gestartet werden und das Ergebnis wird mit notify-send auf dem Bildschirm ausgegeben.
Wie shon bei 100000 anderen funktionierte das Script im Terminal aber nicht in anacron. Die Lösung dazu habe ich in natürlich in diesem Forum gefunden (Siehe kommentar in Script).
Welches System habe ich?
Ubuntu 10.04 LTS AMD64
Wo liegt das Problem?
In meinem Backup-Script wird auf die Umgebungsvariable "logname" zugegriffen. Diese Variable brauche ich um den HOME-Pfad zusammen zu basteln. Da aber, wie bereits festgestellt, anacron im Root-Context läuft stimmt die "logname" Variable nicht, bzw. ist leer oder existiert nicht. Wie immer funktioniert das Script im Terminal aber nicht in anacron. Der Grund ist wie gesagt der, dass anacron als Root ausgeführt wird. Ich muss also im Anacron-Script die Umgebungsvariable "logname" definieren damit das Backup-Script auf den logname zugreifen kann.
Hier das anacron Script ohne den Versuch die logname Variable zu definieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/bin/sh #Damit Statusmeldungen von anacron an die Grafische Oberfläche ausgegeben werden #muss folgendes beachtet werden: #Wenn das Skript unter anacron läuft, dann läuft es im Root-Context. #In diesem Context fehlen aber die notwendigen Informationen, um auf den laufenden XServer zuzugreifen. #Das aber bräuchte notify-send an dieser Stelle. Folgender Code sendet die Benachrichtigung #an alle Gnome Sitzungen, falls gerade mehrere laufen sollten (mehere Benutzer angemeldet) #Der Tip kommt aus dem Ubuntu-Forum: http://forum.ubuntuusers.de/topic/anacron-und-rsnapshot-probleme/ for PID in $(pgrep gnome-session) do export $(cat /proc/$PID/environ | xargs -0 -n 1 echo | grep ^DISPLAY=) done cd /home/daniel-vm/.backups ./backup -i b |
Was habe ich bereits unternommen?
1.- eine Variable definieren und diese dann exportieren:
1 2 3 4 5 6 7 8 9 | logname="testname" export $logname for PID in $(pgrep gnome-session) do export $(cat /proc/$PID/environ | xargs -0 -n 1 echo | grep ^DISPLAY=) done cd /home/daniel-vm/.backups ./backup -i b |
2.- eine Variable definieren und direkt exportieren:
1 2 3 4 5 6 7 8 | export logname="testname" for PID in $(pgrep gnome-session) do export $(cat /proc/$PID/environ | xargs -0 -n 1 echo | grep ^DISPLAY=) done cd /home/daniel-vm/.backups ./backup -i b |
3.- dann habe ich versucht andere namen für die Varaiblen zu nehmen- geht auch nicht
4.- ich habe die verschiedenen Varianten in die for-Schleife gepackt damit alle User die Variablen erhalten - geht auch irgndwie nicht
5.- alle Varianten nochmal durchgespielt mit und ohne Anführungszeichen - auch nix
Was mache ich bloß falsch?
Und: Hat jemand eine Idee wie ich anacron manuell starten kann? momentan muss ich zum Testen immer meine Virtual-Box zurücksetzen und warten bis anacron startet.
Ich danke euch schonmal für eure Mühen.