Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-01-09 13:50:27

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Skrypt do informowania zajętosci miejsca na dysku

Hej

Mam prośbe czy moglby ktos napisac skrypt, który jeżeli meijsce na dysku przekroczy np. 90% na jakiejś partycji wypisze mi komunikat na ekranie.

Z góry dziekuje

pozdrawiam


apt-get remove windows ....
apt-get install debian :)

Offline

 

#2  2007-01-09 16:15:33

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: Skrypt do informowania zajętosci miejsca na dysku

Hej

Mam prośbe czy moglby ktos napisac skrypt, który jeżeli meijsce na dysku przekroczy np. 90% na jakiejś partycji wypisze mi komunikat na ekranie.

Z góry dziekuje

pozdrawiam

nagios wyśle Ci nawet e-mail :)
Tylko co to znaczy "miejsce na dysku przekorczy 90% na jakiejś partycji"? ;)


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#3  2007-01-09 19:32:29

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: Skrypt do informowania zajętosci miejsca na dysku

kombinacja df -h, grep'a cut'a i bc powinna wystarczyć. No mozesz jeszcze dodać do tego xdialog i powinno śmigać. Przy czym aby sprawdzał zajętośc dość często to można by wrzucić skrypt do crona lub kombinowac jakimiś narzędziami od demonów (ale nie bawiłem sie nigdy w takie farmazony ;-) )

Offline

 

#4  2007-01-09 20:07:45

  Ryszard - Piwo DUG

Ryszard
Piwo DUG
Skąd: Zadupia
Zarejestrowany: 2006-06-30

Re: Skrypt do informowania zajętosci miejsca na dysku

HMmmm no  nie wiem jak to zrobić,ale w srodowisku kde był taki tam bajer można było go ustawiać na takie fikimiki.Niestety pamięć mam krótką i nei pamietom jak śię ten programos nazywoł.


http://img196.imageshack.us/img196/3770/freebsde.jpg

Offline

 

#5  2007-01-09 20:22:30

  raixer - Moderator

raixer
Moderator
Zarejestrowany: 2004-08-21

Re: Skrypt do informowania zajętosci miejsca na dysku

Bardzo prosty skrypt:

Kod:

#!/bin/bash
polecenie=`df -m | grep /dev/hd | awk -F " " '{ print $5 }' | cut -b 1-2`
for X in $polecenie
do
    if [ $X -ge 90 ]; then
        echo "na partycji przekroczono 90%"
    fi
done

Skrypt pisany na szybciocha, nie dziala moze super, ale moze byc poczatkiem do dalszego pisania :) Wypisuje na ekranie informacje o przekroczeniu miejsca tyle razy ile znalazl partycji z przekroczonym limitem. Kod sypie bledem jezeli zajete miejsce nie jest liczba 2 cyfrowa, ale ogolnie.. dziala ;))


Open Source - Świat otwartych umysłów
Linux Registered User: #276548

Offline

 

#6  2007-01-10 08:56:30

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: Skrypt do informowania zajętosci miejsca na dysku

dziekuje za pomoc .. a z nagiosem kiedys walczyłem niestety poległem :(

pozdrawiam i jeszcze raz dziękuje


apt-get remove windows ....
apt-get install debian :)

Offline

 

#7  2007-01-10 09:04:15

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: Skrypt do informowania zajętosci miejsca na dysku

tylko mam pytanko raixer .. bo nie pisze tam jakiej partycji się to tyczy .. ;( (to przekroczenie o 90%)


apt-get remove windows ....
apt-get install debian :)

Offline

 

#8  2007-01-10 11:21:34

  zielkam - były zielony_83 :)

zielkam
były zielony_83 :)
Skąd: Zawiercie
Zarejestrowany: 2006-05-06
Serwis

Re: Skrypt do informowania zajętosci miejsca na dysku

to się wszystkich zamontowanych partycji tyczy prócz /dev/ i jeśli posiadasz shm


Zostałeś zarejestrowany jako użytkownik #416423 przez.. :mrgreen:
##
FluxboxPL | Mój Lepszy Świat | UnixyPL | Telenia VOIP dla ISP
JID: zielony@jabster.pl

Offline

 

#9  2007-01-10 12:42:18

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: Skrypt do informowania zajętosci miejsca na dysku

no tak, tylko fajnie jakby wyszczególniał która partycja ma przekroczenie :)


apt-get remove windows ....
apt-get install debian :)

Offline

 

#10  2007-01-10 22:04:55

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: Skrypt do informowania zajętosci miejsca na dysku

Oj zyga zyga... nic nie myslisz :P

Kod:

#!/bin/bash

polecenie=`df -m | grep /dev/hd | awk -F " " '{ print $5 }' | cut -b 1-2`
for X in $polecenie
do
   if [ $X -ge 90 ]; then
      echo -n "na partycji przekroczono 90% na "
                echo `df -m|grep $X|cut -d ' ' -f1`
   fi
done

//EDIT:
Z uzyciem xdialog:

Kod:

#!/bin/bash

polecenie=`df -m | grep /dev/hd | awk -F " " '{ print $5 }' | cut -b 1-2`
for X in $polecenie
do
   if [ $X -ge 90 ]; then
        INFO="Przekroczono 90% na partycji "`df -m|grep $X|cut -d ' ' -f1`
        Xdialog --msgbox "$INFO" 10 50 &
   fi
done

Offline

 

#11  2007-01-10 23:25:35

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: Skrypt do informowania zajętosci miejsca na dysku

dzieki Lorenzo

sorry za wygode ;)

pozdrawiam


apt-get remove windows ....
apt-get install debian :)

Offline

 

#12  2007-01-11 10:44:42

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: Skrypt do informowania zajętosci miejsca na dysku

Wersja działająca pożadnie ;-)

Kod:

#!/bin/bash

touch /tmp/.disk.sh.PID

#Command who's checking how usage logical disk is
        COMMAND1=`df -m | grep /dev/hd | awk -F " " '{ print $5 }' | cut -b 1-2`

while [ 1==1 ]  ; do

        echo $DISPLAY > /tmp/disp
        EKRAN=`du -b /tmp/disp | cut -f1 `
        if [ $EKRAN -eq 1 ] ; then
                MSGCOM=dialog
                else
                        MSGCOM=Xdialog
        fi

        for I in $COMMAND1 ; do
                PART=`df -m|grep $I|cut -d ' ' -f1`
                NAME=`echo $PART |cut -d '/' -f3`
                if [ $I -ge 90 ]; then
                        INFO="Przekroczono 90% użycia partycji na "$PART
                        if ! [ -f /tmp/$NAME ] ; then
                                touch /tmp/$NAME
                                $MSGCOM --msgbox "$INFO" 10 50 &
                        fi
                else
                        if [ -f /tmp/$NAME ] ; then
                                rm /tmp/$NAME
                        fi
                fi
        done
        clear
        sleep 30
done

Wrzucasz dodatkowo do .bashrc taką linijkę

Kod:

if [ -f /tmp/.disk.sh.PID ] ; then
        echo -n ""
        else
           ./src/disk.sh &
fi

i masz szpeja sprawdzającego co 30 sekund stan zapełnienia (jak raz sprawdzi czy p[rzekroczono 90% użycia na jakiejś partycji nie męczy informacją, do momentu aż użycie spadnie poniżej 90% i wzrośnie ponownie powyżej ;-) )

Offline

 

#13  2007-01-19 23:22:35

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: Skrypt do informowania zajętosci miejsca na dysku

dziekuje :)


apt-get remove windows ....
apt-get install debian :)

Offline

 

#14  2007-01-20 09:38:02

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: Skrypt do informowania zajętosci miejsca na dysku

Moim zdaniem na pawdę porządnie było by gdyby można było współczynnik zajętej przestrzeni można było ustawiać jako parametr do skryptu.


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#15  2007-01-20 13:15:40

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: Skrypt do informowania zajętosci miejsca na dysku

Spox. jak mi sie skończa laborki i sesja to siąde i zrobie szpejstwo pożadnie ;-)

Offline

 

#16  2007-02-17 17:06:04

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: Skrypt do informowania zajętosci miejsca na dysku

Modyfikacja. Procent zużycia jest podawany jako parametr. Dodatkowo zamieniłem tego zagnieżdzonego ifa na case'a i sie już nie sypie jak poprzedni - narazie ma za sobą 7 minut testów ;-)

Kod:

#!/bin/bash
#############################################################
# Infos about this scripts
#############################################################



#Command who's checking how usage logical disk is
COMMAND1=`df -h | grep /dev/hd | awk -F " " '{ print $5 }' | cut -b 1-2`

#if exist LOCK file then nothing to do
if ! [ -f /tmp/.diskusage.sh.LOCK ] ; then
        touch /tmp/.diskusage.sh.LOCK
        #infinity loop to do sth
        while [ 1==1 ] ; do

                #dialog or xdialog to output
                if [ -z $DISPLAY ] ; then
                        MSGCOM=dialog
                         else
                                MSGCOM=Xdialog
                fi

                #for loop to check, whoose partition has too much sth on sth
                for COUNT in $COMMAND1 ; do
                        PART=`df -h|grep $COUNT|cut -d ' ' -f1`
                        NAME=`echo $PART |cut -d '/' -f3`

                        #if to do sth
                        if [ $COUNT -ge $1 ] ; then
                                FULL="1"
                                 else
                                        FULL="0"
                        fi

                        case "$FULL" in
                                1)
                                        INFO="Przekroczono $1% użycia partycji na "$PART
                                        if ! [ -f /tmp/$NAME ] ; then
                                                touch /tmp/$NAME
                                                $MSGCOM --msgbox "$INFO" 10 50 &
                                        fi
                                        ;;
                                *)
                                        if [ -f /tmp/$NAME ] ; then
                                                rm /tmp/$NAME
                                        fi
                                        ;;
                        esac
                done

                #asleep this process to 30 seconds
                sleep 30
        done
fi

#remove LOCK file
rm /tmp/.diskusage.sh.LOCK
#remove all unused files, but i don't known that is safe?
rm /tmp/hd*

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)