Envoie de mail

Fermé
mogruith - 19 févr. 2008 à 11:11
dubcek Messages postés 18720 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 8 mai 2024 - 19 févr. 2008 à 12:38
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
A voir également:

5 réponses

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
19 févr. 2008 à 11:16
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
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
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
19 févr. 2008 à 11:52
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18720 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 8 mai 2024 5 615
19 févr. 2008 à 12:38
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