#1 Le 02/11/2018, à 19:24
- charlimy
Problème avec SSMTP ou du Script ?????
Bonjour à tous,
Suite à la création d'un script qui surveille le taux d'occupation de la partition /home
J'ai souhaité être averti par mail .
Au moment de lancer le script , le message suivant apparaît :
mail: impossible d'expédier le message : Processus terminé avec un état de sortie non nul
Est ce que le problème vient du script ou de la configuration de SSMTP ? Pourriez vous m'éclairer ?
Un grand merci
Script d'alerte
----------------
#!/bin/bash alerte=80 Liste="/dev/sda7" mail=********@outlook.fr for disque in $Liste; do espace=$(df -h | grep $disque | awk {'print $5'} | sed 's/\%//g') if [[ $espace -ge $alerte ]]; then echo "`hostname` : Espace disque occupe a $espace% sur $disque" | mail -s "Espace disque sur `hostname`" $mail fi done
Configuration de SSMTP.conf
--------------------------------------
cat /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=********@outlook.fr
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp-mail.outlook.com
# Send SSL/TLS messages to Outlook
UseSTARTTLS=YES
# Your Outlook Username
AuthUser=*********@outlook.fr
# Your Outlook Password
AuthPass=*********
# Where will the mail seem to come from?
# So the message appears to come from Outlook
#rewriteDomain=
# The full hostname
#hostname=linux-pc
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
Configuration de SSMTP Revaliases
----------------------------------------------
cat /etc/ssmtp/revaliases
# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:*********@outlook.fr:smtp-mail.outlook.com:587
user:*********@outlook.fr:smtp-mail.outlook.com:587
Lenovo G50 (Intel Core I3 -16 Go 1 To) Windows 10 - Ubuntu - Kubuntu
MacBook Air - iPhone 7 Plus - iPad Air 2 .
Hors ligne
#2 Le 02/11/2018, à 21:17
- Watael
Re : Problème avec SSMTP ou du Script ?????
salut,
aucune idée.
par contre
df -h | awk '$1==dsk{sub("%$","",$5);print $5}' dsk="$disque"
et
echo "$HOSTNAME: Espace..."
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 02/11/2018, à 21:40
- pingouinux
Re : Problème avec SSMTP ou du Script ?????
Bonsoir,
Autre façon de simplifier :
espace=$(df --output=pcent "$disque" | sed '1d;s/%//')
@Watael :
1) Il faut supprimer le caractère %, sinon le test qui suit cette ligne est en erreur
2) Je ne vois pas la syntaxe de ton awk dans le man, mais ça a l'air de marcher.
J'aurais fait ceci :
... | awk -v dsk="$disque" ...
Dernière modification par pingouinux (Le 02/11/2018, à 21:46)
Hors ligne
#4 Le 02/11/2018, à 21:43
- Watael
Re : Problème avec SSMTP ou du Script ?????
Il faut supprimer le caractère %
?
sub("%$","",$5)
!?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 02/11/2018, à 21:45
- pingouinux
Re : Problème avec SSMTP ou du Script ?????
Ah oui ! Je suis miro…
Hors ligne
#6 Le 03/11/2018, à 11:11
- Postmortem
Re : Problème avec SSMTP ou du Script ?????
Salut,
2) Je ne vois pas la syntaxe de ton awk dans le man, mais ça a l'air de marcher.
J'aurais fait ceci :... | awk -v dsk="$disque" ...
Avec awk -v var=valeur 'programme', var est initialisée et utilisable dès le bloc BEGIN du programme awk.
Avec awk 'programme' var=valeur, var n'est pas initialisée dans le bloc BEGIN, var est initialisée au début du traitement du fichier qui suit.
Ça permet de faire ce genre de chose par exemple :
awk 'pass==1 { traitements à effectuer lors du premier passage sur fichier; next } pass==2 { traitements à effectuer lors du second passage sur fichier }' pass=1 fichier pass=2 fichier
Et au sujet de ces initialisations de variable en argument de awk, j'ai vu sur quelques sites que certains protégeaient l'affectation comme ceci :
"var=$var_bash"
Plutôt que comme ça :
var="$var_bash"
Je trouvais ça bizarre et j'ai compris après, c'est dans le cas où l'option « -k » de bash est utilisée :
$ var=valeur
$ awk '{ print "var=" var "\nENVIRON[\"var\"]=" ENVIRON["var"] }' var="$var" <<<''
var=valeur
ENVIRON["var"]=
$ set -k
$ awk '{ print "var=" var "\nENVIRON[\"var\"]=" ENVIRON["var"] }' var="$var" <<<''
var=
ENVIRON["var"]=valeur
$ awk '{ print "var=" var "\nENVIRON[\"var\"]=" ENVIRON["var"] }' "var=$var" <<<''
var=valeur
ENVIRON["var"]=
Et à cause de ces assignations sur la ligne de commande, c'est bien de renseigner les fichiers qu'on passe à awk avec leur chemin, ça évite qu'un fichier dont le nom comporterait un « = » d'être traité comme une assignation.
Désolé charlimy, ça ne fait pas beaucoup avancer ton shmilblick !
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#7 Le 03/11/2018, à 11:32
- pingouinux
Re : Problème avec SSMTP ou du Script ?????
Merci Postmorten.
J'ignorais l'existence de cette syntaxe…
Hors ligne
#8 Le 04/11/2018, à 15:36
- charlimy
Re : Problème avec SSMTP ou du Script ?????
Merci à tous
J'ai encore beaucoup de choses à apprendre sur le shell )))
Je vais faire un tour dans le var / logs . Peut être trouverais je quelque chose
Lenovo G50 (Intel Core I3 -16 Go 1 To) Windows 10 - Ubuntu - Kubuntu
MacBook Air - iPhone 7 Plus - iPad Air 2 .
Hors ligne
#9 Le 07/11/2018, à 08:23
- Postmortem
Re : Problème avec SSMTP ou du Script ?????
Bonjour,
Sinon, concernant ton problème de mail, est ce que tu arrives à simplement envoyer un mail direct en ligne de commandes ou est ce que le problème se produit seulement lorsque tu lances le script ?
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne