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/.
mam do napisania skrypt
otoz skrypt ten ma wyszukac wszystkich uzytkownikow,ktorzy przekroczyli soft quote nastepnie przeszukac katalog domowy w poszukiwaniu plikow wiekszych niz 1 mb i stworzyc liste z 10 najwiekszymi plikami i przeslac ja mailem do administratora
zadanie mnie frustruje, a zaliczenie we wtorek... poratuje ktoś ?
Offline
Nawet nie musisz używać głowy, google pomoże. Na wtorek, kupę czasu. Bierze się do roboty leniu! ;] W godzinę byś to zrobił, może dwie, trochę na google pogrzebać, wiele przykładów znajdziesz, to tego man bash, find, ls, quota itp. Może powinniśmy zrobić na forum dział zlecenia ;]
Offline
to jest banalne, quotacheck, du -sh | sort z odpowiednimi parametrami | head -10 i przekierowac do mail
to nie problem, tylko ze on chciał zeby każdy miał inną wersję i koledzy padają. Niczego ich nie nauczył, bo sam tego nie umie dobrze a ich męczy. Ja nie mam pomysłów na inne wersje :/
Offline
bardziej na piechote:
1. uzyskujemy liste uzytkownikow
2. dla kazdego uzytkownika z listy wyszukujemy najwiekszy plik -> przechowujemy saobie jako tablice
3. tablice mozemy sortowac na bierzaco (przy wstawianiu) albo na koniec np. sortem ...
kolejna mutacja - zamioast tablicy robimy plik ktory mozemy przetorzyc sortem lub awk
Offline
Jak kto lubi sobie komplikować życie, to można jeszcze:
1. findem wyszukać pliki większe niż podany rozmiar.
2. Zapisać wynik do pliku tymczasowego.
3. W awk-u napisać algorytm do sortowania, który posortowałby pliki malejąco.
4. Znów w awk-u kazać drukować tylko pierwsze 10 linii wyniku powyższego.
5. Wysłać mailem.
Hm, generalnie to to samo co podał bercik, ale w bardziej szczególnej postaci :) .
Tylko ja się pytam: po co? Ja rozumiem, że panowie studenci mają od siebie nie ściągać, ale zamiast kazać im wymyślać koło na nowo, może lepiej byłoby zweryfikować czego się nauczyli? A nawet jeżeli ściągali, ale jakąś wiedzę zdobyli — czy to źle?
Offline
dążysz do tego żeby zrobił im kolosa, a tego żaden student nie lubi.
Offline
szczerze? wolelibyśmy kolosa...
napisalem 4 wersje, ale problem polega na tym, że nie wiem jakie dane wypluwa nam quotacheck. Mógłby ktoś pokazać listing jak wygląda użytkownik który przekracza softquotę ?
Offline
Nie mam uprawnień do używania quotacheck na serwie studenckim ;-), ale po przekroczeniu miękkiej quoty efekt polecenia quota jest taki:
przyboro@fatcat:~/var$ quota
Ograniczenia dyskowe user przyboro (uid 2482):
System plików bloki miękki twardy pobł. pliki miękki twardy pobł.
/dev/mapper/iscsi2vg-home
341884* 300000 350000 7 dni 5415 0 0
Pojawia się gwiazdka przy zajętości.
Offline
o JP.
jak ja mam z tego wyciąć te dane? Oo
Offline
jak to jak? sprawdzasz czy w wyniku quota dostaniesz gwiazdkę w stosownym miejscu :)
PS. apeluję o żądanie "human-readable" wartości (free -m, quota -s, etc.), bo od tych bitów to oczopląsu można dostać ;)
Offline
TBH napisał(-a):
jak ja mam z tego wyciąć te dane? Oo
Np. tak:
quota |tail -1 |awk '$2 ~ /\*/ {print "ZOMFG, Juser przekroczył softkłotę!!!11"}'
Ale na niewiele Ci się to zda, gdyż jedną z pierwszych rzeczy, jaką musisz zrobić, jest sprawdzenie którzy użytkownicy przekroczyli quotę. To by się ograniczyło do czegoś w stylu:
let i=0 for user in $(awk -F : '{print $1}' < /etc/passwd) ; do KLOTA=$(sudo -u $user 'quota|tail -1') if echo $KLOTA |grep -e '*' &>/dev/null; then luserzy_z_klota[$i]=$KLOTA let i=$i+1 fi done
Bezsęsu.
Zamiast się wygłupiać, idź do najbliższego znanego administratora i poproś go o przykładowy wynik polecenia quotacheck. Czy tam innego, odpowiedniejszego, ja się na quocie zupełnie nie znam.
Offline