On Tue, 10 Oct 2000, Daniel Cordey wrote:
> d'utilliser dd en combinaison avec 'mt'. Ce qui permettrait d'avoir des
pas avec un raw device *disque* (c'est ce que j'entendais). Je ne parlais
pas d'un device tape (car sous Linux, il n'existe pas de raw device en
fait).
Résumons:
Problème: backuper un fs dans un fichier tar, le résultat est plus que
2 GB, Linux ix86 ne supporte pas, que faire ?
-> backuper sur une tape assez grande
-> backuper dans un raw device disque (/dev/sda, ou une partition),
(mais une INUTILISEE, hein, donc sans fs dessus !)
-> splitter avec la méthode montrée précédemment pour faire un
backup énorme sur plusieurs CDs à la suite
-> utiliser Amanda et l'option chunksize -1, cela coupera le
fichier tar en morceau sur le hold disk (sinon Amanda le
mettra directement sur tape)
-> utiliser afbackup
-> utiliser multivol
-> utiliser filed
-> utiliser 2.4testX et espérer
> marqueurs entre les backups; donc plus de necessite de memoriser
> exactement le nombre de blocks deja ecrits.
Oui, voici un bout d'une tape Amanda, listée avec le script ci-après.
Amanda met toujours un header de 32k avec les nom/date du backup, les
instructions de restore, puis le backup tar/dump/etc.
<pc5> schaefer:/tmp> sh /tmp/list_tape.sh a
AMANDA: TAPESTART DATE 20000926 TAPE DilogEngSet137
FILE 1 (real: 1) AMANDA: FILE 20000926 sun1 /usr lev 0 comp N program
/usr/local/bin/gtar
FILE 2 (real: 2) AMANDA: FILE 20000927 debian /boot lev 1 comp N program /bin/tar
FILE 3 (real: 3) AMANDA: FILE 20000927 golid /scratch/world lev 1 comp N program
/bin/tar
FILE 4 (real: 4) AMANDA: FILE 20000927 sun1 / lev 1 comp N program /usr/local/bin/gtar
FILE 5 (real: 5) AMANDA: FILE 20000927 golid /spare lev 1 comp N program /bin/tar
FILE 6 (real: 6) AMANDA: FILE 20000927 golid / lev 1 comp N program /bin/tar
FILE 7 (real: 7) AMANDA: FILE 20000927 golid /users lev 1 comp N program /bin/tar
[ etc ]
Le script:
#! /bin/sh
TAPE=/dev/nst0
COUNT=1
mt -f $TAPE rewind && dd if=$TAPE bs=32k count=1 2>/dev/null | (head -1;
cat > /dev/null) && while mt -f $TAPE fsf 1 ; do
if [ $# = 0 ]; then
echo -n "FILE $COUNT "
else
echo -n "FILE $COUNT (real: `mt -f /dev/nst0 status | awk '/^file number/ {
print $NF; }'`) "
fi
dd if=$TAPE bs=32k count=1 2>/dev/null | (head -1; cat > /dev/null)
COUNT=`expr $COUNT + 1`
done
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.