ubuntuusers.de

Anacron -Script startet nicht

Status: Ungelöst | Ubuntu-Version: Ubuntu 7.10 (Gutsy Gibbon)
Antworten |

opu.e

Anmeldungsdatum:
4. November 2006

Beiträge: 349

Hi, ich schon wieder 😐

Kann es sein das Anacron mit Zenity nicht zurecht kommt? Folgendes Script will einfach nicht starten:

#! /bin/sh

if ! zenity --question --text "Ein Systembackup ist geplant!\nStarten?"; then
  exit;
fi
foo=`gksudo -u root -k -m "Zum Starten des Systembackups bitte Passwort eingeben!" /bin/echo "got r00t?"`
datum=`date`
sudo tar cvpzf /home/lobster/Backups/"$datum".tgz --one-file-system /

zenity --info --text "Backup abgeschlossen!"


Abgelegt in einem cron.* Ordner, sollte reichen, oder braucht es noch eine weiteren Verweis darauf?

Wenn es mit Zenity nicht geht, gibt es eine andere Möglichkeit per Script danach zu Fragen, ob das Backup ausgeführt werden soll?

Vielen Dank im Voraus!

gruß, opu.e

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17630

Wohnort: Berlin

opu.e

(Themenstarter)

Anmeldungsdatum:
4. November 2006

Beiträge: 349

Falls du die Pathangabe meinst, hab es so getestet:

#! /bin/sh
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Hilft nicht 😐

Der_Gestreifte

Avatar von Der_Gestreifte

Anmeldungsdatum:
21. Juni 2007

Beiträge: 1261

Wohnort: Nürnberg

Nicht die Path-Angabe sondern die, auf welches DISPLAY angezeigt werden soll.

opu.e

(Themenstarter)

Anmeldungsdatum:
4. November 2006

Beiträge: 349

Hmmm also doch Zenity...

Folgendermaßen?

#! /bin/sh

if ! DISPLAY=:0. zenity --question --text "Ein Systembackup ist geplant!\nStarten?"; then
  exit;
fi
foo=`gksudo -u root -k -m "Zum Starten des Systembackups bitte Passwort eingeben!" /bin/echo "got r00t?"`
datum=`date`
sudo tar cvpzf /home/lobster/Backups/"$datum".tgz --one-file-system /

DISPLAY=:0. zenity --info --text "Backup abgeschlossen!"

rbuunk88

Anmeldungsdatum:
30. Juli 2012

Beiträge: Zähle...

Das Thema ist zwar schon veraltet, aber ich war auch an einer ähnlichen Lösung interessiert und habe für mich eine gute Lösung gefunden, die ich niemanden vorenthalten möchte.

Ich benutze um meine wöchentlichen Backups mit Deja-Dup zu starten nun eine Mischung aus anacron und der Autostart-Funktion des administrierenden Benutzers.

Folgendes Skript ist für das starten des Backups zuständig:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/bin/sh
#Anacron Backups with Deja-Dup

logger -i -t deja "start weekly backup with deja-dup"	# log in /var/log/syslog

# personal log file
datum=`date`
echo "" >> /path/.deja.txt
echo "Start des Backups am:" >>  /path/.deja.txt
echo $datum >> /path/.deja.txt

# start the backup
gksu 'deja-dup --backup'

echo "Das Backup wurde erfolgreich beendet" >> /path/.deja.txt
logger -i -t deja "finished weekly backup with deja-dup"

# inform the user and delete the script
zenity --info --text "Das Backup wurde abgeschlossen!" && rm -f /home/USER/.config/autostart/deja

path muss dabei durch den Pfad für die gewünschte Logdatei ersetzt werden. Diese sollte schon vorher existieren, da sie sonst unter root angelegt wird. Allerdings ist das ganze mit der Logdatei auch nur obligatorisch.

Jetzt kommt anacron ins Spiel. anacron kopiert das Skript in den autostart-Ordner des administrierenden Benutzers:

1
2
3
4
5
#!/bin/sh
# copy backup-script weekly

cp '/home/USER/PATH_TO_SCRIPT/deja' '/home/USER/.config/autostart/deja'
chown USER:USER '/home/USER/.config/autostart/deja' 

Das letzte benötigte Skript prüft, ob das Backup-Skript im autostart-Ordner vorhanden ist und ruft es mit root-Rechten auf:

1
2
3
4
#!/bin/sh
# starts backup if anacron made it available
test -x /home/USER/.config/autostart/deja && logger -i -t deja "Backup will start soon" && sleep 300 && zenity --question --text 'Ein Systembackup ist geplant.\nStarten?' &&  gksudo -m 'Bitte Passwort eingeben um das Backup zu starten!' 'gksu -u root -w /home/USER/.config/autostart/deja' && done=1
test -z $done && logger -i -t deja "Backup aborted"

Das letzte Skript in den Autostart packen und fertig!

Ist vielleicht nicht die beste Lösung, aber eine funktionierende. Die DISPLAY Variable in anacron zu setzen halte ich für noch schlechter, vor allem auf Mehrbenutzer Systemen.

Man könnte anacron auch übergehen und den Timestamp in /var/spool/anacron/* auslesen. Dazu müsste man allerdings die Berechtigungen dieser Dateien ändern.

Vielleicht kann meine Skripte ja jemand gebrauchen, um auch graphische Anwendungen über anacron zu starten.

Cheers

MannMitHut

Avatar von MannMitHut

Anmeldungsdatum:
22. Juni 2010

Beiträge: 806

Schau Dir mal meinen schönen Monolog 😀 an, den ich gerade hier im Forum gehalten habe:

http://forum.ubuntuusers.de/topic/udev-regel-programm-starten-auf-grafischer-obe/#post-5332017

Im Prinzip geht es um dasselbe. Möglicherweise bringt Dir meine (Teil-)Lösung was (vgl. mein drittes Posting).

rbuunk88 schrieb:

Ist vielleicht nicht die beste Lösung, aber eine funktionierende. Die DISPLAY Variable in anacron zu setzen halte ich für noch schlechter, vor allem auf Mehrbenutzer Systemen.

Ja, vielleicht doch ein wenig von hinten durch die Brust ins linke Auge, wenn ich Dein Posting recht verstehe ... 😊 Wo siehst Du denn aber das Problem mit DISPLAY? Ich finde halt problematisch, dass man gar nicht abfragen kann, ob überhaupt gerade ein User in einer GUI unterwegs ist, und wenn ja, welcher.

rbuunk88

Anmeldungsdatum:
30. Juli 2012

Beiträge: 30

Das Problem mit DISPLAY ist ja eben, dass der Wert sich ändern kann. Lässt sich bestimmt mit who auslesen, muss dann allerdings geparst werden. Die Frage ist auch was passiert, wenn niemand angemeldet ist. Hast du mal versucht nach deinem run das Skript mit gksu -w zu öffnen? Vor dem zenity und dem Aufruf des Backup Programms gegebenenfalls auch ein gksu. Falls es als anderer Nutzer als root ausgeführt werden soll dann den User als Option übergeben.

Wenn ich das richtig verstehe soll dein Skript gestartet werden, sobald eine bestimmte Platte angeschlossen wird. Das sollte mit gksu eigentlich funktionieren, eingeloggt bist du ja dann vermutlich sowieso.

Gruß

Antworten |