Участник:Getup1/Logs in TTY

Материал из Tau Ceti Station Wiki
< Участник:Getup1
Версия от 20:53, 3 ноября 2019; Getup1 (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Краткий гайд по прочтению логов сервера для новичков в GNU/Linux.

1. Перекодирование. Изначально символы в файле логов закодированы в кодировке Windows-1251, нам надо перевести их в UTF-8.

iconv -f CP1251 -t UTF8 <файл> > <другой_файл>

Здесь мы используя магию UNIX чтобы направить поток вывода программы iconv в выбранный нами файл с помощью символа >


2. Поиск. Для поиска используется утилита grep. Она ищет совпадения в строках файла и выводит на экран подходящие строки.

grep <подсторка или регулярное выражение> <файл>

Уметь составлять регулярные выражения совсем необязательно, однако это знание будет очень полезным. Например, следующая команда выведет все админ-действия игрока Getup1:

grep -iE 'admin:.*getup1' <файл>

В этом случае также были использованы параметры: -i делает регулярное выражение нечувствительным к регистру, а -E включает режим расширенных регулярных выражений.

Ещё пример, вывести все строки которые содержат одну из нескольких подстрок.

grep iE 'getup1|edlern|volas' <файл>

Эта команда выведет все строки содержащие одну из заданных подстрок getup1, edlern или volas.

Вывод команды grep также можно направить в файл с помощью символа > или на ввод другой программы с помощью |.


3. Вывод. Вполне вероятно что весь лог не поместится на одном экране терминала. Для того чтобы вывести весь лог можно восопльзоваться программой less.

less <файл>

В окне терминала откроется часть файла. Для прокрутки можно использовать клавиши вверх, вниз, pgup, pgdn и колесо мыши.

Также в less можно передать вывод другой команды не сохраняя его в промежуточный файл. Так, можно объединить два предыдущих шага в один:

iconv -f CP1251 -t UTF8 <файл> | grep <паттерн> | less

Для маленьких файлов процедура конвертирования и поиска довольно быстра, тем не менее для того чтобы не набирать длинную команду несколько раз всё-таки лучше сохранять вывод команды в файл.