Jak śledzić wszystkie pliki dziennika w folderze i podfolderach?

W Linuksie, używając polecenia tailf, Jak mogę śledzić kilka plików dziennika, które znajdują się w folderze i w podfolderach?

Author: guaka, 2013-08-19

4 answers

Aby zapisać wszystkie pliki wewnątrz folderu, możesz przejść do folderu i zapisać

tailf *.log

Aby dodać podfoldery do polecenia tailf, użyj

tailf **/*.log

Zamiast tailf można również użyć tail -f. Oczywiście, Wyrażenie regularne można ulepszyć tak, aby pasowało tylko do określonych nazw plików.

 50
Author: nakib,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-19 19:13:08

To rekurencyjnie odnajdzie wszystkie *.loguj pliki w bieżącym katalogu i jego podfolderach i śledź je.

find . -type f \( -name "*.log" \) -exec tail -f "$file" {} +

 14
Author: cevaris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-11 05:35:25

Jeśli wszystkie pliki logów nie mają tego samego rozszerzenia. Możesz użyć następującego polecenia.

tail -f **/*
 8
Author: Farid Movsumov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-23 10:31:35

W ten sposób znajdujemy pliki rekurencyjnie, wypisujemy linie zaczynające się w linii 5 w każdym pliku i zapisujemy w concat.txt

find . -type f \( -name "*.dat" \) -exec tail -n+5 -q "$file" {} + |tee concat.txt
 0
Author: Ivan Nack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-26 17:23:49