• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Backup script - wird es so gehen?

Chaoshh

Member
Hallo,
ich habe hier ein kurzes script zur Begutachtung. Wird das so mit meinen Daten funktionieren oder sollte ich noch etwas ändern?

Code:
#!/bin/bash
mount -t cifs -o uid=1000,gid=1000,user=username,password=userpassword //192.168.2.50/server_backup /media/nas1

LOCAL_BACKUP_DIR="/home/username/"
TARGET_DIR="/media/nas1/"

if [ -z "$LOCAL_BACKUP_DIR" ]; then
     logger -p error "No local backup directory given. Aborting"
     exit
fi

today=$(date +%Y%m%d)
[ -d $TARGET_DIR/$today ] || mkdir $TARGET_DIR/$today
rsync -a -r -u -P -h -b --log-file=/var/log/backup-$today.log "$LOCAL_BACKUP_DIR" "$TARGET_DIR" && umount $TARGET_DIR
exit;

Ich möchte jetzt noch das Script erweitern - es soll prüfen ob wir schon Freitag haben und dann ein Vollbackup machen und mit den Inkrementellen Backups wieder fortfahren bis zum nächsten Freitag. Nach 4 Wochen soll das älteste Backup gelöscht werden und Platz für ein neues machen.

Darüber hinaus - im Log habe ich folgende Fehlermeldungen für die einzelnen Dateien (sehr viele) entdeckt:
Code:
2015/01/31 21:44:54 [10014] rsync: chown "/media/nas1/meinedaten/bild.JPG"  failed: Permission denied (13)

Die Datei ist allerdings offenbar kopiert worden. Es scheint auch etwas mit den Dateirechten zu sein. Kann ich das ignorieren?
 

marce

Guru
CIFS verwaltet die Metadaten anders als ein natives Linux-Dateisystem, daher die Fehlermeldung. Ob Du die ignorieren kannst hängt von Deinen Anforderungen ab.

Zudem finde ich persönlich Backups dieser Art mit rsync zwar einfach, im restore aber unglücklich - da nehme ich lieber richtige Backupprogramme, die dif. Backups auch vernünftig handlen können und die Nachteile von rsync nicht haben.
 

tasskaff

Member
Chaoshh schrieb:
Ich möchte jetzt noch das Script erweitern - es soll prüfen ob wir schon Freitag haben und dann ein Vollbackup machen und mit den Inkrementellen Backups wieder fortfahren bis zum nächsten Freitag. Nach 4 Wochen soll das älteste Backup gelöscht werden und Platz für ein neues machen.

Natürlich kannst Du im Script die Ausgabe von "date" durch "awk" jagen und dann das "DayOfWeek" Feld mit "if" überprüfen. Viel einfacher ist es jedoch, die Zeitsteuerung dem örtlichen "cron" zu überlassen und für die unterschiedlichen Aufgaben, jeweils leicht angepasste Kopien deines Urprunscriptes entspr. zu benennen und vom cron starten zu lassen.
Nur so, als Gedanke ...
 
…und rsync ist nicht das Mittel der Wahl, um Backups auf einem anderen Knoten zu erstellen (sondern eher zum Synchronisieren gespiegelter Datenbestände). Da würde ich eher wirklich ein Archivprogramm nehmen. Hier meine recht stabil laufende Config:

Code:
find -L $SRCDIR -maxdepth 10 | afio -oZP /usr/bin/pigz $BAKFILE &> $LOGFILE

…wobei $SRCDIR lauter Symlinks auf alle zu sichernden Ordner enthält.
 
Oben