[linux-support] Backup Script in Ubuntu mit root Rechten laufen lassen

Philipp Sury philipp.sury at gmx.ch
Sun Nov 13 11:35:47 CET 2005


Guten Morgen Linuxgemeinde

Nachdem es mir vor zwei Wochen die Festplatte zerfetzt hat und ich
mittlerweile eine innige Beziehung mit dd_rescue und fsck geschlossen
habe, will ich in Zukunft den Nervenkitzel ein wenig einschränken und
mache mich jetzt zum ersten Mal richtig hinter Shellscripts.

Mein Ziel ist es, mit einem cronjob und rsync in regelmässigen Abständen
meine Daten von Platte 1 auf Platte 2 zu sichern.

Ich habe neu in meinem Gehäuse zwei 120GB Platten, beide genau gleich
partitioniert:

/dev/hdb1 ist /
/dev/hdb2 ist swap
/dev/hdb3 ist /home

/dev/hdd1 ist /backup/system
/dev/hdd2 ist swap
/dev/hdd3 ist /backup/daten


Der folgende Befehl funktioniert einwandfrei:

rsync -Cavz --delete /home/ /backup/daten/


Das folgende Script funktioniert schon nicht mehr so toll:

#!/bin/bash
mount /backup/daten
rsync -Cavz --delete /home/ /backup/daten/
umount /backup/daten

Das Problem: Ubuntu möchte, dass ich die zweite Harddisk mit sudo mounte
resp. unmounte. Das passt mir aber nicht, da ich das Script ja später in
einem cronjob verwenden will. Klar, ich könnte in fstab die Partitionen
so eintragen, dass auch ein regulärer User sie mounten kann, aber ich
möchte es so haben, dass nur root die Partition zu backup Zwecken
mounted und dann wieder unmounted. Das Script hat übrigens root als
owner und liegt auch im /root Ordner.

Hier also meine Fragen:

1) Wie kann man in Ubuntu ein Script so mit root Rechten versehen, dass
es alles tun kann, was ein "richtiger root" kann, ohne dass ich den
Umweg über sudo und Passwortabfrage machen muss?

2) Es wäre vermutlich intelligent, noch einen Test einzubauen, der
überprüft, ob die Partitionen auch korrekt gemounted wurden, bevor rsync
gestartet wird. Wie geht das?

3) Ich möchte auch alle Unterordner von / (mit Ausnahme von /backup und
/home) mit /backup/system rsyncen. Jetzt könnte ich natürlich für jeden
Ordner im Script eine Zeile schreiben, aber das geht doch sicher
eleganter... wie lauten die entsprechenden Befehle? Vermutlich müsste
ich irgendwie ein ls von / machen und dies dann als Variable an rsync
übergeben, aber wie könnte man dann /backup und /home wieder
ausschliessen? (shellscript newbie here!)

4) Ich habe ja auf der zweiten Platte noch eine zweite swap Partition,
welche bisher ungenutzt herumliegt. Kann ich einfach einen zweiten swap
Eintrag in /etc/fstab machen und sie wird vom System genutzt?

Live long and prosper,

	Parcival

-- 
***********************************
Philipp Sury
philipp.sury at gmx.ch
http://www.parcival.org
***********************************
I'll leave the front porch light on
for you.

-- Michael D. Watts
***********************************


More information about the Linux-support mailing list