#!/bin/bash
source /etc/profile
# Device to check
devname="/dev/sdb1"
let p=`df -k $devname | grep -v ^File | awk '{printf ("%i",$3*100 / $2); }'`
if [ $p -ge 90 ]
then
df -h $devname | mail -s "Low on space" [email protected]
fi
Crontab ceci à exécuter aussi souvent que vous voulez une alerte
EDIT :Pour plusieurs disques
#!/bin/bash
source /etc/profile
# Devices to check
devnames="/dev/sdb1 /dev/sda1"
for devname in $devnames
do
let p=`df -k $devname | grep -v ^File | awk '{printf ("%i",$3*100 / $2); }'`
if [ $p -ge 90 ]
then
df -h $devname | mail -s "$devname is low on space" [email protected]
fi
done
J'ai essayé d'utiliser la réponse d'Erik mais j'ai eu des problèmes avec les appareils ayant des noms longs qui enveloppent les chiffres et provoquent l'échec du script, de plus les calculs me semblaient faux et ne correspondaient pas aux pourcentages rapportés par df
lui-même.
Voici une mise à jour de son script :
#!/bin/bash
source /etc/profile
# Devices to check
devnames="/dev/sda1 /dev/md1 /dev/mapper/vg1-mysqldisk1 /dev/mapper/vg4-ctsshare1 /dev/mapper/vg2-jbossdisk1 /dev/mapper/vg5-ctsarchive1 /dev/mapper/vg3-muledisk1"
for devname in $devnames
do
let p=`df -Pk $devname | grep -v ^File | awk '{printf ("%i", $5) }'`
if [ $p -ge 70 ]
then
df -h $devname | mail -s "$devname is low on space" [email protected]
fi
done
Les changements de clé sont modifiés df -k
à df -Pk
pour éviter le retour à la ligne et simplifié l'awk pour utiliser le pourcentage pré-calculé au lieu de recalculer.