Bonjour a tous,
Voila je voudrai vérifier quotidiennement l'espace occupé sur mes disques. Je souhaite donc ecrire un script qui pourrait m'envoyer les résultats par email. une fois insérer dans le crontab, il s'executera toutes les semaines.
j'ai donc fait cela:
:!/bin/bash
df>/etc/scripts/espacedisque
Ainsi le résultat sera ecrit dans ce fichier mais comment faire pour que ensuite ce fichier parte sur mon mail ? Ou alors avez vous une autre solution pour récuprer l'espace de disque ?
Merci d'avance
# B i g B r o t h e r
Posté par Ngoc-Khoi TO . Évalué à 1.
C'est mieux avec le mode alert, donc l'email est envoyé seullement si certain condition requise.
[^] # Re: B i g B r o t h e r
Posté par tontonflingueur . Évalué à 1.
Tu peux utiliser la commande mail qui vient avec la package mailx.
En gros c'est
> mail -s "Sortie de df" toi@mail.org < /etc/scripts/espacedisque
Tu peux même faire tout simplement
> df | mail -s "Sortie de df" toi@mail.org
Mais bon, je ne doute pas qu'il existe un soft qui fasse beaucoup mieux.
# par exemple
Posté par mac_is_mac (site web personnel) . Évalué à 2.
mutt -s "espace disque" moncompte < /etc/scripts/espacedisque
Ca doit marcher aussi avec mail à la place de mutt (à vérifier)
# mail
Posté par Arachne . Évalué à 1.
Plus d'infos : man mail
Encore mieux avec une crontab toute bete :
MAILTO=ton@adresse.mail
df
# MAILTO
Posté par Antonio Da Silva (site web personnel) . Évalué à 1.
ou http://seth.positivism.org/man.cgi/5/crontab
extrait significatif:
<<
En plus de LOGNAME, HOME, et SHELL, cron(8) prendra en compte la vari-
able MAILTO s'il doit envoyer le résultat d'une commande exécutée
dans cette crontab. Si MAILTO est définie (et non vide), le résultat
est envoyé à l'utilisateur indiqué. Si MAILTO est défini et vide
(MAILTO=""), aucun courrier ne sera envoyé. Sinon, le courrier sera
émis vers le propriétaire de la crontab.
>>
Donc du coup, il suffit de ne pas rediriger la sortie vers un fichier.
Bon, bien sur, c'est la version du pauvre ( c'est-à-dire que si ta crontab contient d'autres taches, et qu'elles ne doivent pas envoyer de mails, il faut pousser la recherche vers d'autres outils)
[^] # Re: MAILTO
Posté par marsu1983 . Évalué à 1.
Merci
[^] # Re: MAILTO
Posté par benodilo . Évalué à 1.
# surveillance
Posté par Dabowl_94 . Évalué à 5.
Plutôt que de recevoir des mails sans arrêt alors que ton espace disque n'est pas remplit, il vaut mieux être avertit quand ça va mal, choisir donc un seuil à partir duquel il faut être avertit, voici le script:
#!/bin/bash
#
df -k | grep "^/dev" | while read FS
do
FS_NAME=`echo $FS | awk -F' ' '{print $7}'`
FS_SIZE=`echo $FS | awk -F' ' '{print $4}' | cut -d'%' -f1`
if [ $FS_SIZE -gt 95 ] ; then
echo "Filesystem $FS_NAME utilise a plus de ${FS_SIZE}%" | mailx -s "ALERTE_FS_$SERV" destinataire@toto.fr
fi
done
exit 0
Ce script a été fait sous AIX, pour Linux, il te faudra changer les valeurs données à AWK car la commande "df" de linux colonnise un peu différemment les choses.
Pour l'envoi du mail, il faut installer un smtp sur ton poste et faire en sorte qu'il envoi les mails au smtp faisant autorité dans ton domaine (champs MX du DNS), ensuite mettre ce script en crontab selon la périodicité que tu souhaite.
voilà
dabowl_75
[^] # Re: surveillance
Posté par totof2000 . Évalué à 6.
FS_SIZE=`echo $FS | awk -F' ' '{print $4}' | cut -d'%' -f1`
Pourquoi ne pas faire tout en awk?
df -k | awk '
/\/dev/ {
split($4,tmp,"%");
FS_SIZE=tmp[1];
if (FS_SIZE > 95) {
print "Filesystem " $1 " utilise a "FS_SIZE "%" | "mailx -s \"Test espace disque\" user@host"
}
}
'
[^] # Re: surveillance
Posté par totof2000 . Évalué à 3.
df -k | awk '
/\/dev/ {
split($4,tmp,"%");
if (tmp[1]> 95) {
print "Filesystem " $1 " utilise a " $4 | "mailx -s \"Test espace disque\" user@host"
}
}
'
[^] # Re: surveillance
Posté par Dabowl_94 . Évalué à 2.
dabowl_75
[^] # Re: surveillance
Posté par totof2000 . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.