Envoie de mail

mogruith -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un répertoire que je synchronise tous les jours via rsync. Un mail est envoyé à chaque synchronisation. Je souhaiterais simplement limiter cet envoi, je m'explique: si il n'y a pas de nouveaux fichiers, je voudrais qu'aucun mail ne soit envoyé, et dans le cas contraire, un mail doit m'être adressé.

Merci
Configuration: Linux
Firefox 2.0.0.12

5 réponses

  1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    Bonjour,

    Comment est envoyé le mail actuellement ?

    Peux-tu nous mettre un bout de script qu'on puisse voir de quoi il retourne ?

    A plus
    0
  2. mogruith
     
    Voici mon script de mail

    #! /bin/bash
    set -x

    SERVER="192.168.22.5"
    PORT="25"

    function check_250()
    {
    while read
    do
    set -- ${REPLY//$'\r'/}
    [ "$1" = "250" ] && break
    done
    }

    #exec 3<> /usr/local/logs/smtp_errors.log 2>&3-

    if ! exec 3<> /dev/tcp/${SERVER}/${PORT}
    then
    echo "`basename $0` : connexion impossible au serveur ${SERVER}:${PORT}"
    exit 1
    fi

    trap "{ exec 1<&- 2<&- ; exit 255; }" EXIT
    exec 0<&3 1>&3-

    echo "EHLO `hostname`"
    check_250

    echo "MAIL FROM:<synchro@server>"
    check_250

    echo "RCPT TO:<mogruith@server>"
    check_250

    echo "DATA"
    echo "Subject: Syncronisation REP1 REP2 effectuee le $(date '+%d/%m/%Y a %X')"
    cat /var/log/synchro.log
    echo
    echo "."
    echo
    check_250

    echo "QUIT"

    exit 0

    Pour infos, il y a avant donc, un script faisant du rsync entre un serveur windows et un serveur linux. Il fonctionne tres bien.

    Merci
    0
  3. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    Pour infos, il y a avant donc, un script faisant du rsync entre un serveur windows et un serveur linux. Il fonctionne tres bien.

    Ok, alors c'est au niveau de ce script qu'il faut agir, tu as un moyen de savoir en fin de traitement combien de fichiers on été synchronisés ? (via un timestamp ou autre ?)

    Sinon, il va falloir faire avant le rsync, une liste des fichiers, et une autre aprés, en cas de différence, appeler ton script qui envoie le mail...

    Enfin, c'est une solution parmis d'autres, tu as peut-être déjà dans ton script rsync, un indicateur qui te permetterais de décider simplement si oui ou non, tu doit envoyer le mail ;-)

    A plus
    0
  4. mogruith
     
    Je vais peut etre abuser .. Mais pourrais tu me dire comment je peux tester le nombre de fichier entre deux synchros et si il y en un en plus, appeler mon script de mail ?

    Merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    si rsync ne produit aucun output, c'est qu'aucun fichier n'a été synchronisé, faire quelque chose comme:

    rsync > /tmp/file.out
    test -s /tmp/file.out && { mail -s rsync user@system < /tmp/file.out ; } # fichier non vide, envoyer un mail
    0