Skocz do zawartości
matt

User CPU

Polecane posty

#!/bin/bash

przed_kropka=$(ps aux | grep $1 | awk '{print $3}' | cut -d '.' -f 1 | awk '{suma += $1}; END {print suma}')
za_kropka=$(ps aux | grep $1 | awk '{print $3}' | cut -d '.' -f 2 | awk '{suma += $1}; END {print suma}')

if [[ $za_kropka -ge "10" && $za_kropka -lt "100" ]]; then
dod_przed=$(echo $za_kropka | cut -c 1)
razem_za=$(echo $za_kropka | cut -c 2)
let razem_przed=$przed_kropka+$dod_przed
echo -e "\nUzytkownik \E[1;32;40m$1\E[0;37;40m obciaza \E[1;31;40m$razem_przed.$razem_za%\E[0;37;40m CPU!\n"
elif [[ $za_kropka -eq "100" ]]; then
echo -e "\nUzytkownik \E[1;32;40m$1\E[0;37;40m obciaza \E[1;31;40m100%\E[0;37;40m CPU!\n"
else
echo -e "\nUzytkownik \E[1;32;40m$1\E[0;37;40m obciaza \E[1;31;40m$przed_kropka.$za_kropka%\E[0;37;40m CPU!\n"
fi
<P>

 

Moze komus sie przyda :P 

 

Uzycie:

 

./nazwa.sh nazwa_usera

 

Skrypt po wpisaniu nazwy usera pokazuje w jakim stopniu dany user obciaza nasz procesor :D Aj zapomnialem skrypt pokazuje uzcie z danej chwili :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dodam tylko ze skrypty sa moja wlasnoscia :P I nie chcial bym zobaczyc w necie mojego kodu z kogos podpisem :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzieki, przyda się do mojego krzaczorraa <joke>.

 

Akurat czegoś takiego potrzebowałem a nie miałem czasu sam napisać ;].

 

Tak jak ktoś już wyżej wspomniał, proponuje wydanie go pod jakąś licencją.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

i co z tego ze licenzje zrobi :) nie raz widze po 5 skrytów takich samych i kazdy innego autora i oczywiscie licenja przy kazdym stoi :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak juz mowilem jest to wersja mocno okrojona :) Kombajn ktory bedzie logowal staty i rysowal wykres z dnia, tygodnia, miesiaca oraz kilka innych ciekawostek sie pisze ... Co do licencji to jeszcze sie zastanawiam :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Jak juz mowilem jest to wersja mocno okrojona :) Kombajn ktory bedzie logowal staty i rysowal wykres z dnia, tygodnia, miesiaca oraz kilka innych ciekawostek sie pisze ... Co do licencji to jeszcze sie zastanawiam :)

 

kiedy bedziesz mial gotową wersję nieokrojoją?

 

Ed

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Oficjalnie nie wiem :) Nie oficjalnie to jest juz gotowa wersja do max 9 userow naraz na jedym demonie i samo logowanie do plikow <_< Wiec jeszcze kilka dni :) Musze dopracowac wspolprace dedonow, dopracowal opcje z jakimi sie uruchamiany demon :) No i wkoncu zaczac "rysowanie wykresow".

 

Mam jeden problem bo przy np. 500 userach gdzie jeden demon moze obslozyc max 9 to zaczynaja sie schody ;) Ale powoli mi sie nie spieszy ... :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Oficjalnie nie wiem :) Nie oficjalnie to jest juz gotowa wersja do max 9 userow naraz na jedym demonie i samo logowanie do plikow <_< Wiec jeszcze kilka dni :) Musze dopracowac wspolprace dedonow, dopracowal opcje z jakimi sie uruchamiany demon :) No i wkoncu zaczac "rysowanie wykresow".

 

Mam jeden problem bo przy np. 500 userach gdzie jeden demon moze obslozyc max 9 to zaczynaja sie schody ;) Ale powoli mi sie nie spieszy ... :)

 

Trzymam kciuki.

Może to być bardzo ciekawy skrypt.

 

Ed

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrick

Przecież to prosty skrypt, podsumowujący w danej chwili % z listy procesów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dokladnie umieszczony przez emnie skrypt na forum to nic innego jak uproszczone ps aux | grep USER i zliczone wszystkie wartosci uzycia procka w jedna <_<

 

Patrick cichooo :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Jak juz mowilem jest to wersja mocno okrojona :) Kombajn ktory bedzie logowal staty i rysowal wykres z dnia, tygodnia, miesiaca oraz kilka innych ciekawostek sie pisze ... Co do licencji to jeszcze sie zastanawiam <_<

 

zbieranie statystyk w taki sposob nie jest najlepszym pomyslem

sugeruje zapoznac sie z tym

http://www.linuxjournal.com/article/6144

 

--

Lazy

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wiem dla tego w normalnej wersji bedzie to inaczej wygladac, jednak sa dwie opcje, a raczej dwie wizje wtyczka do cacti albo osobna aplikacja <_<

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Przecież to prosty skrypt, podsumowujący w danej chwili % z listy procesów.

 

Przy pełnej funkcjonalności to nie bedzie taki prosty skrypt jak na początku wątku.

 

Ed

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niestety projekt sie opoznia ... Przyczyna sa klopoty z maszyna jakie przechodzilem ostatanio i nie mialem czasu ostatanio nad nim pracowac ...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jesli sa jakies osoby ktore sa chetne pomoc w testach najlepiej z wlasna maszyna / VPS prosze o kontakt ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

O geez...

a nie lepiej:

 

ps ho %C -u root | awk '{sum += $1} END { print sum }'

 

zamiast tych grepów, cutów i awków? ;)

Polecam postudiować manual do ps.

 

Wg mnie i tak lepszy obraz na procesy daje htop -u login_usera

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
O geez...

a nie lepiej:

 

ps ho %C -u root | awk '{sum += $1} END { print sum }'

 

zamiast tych grepów, cutów i awków? ;)

Polecam postudiować manual do ps.

 

Wg mnie i tak lepszy obraz na procesy daje htop -u login_usera

 

Marcin, w ten sposob mozna tez zliczyc dobowe obciazenie generowane przez danego użytkownika/użytkowników?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Marcin, w ten sposob mozna tez zliczyc dobowe obciazenie generowane przez danego użytkownika/użytkowników?

 

A po co tworzyć skomplikowane narzędzia?

Wystarczy ps + rrdtool. Na szybko machnięte, specjalnie dla WHT:

 

 #!/bin/bash
# ahes

#exclude="user1|user2|user3" # nie zliczaj tych userow
path="/tmp/stats" # tu trzymaj dane
period="6hours" # podstawa czasu
height="600" # wysokosc wykresu
width="800"  # szerokosc wykresu

users=$(for user in `getent passwd | cut -d: -f1 | grep -Ev ${exclude:-^$}`; do echo "$user"; done) 
if test ! -d "$path"; then mkdir "$path"; fi
if test ! -f "$path/cpu.rrd" 
then  
 rrdtool create $path/cpu.rrd --step 60 \
 RRA:AVERAGE:0.5:1:1440 \
 `for user in $users; do echo -n "DS:$user:GAUGE:120:0:1440 "; done`
fi

for user in $users
do
 cpu=`ps ho %C -u $user | awk '{sum += $1} END { print sum }'`
 update="$update:${cpu:-0}"
done

 rrdtool update $path/cpu.rrd N$update

for user in $users
do
 rrdtool graph $path/$user.png \
	 --title "user: $user" \
	 --upper-limit 100 \
	 --lower-limit 0 \
	 --start now-$period \
	 --vertical-label "cpu" \
	 --height $height \
	 --width $width \
 DEF:user=$path/cpu.rrd:$user:AVERAGE  \
 LINE2:user#ff00ff \
 GPRINT:user:AVERAGE:"avg\:%3.2lf" > /dev/null
done

 

Do crona co minute i jazda :P

Pozdro.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×