Я пытался использовать ответ Эрика, но у меня были проблемы с устройствами, имеющими длинные имена, которые переносят числа и приводят к сбою сценария, также математика выглядела неправильно и не соответствовала процентам, сообщенным самой df
.
Вот обновление его скрипта:
#!/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" my@email.com
fi
done
Изменения ключа изменены df -k
на df -Pk
, чтобы избежать переноса строк и упростили awk, чтобы использовать проценты pre-calc'd вместо повторного вызова.