#1 Le 27/08/2015, à 15: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, à 15:10)
Hors ligne
#2 Le 27/08/2015, à 16: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, à 16: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