Участник:Getup1/Logs in TTY
Краткий гайд по прочтению логов сервера для новичков в 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
Для маленьких файлов процедура конвертирования и поиска довольно быстра, тем не менее для того чтобы не набирать длинную команду несколько раз всё-таки лучше сохранять вывод команды в файл.