Mam wiele dzienników dostępu w katalogu Logi, następujących konwencji nazewnictwa poniżej:Jak traktować wiele plików dziennika jako jeden wirtualny plik w Perlu?
access.log.1284642120
access.log.1284687600
access.log.1284843260
Zasadniczo, dzienniki są „obrócone” Apache dziennie, więc mogą być sortowane w porządku.
Próbuję "odczytać je jeden po drugim", aby można było traktować je jako jeden plik dziennika.
my @logs = glob('logs/access.log.*');
Powyższy kod będzie glob wszystkie dzienniki, ale nie jestem pewien:
- W jakiej kolejności będą dzienniki być zorganizowane, alfabetycznie?
- jeśli chcę sprawdzić "najnowszy czas dostępu z unikalnego adresu IP", jak mogę to zrobić?
Mam skrypt Perla, który może odczytać pojedynczy dziennik dostępu i sprawdzić to łatwo (mój algorytm ma mieć duży skrót, który używa adresu IP jako klucza, a czas dostępu jako wartość, i po prostu kontynuuj pchanie pary klucza/wartości do niej ...). Ale nie chcę po prostu scalać wszystkich plików dostępu w jeden plik tymczasowy tylko dla tego procesu.
Wszelkie sugestie? Z góry bardzo dziękuję.
+1 dla interpunkcji. Podobnie jak metalowe opaski, odpowiedzi na to pytanie są lepsze z umlautami. – FMc
Otrzymujesz także magię '$ .', śledzącą bieżący numer bieżącego pliku. – mob