The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

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

#!/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
Раздел:    Корень / Программисту и 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, 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, 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:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList