2011-11-22 10 views
5

Próbuję monitorować pliki dziennika, że ​​niektóre procesy są uruchomione na Linuksie (aby utworzyć wspólny plik dziennika, w którym wpisy dziennika są pogrupowane razem, gdy się zdarzą). Obecnie myślę o otwarciu rejestrowanych plików, odpytywaniu za pomocą inotify (lub opakowania), a następnie sprawdzeniu, czy mogę odczytać więcej z pliku.Czy istnieje lepszy sposób monitorowania plików dziennika? (Linux/python)

Czy istnieje lepszy sposób to zrobić? Być może oglądana jest jakaś biblioteka, która streszcza odczyt/zmiany w plikach?

+0

Czy próbowałeś użyć 'select()'? – hochl

+0

Czas modyfikacji inotify or polling prawdopodobnie jest najlepszym wyborem. –

+0

@hochl 'select' sprawdza, czy deskryptor pliku można odczytać lub zapisać, nie sprawdza, czy deskryptor (który może przez dowolny deskryptor, głównie gniazda) ma zmodyfikowane" źródło ". –

Odpowiedz

0

Jeśli zrobisz to sam, możesz zrobić coś takiego: Jeśli wykryjesz modyfikację pliku, pobierz rozmiar pliku. Jeśli jest większy niż poprzednio, możesz szukać poprzedniej "ostatniej" pozycji (tj. Poprzedniego rozmiaru) i czytać z tego miejsca.

3

Dlaczego "ogon -f" nie jest wystarczający? Możesz użyć popenu i potoków do obsługi tego z Pythona.

Powiązane problemy