Tägliches inkrementelles Backup via Script, brauche Hilfe

tgraupne

New member
Registriert
25 Feb. 2008
Beiträge
2.008
Hallo Linux- Freunde ;)

Folgendes Artikel hat mich auf eine Idee gebracht:
http://wiki.ubuntuusers.de/Skripte/inkrementelles_Backup?highlight=backup

Meine Vorstellung:
Jeden Tag wird ein automatisches, inkrementelles Backup meiner wichtigen Daten durchgeführt.
Dies soll übers Netzwerk von statten gehen...USB Stick etc kommt einfach nicht in Frage...da es ja automatisch ablaufen soll.

Meine Hardware:
- IBM ThinkPad T43
- NSLU2 mit unslug

Meine Probleme:
Das wichtigste was zunächst zu lösen ist, ich habe keinen blassen Schimmer, wie ich das Script von ubuntu-users anpassen soll, damit das Backup file übers Netzwerk geschrieben wird?!
FTP, HTTP, SMB ... was ist der richtige Weg??

Sozusagen funktioniert imo nichts :D

Weitere Wünsche:
- Das Script erkennt zuerst automatisch, ob ich mich in meinem home- Netzwerk befinde und das Backup Server überhaupt zur Verfügung steht.
Ist das nicht der Fall soll auch keine Fehlermeldung ausgegeben werden.
- Energiemanagment der SLUG....Ich dachte zuerst, ich kann ihn einfach an meine Steckerleiste klemmen...Doch in seiner Firmeware befinden sich extra Punkte für Shutdown etc....nun weiß ich nicht, ob er es "verträgt" einfach stromlos gemacht zu werden, oder ob er den Shutdown wirklich benötigt?!

Ich hoffe hier jemanden mit Erfahrungen diesbezüglich zu finden....
Oder hat eventuell jemand eine ganz andere Idee?!

Grüße
Tom
 
Auf meinem Debian-Server verwende ich backup-manager.

Das sollte in den Repos von Ubuntu sein (ist ja auch bei Debian drin) und sichert bei mir jeden Tag zu einem gewünschten Zeitpunkt bestimmte Verzeichnisse (per Cronjob).
Man kann auch Ausnahmen festlegen und das Versenden zu einem FTP-Server ist möglich (habe ich aber persönlich nie genutzt).

http://www.backup-manager.org/

Ist eigentlich recht einfach zu administrieren, da es nur ein Configfile gibt und unter Debian per dpkg-reconfigure sogar noch viel einfacher zu handhaben ist.

Achja: Inkrementell geht natürlich auch damit, sogar Verschlüsselung ist möglich.
 
Ich hab mir diesbezüglich auch schon andere tools angeschaut...
rsnapshot, oder sbackup....aber die machen doch alle nichts anderes, oder ?(

Ich denke, dass mein Problem einfach nur im falschen Syntax liegt...oder besser gesagt, ich hoffe das...
Der Test bei sBackup bringt mir zumindest ein grünes Häckchen, wenn ich "ftp://192.168.23.10/tom" angebe...
Fragt dann auch brav nach dem Passwort...doch "Backup Now" bringt als einziges Ergebnis die Prozess id, die ich dann nirgends finden kann.
Demzufolge wird auch kein Backup durchgeführt :(
 
Keine Panik :D .

Mit dem Skript von ubuntuusers.de funktioniert der Remotebackup nur, wenn das Ziel irgendwo im Filesystem eingehängt ist, d.h. per Samba oder NFS. Welche Zugriffsmöglichkeiten bietet Unslung denn?

Ich persönlich würde für ein zuverlässiges Remotebackup jedoch stets den Zugriff per ssh empfehlen, dafür kämen rsync und rdiff-backup in Frage. Letzteres würde deine Aufgabenstellung mit einem Einzeiler in der crontab lösen.
 
Ich denke, dann wird samba wird dann das richtige sein.
Der Dienst läuft auf jeden Fall auf dem Slug...

Wenn ich mir die Eigenschaften des Ordners für die Backups ansehe, dann zeigt es mir als Ort:
Code:
smb://nslu/tom
Doch das einfach anstatt:
einsetzen funktioniert nicht...
 
Nöö mit smb:// klappt das nicht, das verstehen nur manche filemanager. Du musst erst mit 'mount' die SMB-Freigabe in's Dateisystem einhängen. Dazu brauchst auf dem Client noch smbfs installiert.

Und dann so in etwa:
Code:
mount -t smbfs //ipadresse/freigabe /mnt/lan
 
oder gleich mit NFS, das ist glaube ich für solche Zwecke geeigneter als Samba, auch der Netzwerkspeed ist etwas höher, soweit ich mich erinnere (ich habe vor meiner Mac Zeit mit Ubuntu rsnapshot über NFS auf ein NSLU2 mit Debian drauf verwendet, allerdings habe ich es immer manuell gestartet).
 
NFS würde ich auch gern verwenden, nur habe ich in der Richtung leider 0 Ahnung.
Auf meinem Slug läuft momentan wie gesagt unslug 6.04 oder so...möchte momentan ungern umflashen....da ich mir bei solchen Aktion schon oft die Hardware zerschossen habe :(

Ich muss das Laufwerk also zuerst mounten und dann müsste der richtige "samba-pfad" eingefügt werden, ungefär so:
Code:
#!/bin/bash
# Script fuer inkrementelles Backup mit 30 taegigem Vollbackup

### Einstellungen ##
BACKUPDIR="mount -t smbfs //192.168.23.10/tom/backup mnt/lan"      # Pfad zum Backupverzeichnis
 
Hi,

nicht ganz. Du mußt auf jeden Fall zuerst das Paket smbfs installieren.
Dann noch den Mountpoint auf deinem Client anlegen mit:
Code:
sudo mkdir /mnt/lan

Dann das Skript erweitern:
Code:
#!/bin/bash
# Script fuer inkrementelles Backup mit 30 taegigem Vollbackup

### Zielverzeichnis mounten ###
mount.cifs //192.168.23.10/tom /mnt/lan -o user=xxxx password=yyyy

### Einstellungen ##
BACKUPDIR="mnt/lan/backup"      # Pfad zum Backupverzeichnis

Und vielleicht am Ende des Skripts noch ein freundliches Unmount:
Code:
### Zielverzeichnis unmounten ###
umount /mnt/lan

Viel Erfolg!
 
Muss [#sudo mkdir /mnt/lan] immer ausgeführt werden, sozusagen mit in das Script?
Oder eben nur einmal?

Vielen Dank schon mal für eure Hilfe....echt super!!!
 
Mhmm...leider "noch" kein Erfolg

Script sieht jetzt so aus:
Code:
#!/bin/bash
# Script fuer inkrementelles Backup mit 30 taegigem Vollbackup


###Zielverzeichnis mounten###
mount.cifs //192.168.23.10/tom /mnt/lan -o user=tom password=XXXX

### Einstellungen ##
BACKUPDIR="mnt/lan/backup"                # Pfad zum Backupverzeichnis
ROTATEDIR="mnt/backup/rotate"     # Pfad wo die Backups nach 30 Tagen konserviert werden
TIMESTAMP="timestamp.dat"                 # Zeitstempel
SOURCE="home/tom"                            # Verzeichnis(se) welche(s) gesichert werden soll(en)
DATUM="$(date +%d-%m-%Y)"             # Datumsformat einstellen
ZEIT="$(date +%H:%M)"                          # Zeitformat einstellen
Um es gleich zu testen so ausgeführt:
Code:
tom@tom-thinkpad:~$ sudo gedit /etc/cron.daily/backup
tom@tom-thinkpad:~$ sudo /etc/cron.daily/backup
Password: 
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
tar: home/tom/.gvfs: Kann stat nicht ausführen: Permission denied
 
Das liegt an mount.cifs. Geht bei mir so auch nicht. Unerhört sowas, ein Programm das sich nicht an die eigene manpage hält *grummel* ;)

Bei mir funktioniert:
Code:
mount.cifs //192.168.23.10/tom /mnt/lan -o user=tom%XXXX
 
Ok, ich habe nun " passwort=" ersetzt durch "%"
Code:
###Zielverzeichnis mounten###
mount.cifs //192.168.23.10/tom /mnt/lan -o user=tom%XXXX
Konsolenausgabe ist nun:
Code:
tom@tom-thinkpad:~$ sudo /etc/cron.daily/backup
tar: home/tom/.gvfs: Kann stat nicht ausführen: Permission denied
Sorry, dass ich immer so Stück für Stück fragen muss :(

Nur zum Verständnis:
192.168.23.10 ist einfach nur die LAN IP das Slug und "tom" ist der Ordner, in den sich der Unterordner "backup" befindet, in den das file soll.
 
Da müssen wir wohl ~/.gvfs von der Sicherung ausnehmen (dort mountet übrigens der Desktop ferne Shares). Etwas weiter unten im Skript ist die EXCLUDE-Variable. Trag dort mal ein:
Code:
EXCLUDE="--exclude=home/tom/.gvfs"
Falls Du weitere Excludes hast, einfach wie im Original-Skript gezeigt anhängen.

ps. Kein Problem, Fehlersuche (und Lerneffekt) sind immer Schritt für Schritt.
 
Müsste bzw. sollte man nicht in solchen cron Skripten absolute Pfadangaben machen?

Also anstatt home/tom immter /home/tom?
 
Ich hab da keinen Plan, so ist es im ubuntuusers wiki vorgegeben...
Jedenfalls läuft gzip jetzt im Hintergrund...mal sehen wie lange und ob ich dann auch wirklich einzelne Dateien wieder herstellen kann.....
 
[quote='PowerPaul86',index.php?page=Thread&postID=600956#post600956]Müsste bzw. sollte man nicht in solchen cron Skripten absolute Pfadangaben machen?
Also anstatt home/tom immter /home/tom?[/quote]Hatte ich auch gedacht, ist aber einfach eine "Eigenart" dieses Skripts. Zu diesem Behufe ist ein
Code:
### Wechsel in root damit die Pfade stimmen ##
cd /
enthalten.

EDITH @tgraupne:

ich würde wie schon gesagt statt tar eher zu rdiff-backup ( http://rdiff-backup.nongnu.org ) raten. Da hast Du die aktuelle Sicherung immer direkt im Filesystem und brauchst nur für ältere Stände das Tool bemühen.

Ein (stark vereinfachtes) Skript sähe so aus:
Code:
#!/bin/sh

SHARE="//192.168.23.10/tom"
USER="tom%XXXX"

MOUNTP="/mnt/lan"
DEST="/mnt/lan/backup" 
SOURCE="/home/tom" 
EXCLUDE="--exclude /home/tom/.gvfs" # ...
KEEP="1Y" # Inkremente 1 Jahr aufbewahren

# Freigabe mounten
mount.cifs $SHARE $MOUNTP -o user=$USER

# Backup
rdiff-backup --print-statistics --exclude-other-filesystems $EXCLUDE $SOURCE $DEST

# Backupinkremente die älter als $KEEP sind löschen
rdiff-backup --remove-older-than $KEEP $DEST

# Freigabe unmounten
umount $MOUNTP

Weitere Infos siehe man rdiff-backup ...
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben