Derniers journaux de flipflip :
- [18/07@13:11] Gérer les clés étrangère avec Mysql
- [21/04@16:05] Nagios au impôts
- [06/04@13:00] RH9, Fedora 3, Centos ???
- [03/04@19:12] Nouvelle version d'AlternC
- [16/03@08:14] Tous des FAI
- [11/03@10:42] Hylafax, sauvegarde des fax envoyés
- [17/02@07:17] Version de production ?
- [07/02@13:39] Samba et les Stratégies de Groupe
- [20/01@09:12] Documentation IBM AIX
- [02/11@19:16] DIA avec de jolies n'icones
Journal : Sauvegarder sur DAT en activant la compression
Posté par Philippe (page perso, ) le 10 août 2005Les 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
# --------------------------------------
> Lire le journal (19 commentaires, moyenne: 2,8).
oups
Désolé toute l'indentation a sauté :(
tar/zip
Certains vont dire pourquoi ne pas compresser la totalité des données puis les copiers sur la cassette. Avec cette méthode je perdais la possibilité de récupérer un seul fichier.
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 (page perso, ) le 10/08/2005 à 10:00. (lien). Évalué à 3.J'ai fais des tests avec le tar.gz pour la compression total.
Pour ce qui est du parcours de la bande, j'utilise la création d'un fichier index.txt
INDEX=`tar -tf $PERIF > /tmp/index.txt 2>>$LOGDIR`
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.
-
[^]Re: tar/zip
Posté par TazForEver () le 10/08/2005 à 14:48. (lien). Évalué à 2.c'est vrai que c'est un peu le problème de tar.* par rapport à des formats intégrés comme zip (ou rar avec un certain usage). Je suis méfiant par rapport à zip/unzip, je n'ai aucune idée si ça gère les droits et tout le bordel comme "tar p" ... ça serait intéressant d'avoir une solution, aussi performante que bzip2, mais avec des index pour pouvoir accéder rapidement à un fichier. Sans ça, ça plombe les outils graphiques, qui en sont réduit à tout décompresser ...
-
[^]Re: tar/zip
Posté par Antoine () le 10/08/2005 à 17:53. (lien). Évalué à 3.La solution pourrait consister à "tarer" les bz2 au lieu de "bzipper" le tar. Il faudrait juste que les outils graphiques soient capables de reconnaître et traiter correctement un nom_de_fichier.bz2.tar ;)
-
[^]Re: tar/zip
Posté par Jerome Herman () le 10/08/2005 à 18:14. (lien). Évalué à 2.Le principal inconviennient à tare les bzip2 est que chaque fichier bzippé va avoir son propre dictionnaire, alors que parfois de grosse ecconomies peuvent êtres faites sur un lot de fichiers similaires (typiquement des logs). Bref on va impacter sérieusement les performances de compression.
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 () le 10/08/2005 à 22:34. (lien). Évalué à 5.le GROS probleme c'est surtout qu'une fois compressé il est beaucoup plus difficile de restaurer une bande avec des erreurs de lecture.
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...
Salut !
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....
All articles which are excluded shall be deemed included
Tous les articles exclus sont considérés inclus
--Brian de Palma in Phantom of the Paradize
-
[^]Re: Euh...
Posté par Philippe (page perso, ) le 10/08/2005 à 11:32. (lien). Évalué à 2.Il me semble que j'ai déjà essayé sans résultat mais dans le doute je viens de relancer la commande avec zcf... réponse dans quelques heures.
-
[^]Re: Euh...
Posté par Matthieu Moy (page perso, ) le 10/08/2005 à 13:34. (lien). Évalué à 4.1) se méfier des options -z et -j de tar, dispo seulement sur GNU tar. Pour des scripts de backup, la probabilité de devoir faire tourner le script sur une machine non GNU est non nulle...
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 (page perso, ) le 11/08/2005 à 06:22. (lien). Évalué à 2.Alors j'ai essayé et voila le résultat... je préviens c'est pas beau à voir ;)
[11Aug-03:00] : Lancement de la sauvegarde de /home/users
tar: Removing leading `/' from member names
[11Aug-03:02] : Lancement de la sauvegarde de /home/users
/dev/tape: Device or resource busy
tar (child): /dev/st0: Cannot open: Device or resource busy
tar (child): Error is not recoverable: exiting now
tar: Removing leading `/' from member names
tar: /dev/st0: Cannot open: Device or resource busy
tar: Error is not recoverable: exiting now
[11Aug-03:02] : Erreur a la creation de l'index
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Archive contains `\375\\\325Q}\307\214e\232\342\266\325' where numeric off_t value expected
tar: Skipping to next header
tar: Archive contains `G\245\0203\315;\\A\024g\350\351' where numeric off_t value expected
tar: Skipping to next header
tar: Archive contains `\'\353pS\260\244\237\364\351\227l\226' where numeric off_t value expected
tar: Skipping to next header
tar: Error exit delayed from previous errors
[11Aug-04:55] : Erreur a la creation de l'index-
[^]Re: Euh...
Posté par Philippe (page perso, ) le 11/08/2005 à 07:05. (lien). Évalué à 2.j'ai essayé sur un répertoire plus petit /tmp et voila ce que me donne les log :
avec -zcf ou -jzf
[11aoû-08:32] : Lancement de la sauvegarde de /tmp
tar: Retrait de l'en-tête `/' des noms des membres
tar: /tmp/.font-unix/fs7100: porte (socket) ignorée
tar: /tmp/.X11-unix/X0: porte (socket) ignorée
tar: Ceci ne ressemble pas à une archive de type «tar»
tar: Escamotage jusqu'à la prochaine en-tête.
tar: Statut d'erreur reporté d'erreurs précédentes.
[11aoû-08:33] : Erreur a la creation de l'index
-
Conneries...!
Jen ai vu vite fait :-)
Parametre incorrecte => Parametre incorrect
Et puis la licence dans l'entête qui est absente :-)
Comment ça je ====> [ ] ?
-
[^]Re: Conneries...!
Posté par patrick_g (page perso, ) le 10/08/2005 à 13:37. (lien). Évalué à 1.y'a aussi :
vous avez choisis => vous avez choisi
J'ai une bonne et une mauvaise nouvelle pour toi
La bonne c'est que ce que tu cherches existe déjà et marche très bien (j'entre dans ma troisième année d'utilisation)
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 (page perso, ) le 11/08/2005 à 06:20. (lien). Évalué à 2.sniffff... il me reste plus qu'à essayé ton prog...
merci :)
compression hardware ?
Yellow
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 ?
justement afio permet de compresser fichier par fichier et s'utilise très facilement pour faire des archives ... extrait du man :
Supports compression while archiving, with the -Z option. Will com-
press individual files in the archive, not the entire archive datas-
tream, which makes afio compressed archives much more robust than
`tar zc' type archives.
dump ?
Tar c'est bien, mais selon l'OS de récupération, cela peut poser problème, donc c'est généralement une bonne idée de passer à dump qui marche très bien lors de restorations.
Steph

Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.