The OpenNET Project / Index page

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

Пример мониторинга свободного места на диске.
Наверное, все встречались, когда на том или ином разделе жесткого диска места уже нет. А
 иногда и просто забываешь проконтролировать место на диске. 
Данный скрипт написан по принципу настроил и забыл.

#!/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, 

с утра приходим и получаем отчет :-)
 
10.04.2007 , Автор: Hamelion
Ключи: disk, shell, script / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / Shell / Готовые скрипты

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, freeseacher (??), 10:05, 10/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    -> munin
    нарисует красивый график и при превышении критического порога уведомит нужные лица. немедленно.

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

     
  • 1.2, abigor (?), 13:36, 10/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я себе подобное на перл написал, так же, настроил и забыл =) но уже несколько раз выручало
     
  • 1.3, wapr (ok), 15:28, 10/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    есть еще monit - прямо сейчас удаляет старые файлы на моем ftp, освобождая место под новые. с отчетом на мыло.
     
     
  • 2.7, abigor (?), 10:20, 11/04/2007 [^] [^^] [^^^] [ответить]  
  • +/
    тож пользую monit, можешь показать пример для файлов если не трудно.
     

  • 1.4, dread (??), 15:55, 10/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    man periodic.conf
     
  • 1.5, Alexander Sheiko (?), 19:58, 10/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пример рисования графика для одного раздела disk_usage_create_ad0s1f sh usr ... большой текст свёрнут, показать
     
  • 1.6, Alexander Sheiko (?), 20:01, 10/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    disk_usage_ad0s1f.sh в тексте должно быть перед:

    #!/usr/local/bin/bash

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

     
  • 1.8, idle (ok), 16:51, 11/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нафига это всё нужно, если давно уже есть в системе?
     
  • 1.9, Zlo (??), 10:02, 20/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чем logwatch хуже я не понял, такой же отчет каждый день и в процентах и так?
     
  • 1.10, Ant0 (?), 00:33, 14/05/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    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

     
  • 1.11, Ant0 (?), 00:41, 14/05/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пишешь:
    >#!/bin/sh
    но на чистом шелле этот скрипт работать не будет!

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


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

    PS без обид

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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