• # à l'envers ;-)

    Posté par . En réponse au message stderr dans une variable. Évalué à 3.

    Bonjour,

    Je verrais bien une solution "à l'envers" à ton problème :P
    Comme tu n'as pas forcément besoin immédiatement de la sortie de la commande tar pour tes logs, c'est celle-ci que j'enverrais dans un fichier temporaire.
    Après, il suffit de lire les messages stderr et de les formatter comme bon te semble.

    Voici ce que cela donnerait (à tester !):

    # Je crée un fichier temporaire
    sortie_de_tar=$(mktemp -q)
    if [ ${?} -ne 0 ]; then
    echo Pas de bol '!'
    fi

    # Je lance l'archivage (attention a l'ordre des redirections !)
    tar -czvf /home/MonHome.tar.gz /tmp/ 2>&1 >"${sortie_de_tar}" \
    | while read ligne_erreur; do
    # Ici, formattage de la ligne
    echo $(date) $(hostname) ${ligne_erreur} >> "${LOGDIR}"
    done

    # Après, soit:
    TAR=$(< "${sortie_de_tar}")
    # ou
    TAR=$(cat "${sortie_de_tar}")

    # Petit ménage
    rm "${sortie_de_tar}"

    # La suite ici...


    Qu'en penses tu ?

    Bon courage !

    Cdlt,