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.

Répondre à