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:
| #!/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:
| #!/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