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 27/08/2015, à 16:09

pierrot10

Comment utiliser la commande mail

Bonjour,
J'ai trouver ce code qui me semble bien utile

#!/bin/sh
df -H | grep -vE '^Filesystem|none|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
        echo $output
        usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
        partition=$(echo $output | awk '{ print $2 }' )

        if [ $usep -ge 90 ]; then
                echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" | mail -s "Alert: Running out of disk space \"$partition ($usep%)\" on $(hostname) as on $(date)" toto.name@domaine.ch
        fi
done

Sauf que ca ne marche pas sauf si je commande dès le |, soit si je commente ceci

#| mail -s "Alert: Running out of disk space \"$partition ($usep%)\" on $(hostname) as on $(date)" toto.name@domaine.ch

Donc le problème doit venir de cette ligne.

En fait ce script va mesurer 5 dilessystem, mais si l'e deux depasse 90% il n'affichera pas la suite, sauf je commente cette partie.

Que peut-il avoir de faux???? J'ai essayé d'ajouter -t avant toto.name mais sans succès.

Sachez que j'ai installer
#sudo apt-get install mailutils avant tout ca.

Merci pour vos lumières

Dernière modification par pierrot10 (Le 27/08/2015, à 16:10)

Hors ligne

#2 Le 27/08/2015, à 17:42

pierrot10

Re : Comment utiliser la commande mail

Alors en fait ca marche, j'ai fait une petite erreur. Mais ca ne marche pas 100%, y a toujours un petit binz

#!/bin/sh
df -H | grep -vE '^Filesystem|none|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
        #echo $output
        usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
        partition=$(echo $output | awk '{ print $2 }' )

        if [ $usep -ge 15 ]; then
                echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" | mail -s "Alert: Running out of disk space \"$partition ($usep%)\" on $(hostname)" -t toto
.toto@domaine.ch
        else
                echo $output
        fi
done

Le truc c'est que dèes qu'un devise est au dessus de limite (j'ai mis 15 volontairement), il ne va pas plus loin.

Par exemple, il m'affiche ceci

MONITORING DISK SPACE
2% /dev/sda5
1% udev
1% tmpfs

alors que j'en ai 4 autre de plus qui sont au dessus de 15%.
Je recois bien 4 e-mail, mais il n'affiche rien de plus dans mon terminal.

J'aimerais bien que tout s'affiche. Comment puis-je modifier mon code?

Milles merci

Hors ligne

#3 Le 27/08/2015, à 17:48

pierrot10

Re : Comment utiliser la commande mail

Bon ben parce que ce qui précède le | est mis dans le body du mail et par conséquent ne l'affiche pas dans le terminal
J'ai fais comme ceci

#!/bin/sh
df -H | grep -vE '^Filesystem|none|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
        #echo $output
        usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
        partition=$(echo $output | awk '{ print $2 }' )

        if [ $usep -ge 15 ]; then
                echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" | mail -s "Alert: Running out of disk space \"$partition ($usep%)\" on $(hostname)" -t toto
.toto@domaine.ch
echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)"
        else
                echo $output
        fi
done

Hors ligne