The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Раздел полезных советов: Пример мониторинга свободное место ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [Проследить за развитием треда]

"Раздел полезных советов: Пример мониторинга свободное место ..."  
Сообщение от auto_tips (??) on 10-Апр-07, 10:05 
Наверное, все встречались, когда на том или ином разделе жесткого диска места уже нет. А
иногда и просто забываешь проконтролировать место на диске.
Данный скрипт написан по принципу настроил и забыл.

#!/bin/sh
address="root@localhost";
cicl="2 3 4 5 6";
# выставляем в процентах порог заполненного места для каждого раздела,
# при котором отсылается сообщение
predel[2]=80;    # /
predel[3]=80;    # /usr
predel[4]=60;    # /var
predel[5]=80;    # /tmp
predel[6]=80;    # /home
varning="0";

count=0;
df -h > /tmp/tmp_df;
while read -r FS S Ud A U MO; do
    let count+=1;
    FileSystem[$count]=$FS;
    Size[$count]=$S;
    Used[$count]=$Ud;
    Avail[$count]=$A;
    Use[$count]=$U;
    MountedOn[$count]=$MO;
    NUse[$count]=${Use[$count]%"%"};
done < /tmp/tmp_df;
table="";
for c in $cicl; do
    if [[ ${NUse[$c]} -ge ${predel[c]} ]]; then
        varning="1";
        table=$table"\n${FileSystem[$c]} \t${Size[$c]} \t${Used[$c]} \t${Avail[$c]} \t${Use[$c]} \t${MountedOn[$c]}";
    fi
done
        shapka="\nFileSystem \tSize \tUsed \tAvail \tUse \tMounted On";
        body="Regard admin, please check, place on disk:"$shapka$table;
        #echo -e $body;
if [ $varning -eq "1" ];
    then
    echo -e $body | mail -s"Warning on server" $address;
    logger -i -p cron.warn -t dfmonitor "Send warning to $address";
    else
    logger -i -p cron.info -t dfmonitor " Place on disk in rate";
fi


P.S. записать в cron строчку:

   20 5 * * * /sbin/dfmonitor,

с утра приходим и получаем отчет :-)


URL:
Обсуждается: http://www.opennet.dev/tips/info/1405.shtml

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по ответам]

1. "Пример мониторинга свободное место на диске."  
Сообщение от freeseacher email(??) on 10-Апр-07, 10:05 
-> munin
нарисует красивый график и при превышении критического порога уведомит нужные лица. немедленно.

/usr/ports/sysutils/munin*
http://munin.projects.linpro.no/

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Пример мониторинга свободное место на диске."  
Сообщение от abigor email on 10-Апр-07, 13:36 
я себе подобное на перл написал, так же, настроил и забыл =) но уже несколько раз выручало
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Пример мониторинга свободное место на диске."  
Сообщение от wapr (ok) on 10-Апр-07, 15:28 
есть еще monit - прямо сейчас удаляет старые файлы на моем ftp, освобождая место под новые. с отчетом на мыло.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Пример мониторинга свободное место на диске."  
Сообщение от dread email(??) on 10-Апр-07, 15:55 
man periodic.conf
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Пример мониторинга свободное место на диске."  
Сообщение от Alexander Sheiko email on 10-Апр-07, 19:58 
Пример рисования графика для одного раздела:

disk_usage_create_ad0s1f.sh

#!/usr/local/bin/bash

PATH=/bin:/usr/bin:/usr/local/bin
DATABASE_DIRECTORY=/usr/local/rrd

rrdtool create $DATABASE_DIRECTORY/disk_usage_ad0s1f.rrd -s 60 \
    DS:used:GAUGE:600:0:U \
    DS:avail:GAUGE:600:0:U \
    RRA:AVERAGE:0.5:1:483840 \
    RRA:MIN:0.5:1440:1 \
    RRA:MAX:0.5:1440:1 \
    RRA:MIN:0.5:10080:1 \
    RRA:MAX:0.5:10080:1 \
    RRA:MIN:0.5:40320:1 \
    RRA:MAX:0.5:40320:1 \
    RRA:MIN:0.5:483840:1 \
    RRA:MAX:0.5:483840:1

#!/usr/local/bin/bash

PATH=/bin:/usr/bin:/usr/local/bin
DATABASE_DIRECTORY=/usr/local/rrd

TIMESTAMP=`date +%s`

# USAGE = space_used:space_available
USAGE=`df -k | grep ad0s1f | awk '{ print $3":"$4 }'`

disk_usage_ad0s1f.sh

rrdtool update $DATABASE_DIRECTORY/disk_usage_ad0s1f.rrd $TIMESTAMP:$USAGE

disk_usage_graphs_ad0s1f.sh

#!/usr/local/bin/bash

PATH=/bin:/usr/bin:/usr/local/bin
GRAPHS_DIRECTORY=/var/www/noc/rrd/disk
DATABASE_DIRECTORY=/usr/local/rrd
HOSTNAME=`hostname`

RRDB=$DATABASE_DIRECTORY/disk_usage_ad0s1f.rrd
DISKDEV='ad0s1f'

NOW=`date +%s`
ONE_HOUR_AGO=$(($NOW-3600))
ONE_DAY_AGO=$(($NOW-86400))
ONE_WEEK_AGO=$(($NOW-604800))
ONE_MONTH_AGO=$(($NOW-2419200))
ONE_YEAR_AGO=$(($NOW-29030400))
TIMESTAMP="                   Generated on `date`"

function draw_graphic()
{
    rrdtool graph $GRAPHS_DIRECTORY/$1 -s $2 -e $3 -a PNG \
    -v Gigabytes -t "Disk usage for $4" \
    -l 0 -r \
    DEF:used=$RRDB:used:AVERAGE CDEF:usedgb=used,1024,* AREA:usedgb#ff0000:"Space used" \
    DEF:avail=$RRDB:avail:AVERAGE CDEF:totalgb=avail,1024,* STACK:totalgb#00CC00:"Space free" \
    COMMENT:"\n" \
    COMMENT:"$5\n"
}

draw_graphic 'disk_'$DISKDEV'_day.png' $ONE_DAY_AGO $NOW "$HOSTNAME (last 24 hours)" "$TIMESTAMP"
draw_graphic 'disk_'$DISKDEV'_week.png' $ONE_WEEK_AGO $NOW "$HOSTNAME (last week)" "$TIMESTAMP"
draw_graphic 'disk_'$DISKDEV'_month.png' $ONE_MONTH_AGO $NOW "$HOSTNAME (last month)" "$TIMESTAMP"
draw_graphic 'disk_'$DISKDEV'_year.png' $ONE_YEAR_AGO $NOW "$HOSTNAME (last year)" "$TIMESTAMP"

crontab:

* * * * *       /usr/local/rrd/disk_usage_ad0s1f.sh > /dev/null 2>&1
*/15 * * * *    /usr/local/rrd/disk_usage_graphs_ad0s1f.sh > /dev/null 2>&1

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Пример мониторинга свободное место на диске."  
Сообщение от Alexander Sheiko email on 10-Апр-07, 20:01 
disk_usage_ad0s1f.sh в тексте должно быть перед:

#!/usr/local/bin/bash

во втором скрипте (очепятка).

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Пример мониторинга свободное место на диске."  
Сообщение от abigor email on 11-Апр-07, 10:20 
тож пользую monit, можешь показать пример для файлов если не трудно.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "А нафик это нужно?"  
Сообщение от idle (ok) on 11-Апр-07, 16:51 
Нафига это всё нужно, если давно уже есть в системе?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Пример мониторинга свободного места на диске."  
Сообщение от Zlo (??) on 20-Апр-07, 10:02 
А чем logwatch хуже я не понял, такой же отчет каждый день и в процентах и так?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Пример мониторинга свободного места на диске."  
Сообщение от Ant0 email on 14-Май-07, 00:33 
df -h > /tmp/tmp_df;
while read -r FS S Ud A U MO; do
------
done < /tmp/tmp_df;

не лучше ли не плодить лишних сущьностей и упростить до:
df -h |
while read -r FS S Ud A U MO; do
------
done

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Пример мониторинга свободного места на диске."  
Сообщение от Ant0 email on 14-Май-07, 00:41 
пишешь:
>#!/bin/sh
но на чистом шелле этот скрипт работать не будет!

>table="";
можно упростить до
table=


>for c in $cicl; do
кузявее заменить на:
for c in `seq 2 6`; do

PS без обид

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру