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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1


Użytkownik



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
Offline





Bicycle repairman






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"? ;)
Offline



Moderator




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



Piwo DUG




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ł.
Offline

Moderator


Bardzo prosty skrypt:
#!/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
doneSkrypt 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 ;))
Offline


Użytkownik



dziekuje za pomoc .. a z nagiosem kiedys walczyłem niestety poległem :(
pozdrawiam i jeszcze raz dziękuje
Offline


Użytkownik



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


były zielony_83 :)
to się wszystkich zamontowanych partycji tyczy prócz /dev/ i jeśli posiadasz shm
Offline


Użytkownik



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



Moderator




Oj zyga zyga... nic nie myslisz :P
#!/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:
#!/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
doneOffline


Użytkownik



dzieki Lorenzo
sorry za wygode ;)
pozdrawiam
Offline



Moderator




Wersja działająca pożadnie ;-)
#!/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
doneWrzucasz dodatkowo do .bashrc taką linijkę
if [ -f /tmp/.disk.sh.PID ] ; then
echo -n ""
else
./src/disk.sh &
fii 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


Użytkownik



dziekuje :)
Offline





Bicycle repairman






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.
Offline



Moderator




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



Moderator




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 ;-)
#!/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
Strony: 1