Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/10/2006, à 16:39

Matstar44

Dump sous crontab ne fonctionne pas

Bonjour,

Voila je viens de mettre en place un système de sauvegarde su bande via dump et restore d' après le topic suivant http://doc.ubuntu-fr.org/applications/dump_restore .
Il fonctionne au poil.
Cependant comme tout système de sauvegarde j'aimerais l'automatiser avec crontab, mais je n'y arrive pas.
Voila ma crontab en superutilisateur

57 17 * * * /home/batch/sauvegarde.sh

et mon batch :

#!/bin/bash
# Usage : tapebak_backup <date>
# Exemple : tapebak_backup date J/M/A      
# Dump le tout sur la bande
dump -0  -L "`date +%a\ %D`" -f /dev/st0 /home/baseco
# Rebobinage et éjection
mt rewoffl -f /dev/st0

Largement inspiré de tuto.
Si quelqu'un a deja reussi a faire fonctionner dump et cron ou un autre système de backup sur bande avec cron.
Merci smile

Hors ligne

#2 Le 16/10/2006, à 17:40

Uggy

Re : Dump sous crontab ne fonctionne pas

Peut etre un probleme de variable d'environnement...
Essaye de mettre le chemin complet de dump
Est ce que la crontab ne t'as pas envoyer un mail d'erreur ?

Hors ligne

#3 Le 17/10/2006, à 10:24

Matstar44

Re : Dump sous crontab ne fonctionne pas

En faite, j'ai cherché sur pas mal de forum et j'ai remarqué que  beaucoup de personne avait du mal a faire cohabiter Dump et la crontab.
Alors je me suis rabattu sur TAR, un autre soucis est apparu tout petit big_smile un point de detail.
Bon voila mes nouveaux script:

Sauvegarde avec TAR:

sudo tar -c -z -V "`date +%a\ %D`" -f /dev/st0  /home/baseco/

Je crée avec -c compresse avec -z met un nom de Label avec -V et sauvegarde sur la bande avec -f.

J'aimerais si possible (avant restauration) connaitre le nom de la bande (ici la date).
Sachant que le batch proposé dans le tuto dump restore ne fonctionne pas car il utilise restore.

#!/bin/bash
BAK_TMP=/tmp
mt rewind -f /dev/st0
echo "n" > $BAK_TMP/what-tape.cmd
restore -t -h -f /dev/st0 /mnt < $BAK_TMP/what-tape.cmd &> $BAK_TMP/what-tape.tmp
rm $BAK_TMP/what-tape.cmd
mt rewind -f /dev/st0
TAPE_LABEL=`cat $BAK_TMP/what-tape.tmp | grep Label: | awk '{print $3}'`
rm $BAK_TMP/what-tape.tmp
echo $TAPE_LABEL

Je vais essayer de l'adapter mais si quelqu un a une autre solution je l'en remerci à l'avance smile.

De plus je n'ai pas mis de serveur de mail postfix pour envoyer des mails en cas d'erreurs, de plus le serveur n'est pas integrer dans un domaine.

Hors ligne

#4 Le 17/10/2006, à 12:31

snapshot

Re : Dump sous crontab ne fonctionne pas

Il ne faut pas utiliser /dev/st0 mais /dev/nst0 (avec un N comme "No rewind"). Sinon, linux rembobine automatiquement la bande après chaque utilisation du lecteur, rendant inutile les "mt rewind". Le truc est d'exporter la variable TAPE qui sera utilisée par la suite par mt.

Ensuite, plutot que de faire un grep, il vaut mieux faire un "head -n 1" qui est beaucoup plus rapide. Avec le tail, on tire profit du fait que le nom de volume de l'archive se trouve toujours en première ligne. Dès que tail récupère cette ligne, il ferme le tube, ce qui interrompt la lecture de la bande, contrairement à grep qui la parcourt jusqu'à la fin pour ne rien trouver.

Plutot que d'utiliser sudo, il est plus efficace de mettre dans le groupe "tape" l'utilisateur qui exécute le script. Il aura ainsi accès au lecteur de bande en lecture/écriture sans demander de mot de passe.

Avec tar et les bandes (DAT), il faut souvent utiliser un "blocking-factor"  à 126 pour résoudre de sombre problèmes d'allocation de buffer (Erreur Cannot allocate memory)...

Code à adapter à l'aide de cut, de awk et de sed pour supprimer les parties inutiles :

#!/bin/bash
export TAPE=/dev/nst0
mt rewind
tar --list --blocking-factor=126 --verbose --file=$TAPE | head -n 1
mt fsf # aller à la sauvegarde suivante

Au travail, je mets plusieurs sauvegardes sur la même bande... La première est totale, les suivante incrémentielles. On passe à la suivante avec "mt fsf" et à la précédente avec "mt bsfm 2" (équivalent à "mt bsf 2; mt fsf")

Dernière modification par snapshot (Le 17/10/2006, à 12:32)


Pensez à mettre [Résolu] dans le titre une fois votre problème réglé !

Hors ligne

#5 Le 17/10/2006, à 13:53

Matstar44

Re : Dump sous crontab ne fonctionne pas

Merci pour cette reponse detaillé.

Le batch que tu me propose fonction à un detail près, le lecteur /dev/nst0 n'est pas mon lecteur.
Mais c'est top la.

Voila ce que j'ai :

V--------- 0/0               0 2006-10-17 15:37:03 mar 10/17/06--Volume Header-

Peux tu me confirmer si ton crontab ressemble à ca :

# m h  dom mon dow   command

50 15 * * * /usr/bin/tar -czV "`date +%a\ %D`" -f /dev/st0  /home/baseco

00 15 * * * mt rewoffl -f /dev/st0

Merci pour ton aide, après confirmation je mettrai ce topic comme résolu.

Hors ligne

#6 Le 17/10/2006, à 14:37

snapshot

Re : Dump sous crontab ne fonctionne pas

Et bien si, je confirme que /dev/nst0 est bien le même lecteur que /dev/st0.
La seule différence est que le kernel effectue automatiquement un rewind lors de la fermeture du fichier /dev/st0, chose qu'il ne fait pas avec /dev/nst0.
Mais cela n'a de l'importance que si on mets plusieurs sauvegarde sur une bande.

Quant à mon crontab... il est un peu plus complexe que ça : sauvegade totale le lundi matin, incrémentale partielle deux fois par jour, et incrémentale minimale toute les heures... et il fait donc appel un shell script situé dans /usr/local/sbin

Le tien me parait bien mais je ne comprends pas pourquoi tu éjectes la bande à 15h00 et que tu lances la sauvegarde à 15h50 ?
Je ferais plutot un truc du genre :

50 15 * * * /usr/bin/tar -czV "`date +%a\ %D`" -f /dev/st0  /home/baseco; /bin/mt rewoffl

... qui éjecte la bande une fois la sauvegarde effectuée.

Dernière modification par snapshot (Le 17/10/2006, à 14:37)


Pensez à mettre [Résolu] dans le titre une fois votre problème réglé !

Hors ligne

#7 Le 17/10/2006, à 17:28

Matstar44

Re : Dump sous crontab ne fonctionne pas

Bon bah je sait pas comment mettre Resolu mais Merci pour tout wink

Hors ligne