Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
Quickly1971
- Beiträge: 110
- Registriert: 08.05.2009 15:26:32
Beitrag
von Quickly1971 » 11.09.2009 22:01:42
Hallo Leute.
Ich möchte ein TAR Archiv in einem Rutsch splitten.
Ich habe folgendes Script. Kann mir bitte jemand auf die Sprünge helfen?!?!?
Code: Alles auswählen
#!/bin/bash
#
#
### Zielverzeichnisse
TARGET1="/mnt/backup/smbsrv/daten/"
### Zielverzeichnisse anlegen Rechte und Eigentuemer
mkdir -p $TARGET1
chmod 0770 $TARGET1
chown root:root $TARGET1
umask 007
### tar with absolute-names
TAR="/bin/tar -P -pcf"
### Quellverzeichnisse festlegen
SOURCE1="/home/"
### Basisname der Bakupdatei
BASENAME1="home-"
#### Datum als Variable setzen
DATE=`date +%Y-%m-%d_%H-%M-%S`
### meta info file
IDENT_FILE_NAME1="identfile1.bu"
echo $DATE > $IDENT_FILE_NAME1
# Kompletter Name fuer jede Datei
TARGET_NAME1="$BASENAME1$DATE".tar""
### DaSi 1
# make the tar ball and tar dirs and exit on error
$TAR $TARGET1$TARGET_NAME1 $SOURCE1 $IDENT_FILE_NAME1 | split -b1000m - $TARGET1$TARGET_NAME1 || { echo tar error ; exit 1; }
rm $IDENT_FILE_NAME1 || { echo cleanup error ; exit 1; }
echo $TARGET1$TARGET_NAME1
exit 0
Es kalppt soweit alles...aber nicht das Splitten in 1000MB Files.
Bitte HILFE!!!!
Danke
Quickly
Der Mensch hat drei Wege, klug zu werden.
Erstens durch Nachdenken: Das ist der edelste.
Zweitens durch Nachahmen: Das ist der leichteste.
Drittens durch Erfahrung: Das ist der bitterste.
-
habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von habakug » 11.09.2009 22:19:36
Hallo!
Vielleicht hilft das Lesen der "info":
`-b SIZE'
`--bytes=SIZE'
Put SIZE bytes of INPUT into each output file. SIZE is a number
which may have one of the following multiplicative suffixes:
`b' => 512 ("blocks")
`KB' => 1000 (KiloBytes)
`K' => 1024 (KibiBytes)
`MB' => 1000*1000 (MegaBytes)
`M' => 1024*1024 (MebiBytes)
`GB' => 1000*1000*1000 (GigaBytes)
`G' => 1024*1024*1024 (GibiBytes)
and so on for `T', `P', `E', `Z', and `Y'.
Gruß, habakug
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 11.09.2009 22:59:55
Quickly1971 hat geschrieben:$TAR $TARGET1$TARGET_NAME1 $SOURCE1 $IDENT_FILE_NAME1 | split -b1000m - $TARGET1$TARGET_NAME1 || { echo tar error ; exit 1; }
erstmal, durch den unnötigen Einsatz von Environmentvariablen wird das Script nur unübersichtlich
wenn du die "-f" Option beim tar verwendest, wird der Inhalt des Archives nur in die Datei geschrieben, das split-Kommando bekommt daher hier über die Pipe keinen ( brauchbaren ) Input.
Gruß
gms
-
Quickly1971
- Beiträge: 110
- Registriert: 08.05.2009 15:26:32
Beitrag
von Quickly1971 » 17.09.2009 17:16:50
Hallo.
Danke für die Hilfe.
Ohne die Option "f" hat es dann geklappt.
Vielen Dank.
Quickly
Der Mensch hat drei Wege, klug zu werden.
Erstens durch Nachdenken: Das ist der edelste.
Zweitens durch Nachahmen: Das ist der leichteste.
Drittens durch Erfahrung: Das ist der bitterste.