Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
Logowanie połączeń - > usuwanie najstarszego pliku. http://forum.freesco.pl/viewtopic.php?f=35&t=11098 |
Strona 1 z 1 |
Autor: | Anonymous [ niedziela, 5 lutego 2006, 13:26 ] |
Tytuł: | Logowanie połączeń - > usuwanie najstarszego pliku. |
Witam. Używam tego skryptu do logowania połączeń #!/bin/bash killall tcpdump mv /tmp/logi.dmp /tmp/roboczy.dmp ########################################################## tcpdump -i eth1 tcp [13] == 2 -w /tmp/logi.dmp & ########################################################## tar cvfz /var/www/logi/`date +%Y-%m-%d--%H-%M-%S`.tar.gz /tmp/roboczy.dmp rm /tmp/roboczy.dmp Wszystko było by ok, gdyby nie to że co jakiś czas muszę ręcznie usuwać stare logi. Pomyślałem żeby to jakoś zautomatyzować. Za pomocą komendy odczytuje wolne miejsce na dysku w kB, i jeśli ta wartość spadnie poniżej pewnego progu usuwany ma być najstarszy plik z /var/www/logi/ Jak jednak odnaleźć najstarszy plik ? Próbuję użyć komendy jednakże ls w wersji na freesco nie posiada tego parametru... Czy istnieje możliwość zaktualizowania komendy ls ? Czy może istnieje jakieś alternatywne rozwiązanie do usuwania starych logów. |
Autor: | Maciek [ niedziela, 5 lutego 2006, 14:41 ] |
Tytuł: | |
W moim Freesco zmieniałem standardowy logrotate w związku ze stosowaniem niegdyś mksa, przy tej okazji przenosiłem standardowe logi na dysk i co jakiś czas duży plik z logami kasuję ręcznie. Można to zrobić jednak troszkę inaczej. Zapisaju logi bez daty w nazwie i co jakiś czas wprować rotację, zmiana plik.log na plik.log1 a wczesniej plik log1 na plik.logold, a na końcu kasowanie pliku plik.logold. Oczwywiście tych plikówmożesz mieć więcej tak, żeby mieć zawsze zachowane logi z jakiegoś okresu czasu. |
Autor: | Anonymous [ niedziela, 5 lutego 2006, 23:08 ] |
Tytuł: | |
Znalazłem to czego szukałem. Mógłby to ktoś skompilować pod freesco 0.2.7 ? http://stderr.be/ftp/unix/scripts/oldest.c |
Autor: | Anonymous [ poniedziałek, 6 lutego 2006, 17:21 ] |
Tytuł: | |
Ok, już wszystko mam. Końcowy kod, może się niektórym przyda: #!/bin/bash ###################################################################### # #Skrypt wspomagajacy tworzenie logow polaczen z wykorzystaniem tcpdump dla Freesco 0.2.7 # #Wymaga programu gawk znajdujacego sie w pakiecie bash oraz programu tar znajdujacego sie w pakiecie utils #Zalecane uruchamianie co 24h przy uzyciu CRONA, najlepiej w poznych godz. nocnych przy których wystepuje najmniejsze obiazenie serwera ze wzgledu na uzycie programu tar #Logi wygenerowane przez skrypt nalezy czytac np. programem etheral # #podziekowania dla: #--MW-- z forum freesco.pl za napisanie podstawowego kodu ktory rozbudowalem :] #chodnik z forum ks.ekspert.pl #bercik z kanalu #freesco (IRCnet) #eMTi z kanalu #freesco (IRCnet) #dust_puppy z kanalu #linux (POLnet) #Goz z kanalu #linux (POLnet) #acrow z kanalu #linux (POLnet) #i wszystkich ktorych pominolem, kolejnosc jest przypadkowa. # #by gumis_pl (krzysiekadmi@o2.pl) # ###################################################################### interfejs="eth0" #interfejs na którym bedziemy nasluchiwac prog="204800" #jesli ilosc wolnego miejsca spadnie ponizej tej wartosci to usuwane sa najstarsze logi z archiwum logi="/mnt/router/logs" #sciezka folderu z obecnymi logami (musi istniec) archiwum="/mnt/router/logs/archive" #sciezka folderu z archiwum logow (musi istniec) ###################################################################### wolne_miejsce=$(df | grep "hda1" | gawk '{print($4)}') if [ $wolne_miejsce -lt $prog ]; then echo "Wolne miejsce spadlo ponizej $prog kB." z="1" for plik in $archiwum/* do if [ $z = "1" ]; then plik2=$plik z="0" fi if [ $plik -ot $plik2 ]; then plik2=$plik fi done echo "Usuwanie starych logow..." rm $plik2 fi ###################################################################### echo "Wylaczanie tcpdump..." tcpdump=$(ps | gawk '{print($4)}' | grep "tcpdump" | head -n 1) if [ "$tcpdump" = "tcpdump" ]; then killall tcpdump else echo "Nie mozna zakonczyc tcpdump." fi ###################################################################### cd / cd $logi temp=$(ls -1F | grep "temp.dmp") current=$(ls -1F | grep "current.dmp") if [ "$temp" = "temp.dmp" ]; then echo "Usuwanie pliku temp.dmp..." rm temp.dmp fi if [ "$current" = "current.dmp" ]; then echo "Przenoszenie pliku current.dmp do pliku temp.dmp..." mv $logi/current.dmp $logi/temp.dmp fi ###################################################################### echo "Wlaczanie tcpdump..." tcpdump -i $interfejs tcp [13] == 2 -w $logi/current.dmp & ###################################################################### echo "Pakowanie pliku temp.dmp..." temp=$(ls -1F | grep "temp.dmp") if [ "$temp" = "temp.dmp" ]; then tar=$(tar cvfz $archiwum/`date +%Y-%m-%d--%H-%M-%S`.tar.gz temp.dmp) if [ "$tar" = "temp.dmp" ]; then echo "Pakowanie zakonczone sukcesem !" fi else echo "Blad pakowania ! Nie mozna odnalezc pliku temp.dmp" fi |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |