Les paramètres importants sont :
mt -f /dev/st0 rewind --> Remettre la bande au début
mt -f /dev/st0 setblk 0 --> Activer la taille de block variable
mt -f /dev/st0 compression --> Activer la compression des cassettes
J'en profite pour poster le script complet, si vous voyez des conneries dedans n'hésitez pas :)
#!/bin/sh
#
# --------------------------------------
# But : sauvegarde des fichiers sur DAT
# Auteur : Philippe MALADJIAN
# Crée : 16/07/2003
# Modifié : 10/08/2005
# --------------------------------------
#
# controle des parametres --------------
if [ $# -lt 1 ]
then
echo "Erreur : vous devez donner une action"
echo "Syntaxe : backup (sauv|rest)"
echo " - backup sauv --> lance une sauvegarde"
echo " - backup rest --> restaure la TOTALITE de la bande"
# Indisponible pour le moment
echo " - backup rest [nomfichier] --> restaure nomfichier"
exit
fi
# definition des variables -------------
PERIF=/dev/st0
SRCDIR=/home/users
LOGDIR=/var/log/backup.log
# --------------------------------------
# Sauvegarde ---------------------------
if [ $1 = sauv ]
then
DATE=`date +%d%b-%H:%M`
echo "[$DATE] : Lancement de la sauvegarde de $SRCDIR" >> $LOGDIR
# Remise au debut de la bande ----------------------
MT=`mt rewind 2>>$LOGDIR`
if [ $? = 2 ]
then
echo "[$DATE] : Erreur avec la cassette" >> $LOGDIR
exit
fi
# Lancement de la sauvegarde ------------------------
mt -f $PERIF rewind
mt -f $PERIF setblk 0
mt -f $PERIF compression
TAR=`tar -cf $PERIF $SRCDIR -X /home/informatique/admin/backup/tar_exclude 2>>$LOGDIR`
if [ $? = 2 ]
then
echo "[$DATE] : Erreur lors de la sauvegarde" >> $LOGDIR
exit
fi
# Creation du fichier index -------------------------
DATE=`date +%d%b-%H:%M`
INDEX=`tar -tf $PERIF > /tmp/index.txt 2>>$LOGDIR`
if [ $? = 2 ]
then
echo "[$DATE] : Erreur a la creation de l'index" >> $LOGDIR
exit
fi
echo "[$DATE] : Sauvegarde de $SRCDIR terminee" >> $LOGDIR
exit
fi
# --------------------------------------
Restauration -------------------------
# !!!!!!!!!! ATTENTION !!!!!!!!!!!!!!!!!
# !! Restauration de la TOTALITE de !!
# !! la bande !!
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if [ $1 = rest ]
then
# Restauration complete ------------
if [ -z "$2" ]
then
echo "ATTENTION vous avez choisis de faire une restauration complete"
echo "Elle sera effectuee dans le repertoire d'ou vous executez la commande"
echo "Souhaitez-vous continuer ? (o/n) :"
read VAR
if [ $VAR = o ]
then
MT=`mt rewind`
if [ $? = 2 ]
then
echo "mt: Cassette non chargee !"
exit
fi
TAR=`tar -xfpv $PERIF`
if [ $? = 2 ]
then
echo "tar: Impossible de restaurer la cassette"
exit
fi
exit
fi
if [ $VAR = n ]
then
exit
fi
else
# Restauration d'un fichier --------
echo "Fonction indisponible pour le moment"
exit
#MT=`mt rewind`
#if [ $? = 2 ]
#then
# echo "mt: Cassette non chargee !"
# exit
#fi
#TAR=`tar -xfpv $PERIF "$2"`
#if [ $? = 2 ]
#then
# echo "tar: Impossible de restaurer le fichier"
# exit
#fi
exit
fi
fi
# --------------------------------------
# pas de parametre passe ---------------
echo "Parametre incorrecte !"
exit
# --------------------------------------
# oups
Posté par Philippe M (site web personnel) . Évalué à 7.
Born to Kill EndUser !
# tar/zip
Posté par Antoine . Évalué à 3.
Ca dépend quel format tu utilises. Le format zip (commandes zip et unzip) compresse chaque fichier séparément, donc tu dois pouvoir récupérer un fichier indépendamment des autres. Par contre, il est à craindre qu'il faille quand même aller chercher les infos de répertoire du .zip à un bout ou l'autre de la bande...
[^] # Re: tar/zip
Posté par Philippe M (site web personnel) . Évalué à 3.
Pour ce qui est du parcours de la bande, j'utilise la création d'un fichier index.txt
Comme ça si une personne me demande le fichier toto.superimportant mais qu'elle ne connait pas le répertoire ou même le nom complet, je fais un petit grep sur le fichier index.txt et hop je récupère le necessaire.
Born to Kill EndUser !
[^] # Re: tar/zip
Posté par TazForEver . Évalué à 2.
[^] # Re: tar/zip
Posté par Antoine . Évalué à 3.
[^] # Re: tar/zip
Posté par Jerome Herman . Évalué à 2.
La bonne façon de faire est de concatener les fichiers et les compresser en même temps. On obtient ainsi un seul dictionnaire pour la compression et donc de bien meilleure taux. Ensuite il suffit de prendre le catalogue du concateneur et de chercher l'index de début du fichier qui nous interresse.
C'est ce que fait DAR.
[^] # Re: tar/zip
Posté par PLuG . Évalué à 5.
un tar sur une bande deffectueuse => on recupere aisement la totalite des fichiers n'utilisant pas le morceau de bande abimé.
un tar gzippé ou bzippé => plus rien.
# Euh...
Posté par Gyro Gearllose . Évalué à 4.
A la lecture de ton script, y'a un truc qui me chiffonne....
Pourquoi lancer ces commandes :
mt -f $PERIF compression
TAR=`tar -cf $PERIF $SRCDIR -X /home/informatique/admin/backup/tar_exclude 2>>$LOGDIR`
Quand on peut faire :
TAR=`tar -zcf $PERIF $SRCDIR -X /home/informatique/admin/backup/tar_exclude 2>>$LOGDIR`
Pour avoir une compression au format gzip, ou
TAR=`tar -jcf $PERIF $SRCDIR -X /home/informatique/admin/backup/tar_exclude 2>>$LOGDIR`
pour avoir une compression au format bzip2 (si la commande tar est compilée avec l'option qui va bien) ?
Personnellement, j'utilise la seconde, et ça fonctionne on ne peut mieux.
Je n'ai pas de chiffres sous la main, alors quelqu'un de plus informé que moi pourra {in,con}firmer ce qui suit.
Si tu actives la compression avec ta commande mt, il s'agit de la compression matérielle fournie avec ton lecteur DAT. Il s'agit souvent d'un algo de compression "basique", souvent du zip, d'ailleurs, qui permet de gagner en place, c'est évident. Mais selon le type de données sauvegardées, ce n'est pas forcément l'algo fourni qui est le meilleur. A ta place, je tenterais les 3 (le matériel, le gzip, et le bzip), quitte à en essayer d'autres (compress, etc.) et j'utiliserais celui qui donne le meilleur rapport en fonction des données que je veux sauvegarder.
Enfin, je dis ça, je dis rien, comme on dit.
Ensuite, ce n'est pas le fait d'utiliser l'option de tar qui va bien qui empêche d'extraire un fichier ou un groupe de fichier.
Voilà, en espérant que ça aide....
[^] # Re: Euh...
Posté par Philippe M (site web personnel) . Évalué à 2.
Born to Kill EndUser !
[^] # Re: Euh...
Posté par Matthieu Moy (site web personnel) . Évalué à 4.
2) Pour extraire un fichier d'un .tar.gz, il faut décompresser l'ensemble (pour obtenir le .tar -- même si on ne l'écrit pas forcément sur le disque), et ensuite extraire le fichier. Sur un backup de plusieurs giga, c'est pas pratique.
[^] # Re: Euh...
Posté par Philippe M (site web personnel) . Évalué à 2.
Born to Kill EndUser !
[^] # Re: Euh...
Posté par Philippe M (site web personnel) . Évalué à 2.
avec -zcf ou -jzf
Born to Kill EndUser !
# Conneries...!
Posté par liberforce (site web personnel) . Évalué à 1.
Parametre incorrecte => Parametre incorrect
Et puis la licence dans l'entête qui est absente :-)
Comment ça je ====> [ ] ?
[^] # Re: Conneries...!
Posté par patrick_g (site web personnel) . Évalué à 1.
vous avez choisis => vous avez choisi
# J'ai une bonne et une mauvaise nouvelle pour toi
Posté par Jerome Herman . Évalué à 7.
http://dar.linux.free.fr/(...)
La mauvaise c'est que tu t'es donné beaucoup de mal pour quelque-chose qui existe déjà.
[^] # Re: J'ai une bonne et une mauvaise nouvelle pour toi
Posté par Philippe M (site web personnel) . Évalué à 2.
merci :)
Born to Kill EndUser !
# compression hardware ?
Posté par Matho (site web personnel) . Évalué à 1.
Il me semble qu'il existe aussi un switch a l'arriere des DAT pour forcer une compression hardware.
Pourquoi n'as tu pas utilisé cette fonctionnalité?
# et afio alors ?
Posté par Milo . Évalué à 1.
# dump ?
Posté par FRLinux (site web personnel) . Évalué à 1.
Steph
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.