Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Programmation.shell : Sauvegarde bien déroulé ou pas ??

Posté par juju75020 () le 26 mai 2006
Bonjour,



ptite question car suis parti ce soir sans savoir si ma sauvegarde etait correcte ou pas.

Si le code retour de la commande suivante est 0 (zéro) est ce que ma sauvegarde s'est bien déroulée ou pas ??(lp -d printer envoie la sortie du tar vers une imprimante)

Commande : tar -cvf sauvegarde.tar /dev/rmt/0 | lp -d my-printer

retour=$?



Merci pour vos reponses.

> Lire le message (5 commentaires, moyenne: 1,8).  

Vous avez demandé le commentaire #715895.

pas bon

Posté par didit () le 26/05/2006 à 19:53. (lien). Évalué à 2.


ls toto;echo $?
ls: toto: Aucun fichier ou répertoire de ce type
2

ls toto | cat;echo $?
ls: toto: Aucun fichier ou répertoire de ce type
0


Lorsqu'il y a un pipe, $? donne le code de retour de la dernière commande. Donc dans ton cas, tu sais seulement que le code retour de "lp" est 0.

  • [^]Re: pas bon

    Posté par juju75020 () le 26/05/2006 à 20:26. (lien). Évalué à 2.

    Donc je peux considérer que ma sauvegarde s'est bien déroulée ?

    • [^]Re: pas bon

      Posté par Tony Flow () le 26/05/2006 à 22:03. (lien). Évalué à 2.

      Donc tu peux considérer que l'envoie vers l'imprimante s'est bien déroulé...

      Pour ce qui est du tar tu n'en sais rien puisque tu n'as pas son code de retour.

    [^]Re: pas bon

    Posté par KiKouN (Jabber id, ) le 27/05/2006 à 05:52. (lien). Évalué à 1.

    un meilleur exemple pour comprendre serait:


    # true | echo tada; echo $?
    tada
    0
    # false | echo tada; echo $?
    tada
    0


    Toutefois, tu peux utilise la commande wait associé au pid de la commande de sauvegarde et une fifo pour récupérer la sortie:

    test.sh

    #!/bin/sh

    rm -f fifolfr
    mkfifo fifolfr

    wget $1 --limit-rate=10k -O - > fifolfr & lspid=$!

    cat fifolfr

    if wait $lspid; then
    echo OK
    else
    echo NOK
    fi

    rm -f fifolfr



    Ce qui donne:

    #test.sh http://linuxfr.org
    [...]
    100%[====================================>] 70 044 10.01K/s ETA 00:00

    07:49:57 (10.00 KB/s) - « - » sauvegardé [70044/70044]

    OK
    #test.sh http://linuxfr.org/dsflkjdsf
    --07:51:17-- http://linuxfr.org/dsflkjdsf
    => `-'
    Résolution de linuxfr.org... 212.27.33.225
    Connexion vers linuxfr.org|212.27.33.225|:80...connecté.
    requête HTTP transmise, en attente de la réponse...404 Not Found
    07:51:18 ERREUR 404: Not Found.

    NOK

    --
    KiKouN, Bucheron-Geek