Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

BASH. Скрипт проверки свободного места на диске. : Linux

19.03.2024 9:49


07.05.2012 09:46
OlegON
 
накидал тут. первые, что нагуглились не устраивали по разным причинам.
Код:
#!/bin/bash
# Free space check
# $1 - device name
# $2 - space limit in Gb
# $3 - mount point synonym (not mand.)

if [ -z "$2" ]; then
 echo empty parameters
 exit 100
fi
TEMP=$(df -B G | grep $1 | awk '{print $4}' | sed 's/G//')
FREE=$(echo $TEMP | cut -d. -f1)
MNT=$3
if [ -z "$MNT" ]; then
 MNT=$1
fi
if [ $2 -ge $FREE ]; then
 echo $MNT" -=> "$FREE"Gb"
fi
пример использования
./chk_free_space /dev/sdb1 100 "Внешний WD"
первый - имя девайса в выводе df
второй - лимит свободного пространства, после которого орать
третье (если задан) - как выводить устройство в сообщении (если не задан = первому)
09.05.2012 15:02
FractalizeR
 
Надо бы код возврата еще добавить. Чтобы его можно было в других скриптах юзать неинтерактивно.
09.05.2012 16:16
OlegON
 
а это что?
Цитата:
exit 100
09.05.2012 16:25
FractalizeR
 
Это, как я понимаю, ошибка, которая возвращается в случае отсутствия параметров. А было бы еще неплохо возвращать результат проверки свободного места. 0 - все ок, запрошенное количество свободного места имеется. 1 - на указанном устройстве свободного места меньше, чем запрошено.
09.05.2012 19:22
OlegON
 
А... Точно... Ну это просто...
Добавить одну строку.
Код:
echo $MNT" -=> "$FREE"Gb"
exit 1
Я просто в крон его пхнул. Т.е. чтобы если будет нехватка места, выведется сообщение и упадет мне в почту.
09.05.2012 19:35
FractalizeR
 
Да, я понял. Теперь просто отлично получилось.
Часовой пояс GMT +3, время: 09:49.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.