Использование диска Bash Monitor - PullRequest
8 голосов
/ 13 апреля 2011

Я купил коробку NAS, на которой установлена ​​урезанная версия debian.

На днях не хватило места, и я не понял.Я в основном хочу написать скрипт bash, который будет предупреждать меня, когда диск заполнится более чем на 90%.

Кто-нибудь знает о скрипте, который будет это делать, или даст мне какой-нибудь совет по его написанию?

Ответы [ 3 ]

9 голосов
/ 13 апреля 2011
#!/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" my@email.com
fi

Crontab для запуска, как часто вы хотите предупреждение

РЕДАКТИРОВАТЬ: для нескольких дисков

#!/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" my@email.com
  fi
done
6 голосов
/ 19 марта 2013

Я пытался использовать ответ Эрика, но у меня были проблемы с устройствами, имеющими длинные имена, которые переносят числа и приводят к сбою сценария, также математика выглядела неправильно и не соответствовала процентам, сообщенным самой 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 вместо повторного вызова.

0 голосов
/ 05 января 2012

Вы также можете использовать Monit для такого рода работы.Это «бесплатная утилита с открытым исходным кодом для управления и мониторинга процессов, программ, файлов, каталогов и файловых систем в системе UNIX».

...