Некоторые приложения сохраняют информацию о своем состоянии или исторические данные процесса выполнения в лог-файлах. Возникает необходимость просмотреть изменениия лог файла или файлов в реальном времени. Это могут быть запросы к веб-серверу NGINX или результат работы утилиты curl при скачивании большого количества данных.
Например, я переодически люблю поглядывать как работают мои боты для Telegram, у которых нет внешней базы для хранения статистики.
Утилита tail
Утилита которую я использую для просмотра логов в реальном времени, довольно популярна, но новички в Linux могут о ней не знать. Это утилита tail
. Переводится название с английского как хвост, что полностью отражает суть утилиты.
По умолчанию, tail
просто выводит 10 последних строк файла:
tail /var/log/nginx/access.log
Результат:
5.101.0.209 - - [17/Apr/2020:11:24:48 +0000] "GET /solr/admin/info/system?wt=json HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
5.101.0.209 - - [17/Apr/2020:11:30:02 +0000] "GET /?a=fetch&content=<php>die(@md5(HelloThinkCMF))</php> HTTP/1.1" 200 396 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
5.101.0.209 - - [17/Apr/2020:11:30:03 +0000] "GET /?XDEBUG_SESSION_START=phpstorm HTTP/1.1" 200 396 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
5.101.0.209 - - [17/Apr/2020:11:36:26 +0000] "GET /index.php?s=/Index/\x5Cthink\x5Capp/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
192.241.239.88 - - [17/Apr/2020:11:54:02 +0000] "GET /hudson HTTP/1.1" 404 152 "-" "Mozilla/5.0 zgrab/0.x"
...
В результате примера, кстати, видно что веб-сервер сканируют боты поиска уязвимостей. Такие боты в автоматическом режиме сканируют сервера в сети интернет, находят сервера с уязвимым ПО (это может быть система управления сайтом или панель управления сервером) и эксплуатируют уязвимость. Потом такой сервер становится частью ботнета или же с него выполняются незаконные действия. Так что мой совет: не используйте никогда устаревшее ПО, следите за регулярными обновлениями.
Параметры утилиты tail
Изменить количество выводимых строк можно параметром -n
или просто указав количество числовым параметром, например -2
:
tail -2 /var/log/nginx/access.log
В результате отобразится две последних строки лог-файла.
А вот для отслеживания изменений необходим параметр -f
:
tail -f /var/log/nginx/access.log
Можно также комбинировать команды, например выводить только две последних строки файла при изменении лог-файла:
tail -f -2 /var/log/nginx/access.log
Что бы остановить выполнение утилиты и выйти из просмотра файла, нажмите Ctrl + C.
Рад был поделиться информацией с вами, а вы в свою очередь делитесь моей заметкой в социальных сетях и отправляйте друзьям и коллегам.