Bisher führte ich die Backups immer manuell aus: Platten gemounted, Grsync gestartet und beim voreingestellten Profil auf Ausführen gedrückt. Von einer gewissen Regelmäßigkeit war da nicht zu sprechen.
Es wäre möglich, das in Linux eingebaute cron zu nutzen. Für einen Desktop-Rechner ist der Cron-Job jedoch auch keine Alternative. Zur eingestellten Update-Zeit ist der Rechner möglicherweise nur an 1 von 7 Tagen wirklich eingeschaltet.
Hier kommt anacron ins Spiel. Mit anacron ist es möglich, mit einer gewissen Verzögerung nach dem Programmaufruf eine Aktion auszuführen. Den Programmaufruf von anacron wollte ich idealerweise nach dem Einloggen auslösen, sodass das Backup nach ca. 5 Minuten startet. Das Backupscript selbst wird dann von anacron aufgerufen.
Nachfolgend werden die beiden Stufen "Programmaufruf über anacron" und "Backupscript" beschrieben.
Sollte man jedoch wünschen, dass die externe Platte das Backup selbst ausführt, macht sich autorun ganz gut. Beim Einstecken des USB-Devices kann das Backup ausgelöst werden.
Umgekehrt ist es auch ganz praktisch, das Backup eines USB-Sticks auf eine lokale Platte zu starten
Die sehr praktische Backup-Funktion über autorun erläutere ich im dritten Abschnitt.
Terminaleingaben wie folgt: (# = Kommentare, $ = Terminal-Eingabezeilen, alles andere = Terminal-Ausgaben)
1.) Programmaufruf über anacron
### anacron installieren (falls noch nicht vorhanden)
$ sudo apt-get install anacron
### anacron für user "test" konfigurieren (s. auch INFO)
$ sudo groupadd anacron
$ sudo adduser test anacron
$ sudo chown root.anacron /var/spool/anacron
$ sudo chmod g+w /var/spool/anacron
### info-files anlegen (spool)
$ touch /var/spool/anacron/test.anacron.daily
$ touch /var/spool/anacron/test.anacron.weekly
$ touch /var/spool/anacron/test.anacron.monthly
### Rechte vergeben
$ chown root.anacron /var/spool/anacron/test.*
$ sudo chmod g+w /var/spool/anacron/test.*
$ sudo chmod g+r /var/spool/anacron/test.*
### INFO das Spool-Verzeichnis/Dateien des Users kann auch ins $Home verlegt werden
### hierzu muss der anacron-Start (s. unten) wie folgt erfolgen:
### /usr/sbin/anacron -s -S $HOME/.etc/anacron_spool/ -t $HOME/.etc/anacrontab
### Das selbst gewählte Verzeichnis bitte vorher anlegen!
### Für diesen Fall sind nur die nachfolgenden Arbeitsschritte notwendig:
### ---------------------------------------------------------------------------------------------------
### test's anacron im Home-Verzeichnis verankern (Verzeichnis ~/.etc nur beispielhaft benutze ich aber so)
$ mkdir $HOME/.etc/anacron.daily
$ mkdir $HOME/.etc/anacron.weekly
$ mkdir $HOME/.etc/anacron.monthly
### anacrontab anlegen
$ touch $HOME/.etc/anacrontab
### anacrontab bearbeiten: mit mcedit ,auch gedit etc. möglich
$ mcedit $HOME/.etc/anacrontab
________________ INHALT $HOME/.etc/anacrontab______________
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# period delay job-identifier command
# 5 min daily, 10 min weekly, 15 min monthly
1 5 test.anacron.daily nice run-parts --report $HOME/.etc/anacron.daily
7 10 test.anacron.weekly nice run-parts --report $HOME/.etc/anacron.weekly
30 15 test.anacron.monthly nice run-parts --report $HOME/.etc/anacron.monthly
_______________ENDE INHALT $HOME/.etc/anacrontab ___________
Script-Dateien, die man in den .daily/.weekly/.monthly-Verzeichnissen ablegt werden nach dem Start von anacron jeweils täglich/wöchentlich/monatlich gestartet.
Erst nach dem eigentlichen Start von anacron wird das Backup gestartet.
$ crontab -e
_______________ eintragen ______________________
@reboot /usr/sbin/anacron -t $HOME/.etc/anacrontab
______________________________________________
Der Eintrag wird über "hinzufügen" erstellt:
Der folgende Eintrag startet anacron des Users "test" nach dem Login:
/usr/sbin/anacron -t /home/test/.etc/anacrontab
2.) Backupscript
Welche Dateien lege ich jetzt in meine anacron.daily/.weekly/.monthly-Verzeichnisse?
Ein Problem ist manchmal schon, die Platte ohne admin-Rechte (root) zu mounten (einhängen). Das folgende Beispiel hängt die Platte mit dem Label "raidstor" ein und sichert das Home-Verzeichnis des users "test" komplett in das Unterverzeichnis BACKUP/home der Platte. (Der Username test muss natürlich ersetzt werden)
HINWEIS: Ich habe das nur mit Linux-Dateisystemen benutzt (ext2/ext3/ext4). Für NTFS-Platten könnten zusätzliche Optionen für rsync notwendig werden.
Benötigte Pakete: libnotify-bin gvfs-bin
# Pakete installieren
$ sudo apt-get install libnotify-bin gvfs-bin
______________ file: $HOME/.etc/anacron.daily/localbackup_______________
#!/bin/sh
startmessage='Es wird eine Sicherung auf raidstor durchgeführt.'
midmessage='Der Computer darf während dieses Vorgangs nicht heruntergefahren werden!'
finishmessage='Die Sicherung ist abgeschlossen!'
notify-send -u normal -t 3 -i /usr/share/icons/grsync.png "$startmessage"
#MOUNTEN
gvfs-mount -d `readlink -f /dev/disk/by-label/raidstor`
sleep 2
notify-send -u normal -t 3 -i /usr/share/icons/gnome/scalable/status/dialog-warning.svg "$midmessage"
##BACKUP ausführen
rsync -ax --delete --delete-excluded --exclude=.gksu.lock --exclude=.thumbnails /home/test /media/raidstor/BACKUP/home
##BACKUP beenden
notify-send -u normal -t 3 -i /usr/share/icons/gnome/scalable/emblems/emblem-default.svg "$finishmessage"
______________________________________________________________________________________________
3.) Sicherung mittels autorun: Beispiel extern -> local
Das autorun-Script kann auf der zu externen Platte selbst gespeichert werden und mittels autostart wird das Backup ausgelöst. Hervorragend für USB-Sticks oder externe Festplatten.
Das Backup startet im Beispiel von einer externen (USB-)Platte KEYLINUX und sichert auf raidstor. Der umgekehrte Fall ist sicherlich auch möglich. Hierzu muss das Script nach dem Beispiel aus 2.) modifiziert werden.
Schreibrechte des Users auf dem Ziel bzw. Leserechte auf dem Stick sind von Vorteil!
HINWEIS: Ich habe das nur mit Linux-Dateisystemen benutzt (ext2/ext3/ext4). Für NTFS-Platten könnten zusätzliche Optionen für rsync notwendig werden.
Benötigte Pakete: libnotify-bin gvfs-bin
# Pakete installieren
$ sudo apt-get install libnotify-bin gvfs-bin
### Platte anstecken und per Nautilus einhängen
(#manuell einhängen)$ gvfs-mount -d `readlink -f /dev/disk/by-label/KEYLINUX`
$ cd /media/KEYLINUX
### Script-Datei anlegen (mit Users-Rechten, für root sudo benutzen -> $ sudo touch .autorun)
### Alternativ geht auch autorun.sh oder autorun (Vorteil .autorun ist versteckt)
$ touch .autorun
### Start-Rechte vergeben für user
$ chmod u+x .autorun
### alternativ: Start-Rechte vergeben für Gruppe
$ chmod g+x .autorun
### alternativ: Start-Rechte vergeben für alle
$ chmod a+x .autorun
### Script-Datei mir mcedit bearbeiten (oder auch Editoren wie "gedit" etc. möglich)
$ mcedit .autorun
__________________________ file: .autorun ________________________________
#!/bin/sh
startmessage='Sicherung von KEYLINUX auf raidstor wird durchgeführt.'
midmessage='KEYLINUX darf während dieses Vorgangs nicht getrennt werden!'
finishmessage='Die Sicherung von KEYLINUX ist abgeschlossen!'
notify-send -u normal -t 3 -i /usr/share/icons/grsync.png "$startmessage"
#raidstor MOUNTEN
gvfs-mount -d `readlink -f /dev/disk/by-label/raidstor`
sleep 2
notify-send -u normal -t 3 -i /usr/share/icons/gnome/scalable/status/dialog-warning.svg "$midmessage"
##BACKUP als user ausführen (nur mit entsprechenden Rechten)
rsync -ax --delete /media/KEYLINUX /media/raidstor/BACKUP
##BACKUP als root ausführen (Zeile ändern)
## gksudo "rsync -ax --delete /media/KEYLINUX /media/raidstor/BACKUP"
##BACKUP beenden
notify-send -u normal -t 3 -i /usr/share/icons/gnome/scalable/emblems/emblem-default.svg "$finishmessage"
_____________________________________________________________________
Beim Anstecken des USB-Devices erscheint nun folgende Nachricht:
Es wäre möglich, das in Linux eingebaute cron zu nutzen. Für einen Desktop-Rechner ist der Cron-Job jedoch auch keine Alternative. Zur eingestellten Update-Zeit ist der Rechner möglicherweise nur an 1 von 7 Tagen wirklich eingeschaltet.
Hier kommt anacron ins Spiel. Mit anacron ist es möglich, mit einer gewissen Verzögerung nach dem Programmaufruf eine Aktion auszuführen. Den Programmaufruf von anacron wollte ich idealerweise nach dem Einloggen auslösen, sodass das Backup nach ca. 5 Minuten startet. Das Backupscript selbst wird dann von anacron aufgerufen.
Nachfolgend werden die beiden Stufen "Programmaufruf über anacron" und "Backupscript" beschrieben.
Sollte man jedoch wünschen, dass die externe Platte das Backup selbst ausführt, macht sich autorun ganz gut. Beim Einstecken des USB-Devices kann das Backup ausgelöst werden.
Umgekehrt ist es auch ganz praktisch, das Backup eines USB-Sticks auf eine lokale Platte zu starten
Die sehr praktische Backup-Funktion über autorun erläutere ich im dritten Abschnitt.
Terminaleingaben wie folgt: (# = Kommentare, $ = Terminal-Eingabezeilen, alles andere = Terminal-Ausgaben)
1.) Programmaufruf über anacron
### anacron installieren (falls noch nicht vorhanden)
$ sudo apt-get install anacron
### anacron für user "test" konfigurieren (s. auch INFO)
$ sudo groupadd anacron
$ sudo adduser test anacron
$ sudo chown root.anacron /var/spool/anacron
$ sudo chmod g+w /var/spool/anacron
### info-files anlegen (spool)
$ touch /var/spool/anacron/test.anacron.daily
$ touch /var/spool/anacron/test.anacron.weekly
$ touch /var/spool/anacron/test.anacron.monthly
### Rechte vergeben
$ chown root.anacron /var/spool/anacron/test.*
$ sudo chmod g+w /var/spool/anacron/test.*
$ sudo chmod g+r /var/spool/anacron/test.*
### INFO das Spool-Verzeichnis/Dateien des Users kann auch ins $Home verlegt werden
### hierzu muss der anacron-Start (s. unten) wie folgt erfolgen:
### /usr/sbin/anacron -s -S $HOME/.etc/anacron_spool/ -t $HOME/.etc/anacrontab
### Das selbst gewählte Verzeichnis bitte vorher anlegen!
### Für diesen Fall sind nur die nachfolgenden Arbeitsschritte notwendig:
### ---------------------------------------------------------------------------------------------------
### test's anacron im Home-Verzeichnis verankern (Verzeichnis ~/.etc nur beispielhaft benutze ich aber so)
$ mkdir $HOME/.etc/anacron.daily
$ mkdir $HOME/.etc/anacron.weekly
$ mkdir $HOME/.etc/anacron.monthly
### anacrontab anlegen
$ touch $HOME/.etc/anacrontab
### anacrontab bearbeiten: mit mcedit ,auch gedit etc. möglich
$ mcedit $HOME/.etc/anacrontab
________________ INHALT $HOME/.etc/anacrontab______________
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# period delay job-identifier command
# 5 min daily, 10 min weekly, 15 min monthly
1 5 test.anacron.daily nice run-parts --report $HOME/.etc/anacron.daily
7 10 test.anacron.weekly nice run-parts --report $HOME/.etc/anacron.weekly
30 15 test.anacron.monthly nice run-parts --report $HOME/.etc/anacron.monthly
_______________ENDE INHALT $HOME/.etc/anacrontab ___________
Script-Dateien, die man in den .daily/.weekly/.monthly-Verzeichnissen ablegt werden nach dem Start von anacron jeweils täglich/wöchentlich/monatlich gestartet.
Erst nach dem eigentlichen Start von anacron wird das Backup gestartet.
- Der Start kann über eine crontab-Eintrag stattfinden:
$ crontab -e
_______________ eintragen ______________________
@reboot /usr/sbin/anacron -t $HOME/.etc/anacrontab
______________________________________________
- ODER: anacron nach Login über "Startprogramme" starten
Der Eintrag wird über "hinzufügen" erstellt:
Der folgende Eintrag startet anacron des Users "test" nach dem Login:
/usr/sbin/anacron -t /home/test/.etc/anacrontab
2.) Backupscript
Welche Dateien lege ich jetzt in meine anacron.daily/.weekly/.monthly-Verzeichnisse?
Ein Problem ist manchmal schon, die Platte ohne admin-Rechte (root) zu mounten (einhängen). Das folgende Beispiel hängt die Platte mit dem Label "raidstor" ein und sichert das Home-Verzeichnis des users "test" komplett in das Unterverzeichnis BACKUP/home der Platte. (Der Username test muss natürlich ersetzt werden)
HINWEIS: Ich habe das nur mit Linux-Dateisystemen benutzt (ext2/ext3/ext4). Für NTFS-Platten könnten zusätzliche Optionen für rsync notwendig werden.
Benötigte Pakete: libnotify-bin gvfs-bin
# Pakete installieren
$ sudo apt-get install libnotify-bin gvfs-bin
______________ file: $HOME/.etc/anacron.daily/localbackup_______________
#!/bin/sh
startmessage='Es wird eine Sicherung auf raidstor durchgeführt.'
midmessage='Der Computer darf während dieses Vorgangs nicht heruntergefahren werden!'
finishmessage='Die Sicherung ist abgeschlossen!'
notify-send -u normal -t 3 -i /usr/share/icons/grsync.png "$startmessage"
#MOUNTEN
gvfs-mount -d `readlink -f /dev/disk/by-label/raidstor`
sleep 2
notify-send -u normal -t 3 -i /usr/share/icons/gnome/scalable/status/dialog-warning.svg "$midmessage"
##BACKUP ausführen
rsync -ax --delete --delete-excluded --exclude=.gksu.lock --exclude=.thumbnails /home/test /media/raidstor/BACKUP/home
##BACKUP beenden
notify-send -u normal -t 3 -i /usr/share/icons/gnome/scalable/emblems/emblem-default.svg "$finishmessage"
______________________________________________________________________________________________
3.) Sicherung mittels autorun: Beispiel extern -> local
Das autorun-Script kann auf der zu externen Platte selbst gespeichert werden und mittels autostart wird das Backup ausgelöst. Hervorragend für USB-Sticks oder externe Festplatten.
Das Backup startet im Beispiel von einer externen (USB-)Platte KEYLINUX und sichert auf raidstor. Der umgekehrte Fall ist sicherlich auch möglich. Hierzu muss das Script nach dem Beispiel aus 2.) modifiziert werden.
Schreibrechte des Users auf dem Ziel bzw. Leserechte auf dem Stick sind von Vorteil!
HINWEIS: Ich habe das nur mit Linux-Dateisystemen benutzt (ext2/ext3/ext4). Für NTFS-Platten könnten zusätzliche Optionen für rsync notwendig werden.
Benötigte Pakete: libnotify-bin gvfs-bin
# Pakete installieren
$ sudo apt-get install libnotify-bin gvfs-bin
### Platte anstecken und per Nautilus einhängen
(#manuell einhängen)$ gvfs-mount -d `readlink -f /dev/disk/by-label/KEYLINUX`
$ cd /media/KEYLINUX
### Script-Datei anlegen (mit Users-Rechten, für root sudo benutzen -> $ sudo touch .autorun)
### Alternativ geht auch autorun.sh oder autorun (Vorteil .autorun ist versteckt)
$ touch .autorun
### Start-Rechte vergeben für user
$ chmod u+x .autorun
### alternativ: Start-Rechte vergeben für Gruppe
$ chmod g+x .autorun
### alternativ: Start-Rechte vergeben für alle
$ chmod a+x .autorun
### Script-Datei mir mcedit bearbeiten (oder auch Editoren wie "gedit" etc. möglich)
$ mcedit .autorun
__________________________ file: .autorun ________________________________
#!/bin/sh
startmessage='Sicherung von KEYLINUX auf raidstor wird durchgeführt.'
midmessage='KEYLINUX darf während dieses Vorgangs nicht getrennt werden!'
finishmessage='Die Sicherung von KEYLINUX ist abgeschlossen!'
notify-send -u normal -t 3 -i /usr/share/icons/grsync.png "$startmessage"
#raidstor MOUNTEN
gvfs-mount -d `readlink -f /dev/disk/by-label/raidstor`
sleep 2
notify-send -u normal -t 3 -i /usr/share/icons/gnome/scalable/status/dialog-warning.svg "$midmessage"
##BACKUP als user ausführen (nur mit entsprechenden Rechten)
rsync -ax --delete /media/KEYLINUX /media/raidstor/BACKUP
##BACKUP als root ausführen (Zeile ändern)
## gksudo "rsync -ax --delete /media/KEYLINUX /media/raidstor/BACKUP"
##BACKUP beenden
notify-send -u normal -t 3 -i /usr/share/icons/gnome/scalable/emblems/emblem-default.svg "$finishmessage"
_____________________________________________________________________
Beim Anstecken des USB-Devices erscheint nun folgende Nachricht:
Nach dem Klick auf OK, wird das Vertrauen des Scriptes eingefordert und los gehts...
Jetzt kommentieren