rsync

From: Thomas Westerholt (thomas.westerholt@nwn.de)
Date: Thu Oct 30 2003 - 01:43:12 CET


Hi Zusammen!

> Am Sonntag, 26. Oktober 2003 14:25 schrieb Ingo Wilken:
> > Per smbfs gemountete Windows-Filesysteme haben leider ein 2GB-Limit für
> > Files (selbst wenn das eigentliche FS auf Windows-Seite das nicht hat).
> > Ein Backup als tar-Archiv auf ein SMB-gemountetes Dir schieben kann also
> > problematisch werden. NFS hat übrigens das gleiche Problem. *grummel*
>
> Ärgerlich. Dem kann man doch einfach durch Aufteilung der Archivdatei
> beikommen, oder? tar --help
>
> -M, --multi-volume mehrteiliges Archiv
anlegen/listen/herausholen
> -L, --tape-length=ZAHL Medium wechseln, wenn ZAHL KBytes geschrieben
sind
>

Ne, das geht meineswissens leider nur mit Tapes. (Sage mir einer, wenn ich
mich irre, denn so eine Funktionalität würde mir auch sehr nützen :-)

Ich habe das mittels split gelöst, dem ich das getarte "reinpipe", hier ein
Beispiel-Skript backup.sh:

.....schnipp.....
#!/bin/bash
# Angaben zur Mailgenerierung
VON=backup@weissbescheid.de
AN=admin@weissbescheid.de
BETR="Backup"

# Ort der Log-Datei
LOG="/var/log/backup.log"

# Die Datei enthält untereinander aufgeführt (Zeilenumbrüche)
auszuschliessende Verzeichnisse (siehe dazu Hilfe zu tar)
EXCLUDEFILE="/tmp/backup.exclude"

# Welches Verzeichnis soll gesichert werden?
QUELLE=$1

# Name des tar.gz-Archives
TAR=$2

# Wie gross sollen die jew. Archiv-Elemente sein (Angabe mit b für Byte, k
für KByte und m für MByte, also z.B: "650m" oder "1440k" - Siehe Hilfe zu
split)?
FILESIZE=$3

# In welches Verzeichnis soll gesichert werden?
VERZ=$4

# Soll gemountet werden? Wird ein 4. Parameter gefunden (1 oder irgendwas
anderes ;-) wird versucht das $VERZ zu mounten.
# (Der Mountpoint $VERZ muss hier in der fstab eingetragen sein, bei
smbmount mit entsprechenden Parametern usw.)
MOUNT=$5

if [ "$VERZ" = '' ]; then
        VERZ="/backup"
fi

#TAR=$QUELLE"_"$TAR
echo $TAR

echo "Backup des Routers am:" >$LOG
date >>$LOG 2>&1

# Mounten von $VERZ (Der Mountpoint muss hier in der fstab eingetragen sein,
bei smbmount mit entsprechenden Parametern usw.)
if [ "$MOUNT" != '' ]; then
        /bin/mount $VERZ >>$LOG 2>&1
fi

# tar der $QUELLE auf $VERZ erzeugen
# Beispiel wie es aussieht: tar -cz --exclude /proc --exclude /dev/* -v /
|split -b 650m --verbose - /backup/router.tar.gz >>/mnt/ 2>&1
tar -cz -X $EXCLUDEFILE -v $QUELLE |split -b $FILESIZE --verbose -
$VERZ/$TAR >>$LOG 2>&1

# Mount aufheben
if [ "$MOUNT" != '' ]; then
        /bin/umount $VERZ>>$LOG 2>&1
fi

# Ergebnis per Mail (mittels eigenen Skriptes mail.pl) senden
mail.pl $VON $AN $BETR $LOG

.....schnipp.....

Dazu ein Beispiel-Aufruf:
# backup /big big_29.10.03.tar.gz 650m /backup 1

Die gesplitteten Files haben dann die angegebene Größe und können einfach
join wieder zusammengefügt werden. Ich habe dafür in meinen Anfängen eigens
ein Skript geschrieben, dass für jeden Part nach dem Ort fragt. So kann man
angenehm ein auf mehrere CD's verteiltes Archiv zusammensetzen. Benötigt
wird in jedem Fall Platz für das zusammengesetzte Archiv ;-(.
Ich habe es mal angehängt, würde mich aber nicht wundern, wenn das nicht
durch die Mailingliste kommt (Restiktionen in Majordomo).

Hoffe, das hat geholfen. :-)

Gruß,
Thomas





This archive was generated by hypermail 2.1.7 : Thu Oct 30 2003 - 01:43:26 CET