Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest piątek, 29 marca 2024, 08:15

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 4 ] 
Autor Wiadomość
Post: niedziela, 5 lutego 2006, 13:26 
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
: [/] [] ()
df | grep "hda1" | gawk '{print $4}'

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
: [/] [] ()
ls -t

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.


Na górę
  
 
 Tytuł:
Post: niedziela, 5 lutego 2006, 14:41 
Offline
Honorowy Admin

Rejestracja: piątek, 5 lipca 2002, 17:30
Posty: 7800
Lokalizacja: Słupsk
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.

_________________
Obrazek Belfer.one.PL
Obrazek Audio Cafe


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 5 lutego 2006, 23:08 
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


Na górę
  
 
 Tytuł:
Post: poniedziałek, 6 lutego 2006, 17:21 
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


Na górę
  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 4 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl