5/02/2007

Лог-файлы в Linux: зачем они нужны и как их достать

Так как это постоянный вопрос новых пользователей на Линукс-форумах, им посвящается этот пост.

Новичку на форуме Линукс.
// читается скороговоркой//

Помогите телепатам!
Сообщите про железо,
Расскажите о системе,
Не скрывая ничего.

В этом деле благородном
Да поможет вам дэмэседж*
Вместе с эльэсписиаем**
Не забудьте про унэйм***

Не скрывайте ваши логи,
И конфиги, кстати, тоже,
А запостите на форум
Со скриншотами на пару.

И тогда уж стопудово
Аксакалы юниксвея
Вам помогут и подскажут,
Как систему починить.

----------------------
* имеется в виду dmesg
** вывод команды lspci
*** команда uname -a



Зачем нужны лог-файлы и почему они важны

Нормальные [?] операционные системы ведут подробный протокол собственных действий, записывая всё происходящее в текстовые файлы, log-файлы, лог-файлы или логи. Это обычные текстовые файлы, которые можно прочесть любым текстовым редактором (или средствами самой операционной системы), хотя многие логи доступны на чтение только пользователю root.
Главное: по логам можно восстановить почти полную картину неполадки, попутно выяснив особенности вашего железа и степени его поддержки.

Вот как выглядят лог-файлы в Linux:
usbcore: registered new interface driver hiddev
input: Logitech USB Receiver as /class/input/input1
input: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-0000:00:1d.0-1
input: Logitech USB Receiver as /class/input/input2
input,hiddev96: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1d.0-1
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
usb 1-5: new high speed USB device using ehci_hcd and address 3
usb 1-5: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
scsi 0:0:0:0: Direct-Access ChipsBnk SD/MMCReader 4081 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 499712 512-byte hardware sectors (256 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 499712 512-byte hardware sectors (256 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI removable disk
sd 0:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete
Из этого куска лога видно, что произошло два события:
  • подключилась мышь (выделено фиолетовым): input: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-0000:00:1d.0-1 и скорее всего эта мышь беспроводная (об этом говорит USB Receiver)
  • подключили USB-накопитель (выделено зелёным): usb 1-5: new high speed USB device using ehci_hcd and address 3, который опознан как USB-диск scsi0 : SCSI emulation for USB Mass Storage devices ёмкостью 256Мб sd 0:0:0:0: [sda] 499712 512-byte hardware sectors (256 MB) и содержащий две партиции (два раздела с данными) sda: sda1 sda2.
Как видите, из лог-файлов можно выудить огромное количество подробностей о работе аппаратуры. Другие лог-файлы могут содержать сообщения об ошибках и часто рецепты, что можно попробовать для их исправления.

Где хранятся лог-файлы в Linux

Все лог-файлы должны лежать в одном каталоге, который находится тут:
/var/log/
В общем, довольно логично. Но заходить туда не обязательно: вспоминаем, что консоль - наш друг и мощное оружие в умелых руках. Для того, чтобы быстро получить логи и прикрепить их к посланию на форум / опубликованию / пересылке по почте делаем так:
  1. Из консоли:
    1. в графическом режиме - в меню программ она может называться xterm, terminal, konsole, bash.
    2. в консольном режиме - если видите перед собой чёрный экран со словами типа penta4@penta4rce:~$ ничего пока делать не надо - вы и так в консоли :-)
  2. Далее пишем:
    1. dmesg > dmesg.txt
    2. lspci -v > lspci.txt
    3. cp /var/log/X.org.0.log ~/
  3. Далее видим в своём домашнем каталоге файлы dmesg.txt и lspci.txt и X.org.0.log
Вот этих файлов от вас так настойчиво добиваются на форумах. Наличие логов, вместе с подробным описанием проблемы и разумным количеством скриншотов способны радикально быстрее получить грамотный и исчерпывающий ответ (а ещё чаще - прямую ссылку на решение).

Для более подробного изучения неполадки и выяснения особенностей работы аппаратуры можно использовать приёмы работы, замечательно описанные здесь.

10 комментариев:

  1. Стишок прикольный :). По поводу логов. Бывшим пользователям виндовс трудно привыкнуть с ними работать. Я долго привыкал к тому, что сразу нужно лезть в логи, а не в гугл. Хотелось бы, правда, самому с ними разбераться, а не посылать на форум.

    ОтветитьУдалить
  2. lscpi -v > lspci.txt - так какая именно команда???

    ОтветитьУдалить
  3. 2 serhiy пишет...
    Стишок прикольный :)
    Нашло на меня что-то, вот и решил записать.

    По поводу логов. Бывшим пользователям виндовс трудно привыкнуть с ними работать.
    Трудно, но нужно :-) А так как я часто бываю на forum.ubuntu.ru, решил всех отсылать сюда и не писать 20000 раз одно и то же.

    2 Анонимный пишет...
    lscpi -v > lspci.txt - так какая именно команда???
    Упс, ошибся :-) Исправил. Большое спасибо!

    ОтветитьУдалить
  4. У меня, кстати, вместо файла X.org.0.log обнаружился Xorg.0.log

    ОтветитьУдалить
  5. Привет.
    У меня нет dmesg и не было с момента установки ОС (Debian Etch r0). Что это может быть? Тут еще пытался использовать apt-file для поиска java и этого же dmesg, но он не выдает никаких результатов (понятно, что это уже др. проблема, но ведь я даже не могу понять в каком пакете этот dmesg искать). Конечно я делал apt-file update, правда возникали косяки с монтированием cdrom, но необходимый архив был скопирован куда надо. Что-то всетаки apt-file'ом находится, но видимо только то что установленно, не знаю.

    ..bw

    ОтветитьУдалить
  6. dmesg заработал, не знаю чего сделал :-).

    ..bw

    ОтветитьУдалить
  7. Привет. Как вот это понять...

    root@yoker:~# cp /var/log/X.org.0.log ~/
    cp: невозможно выполнить stat для «/var/log/X.org.0.log»: Нет такого файла или каталога

    ОтветитьУдалить
  8. Вы пытаетесь скопировать файл /var/log/X.org.0.log в свой домашний каталог, а он (файл) отсутствует.

    ОтветитьУдалить
  9. На счёт отсутствующего файла попробуйте cp /var/log/Xorg.0.log ~/

    ОтветитьУдалить
  10. с логами на винде столкнулся с модами игр только, там только перезапуск или переустановка, линь 4 дня назад перезагружал, или 5...

    ОтветитьУдалить