Linux Log Dosyaları

dmesg

Linux ve diğer Unix benzeri işletim sistemlerinde bilgisayar açıldığı andan itibaren üretilen çekirdek mesajlarının yazıldığı dosyadır.

Dmesg çıktısı /var/log/dmesg‘ dizininde tutulur ve bu dosyayı gedit gibi bir metin düzenleyiciyle veya cat komutuyla terminal satırından kolayca okuyabilirsiniz.
Terminal satırında dmesg komutunu çalıştırarak çekirdeğe yüklenen tüm donanım sürücülerini, başarı durumlarını ve neden başarısız olduklarını görebilirsiniz.(Flash bellek, harddisk, yazıcı, klavye, vb.) Tutulan kayıtlar sayesinde çekirdeğin tespit ettiği donanım aygıtları ve yüklenirken oluşan hatalar hakkında bilgi toplayıp, çözüm üretebilirsiniz.

Kernel yani çekirdek işletim sisteminin kalbidir. Bilgisayar açıldığında belleğe yüklenen ilk kısımdır ve bu aşamada sistemdeki herşey kontrol edilmektedir. Dmesg kayıtlarını anlamlandırmak normal kullanıcılar için oldukça zordur. Burada bulunan kayıtlar deneyimli sistem yöneticileri tarafından kolayca anlamladırabilmektedir.

dmesg komutu ve kullanımı hakkında bilgi almak için terminal satırına dmesg –h yazabilirsiniz.

Desteklenen Günlük mesajları:

kern – Çekirdek mesajları
user – Rasgele kullanıcı düzeyi mesajlar
mail – Mail sistemi
daemon – system daemons
auth – Güvenlik / yetkilendirme mesajları
syslog – Syslogd tarafından dahili olarak üretilen mesajlar
lpr – line printer subsystem
news – network news subsystem

Günlük Seviyeleri (Öncelikler)

emerg – sistem kullanılamaz
alert – Önemli uyarı, hemen harekete geçilmeli
crit – Kritik koşullar
err – Hatalı koşullar
warn – Uyarı koşulları
notice – Normal fakat yinede önemli koşullar
info – Bilgi amaçlı
debug – Hata ayıklama düzeyindeki iletiler

Terminal satırına dmesg yazınca karşınıza gelen çıktıda en sol tarafta köşeli parantez içerisinde bulunan sayı sistemin çalışma zamanının değeridir, yani bir nevi zaman damgasıdır. Bazı sistemlerde tarih yerine sistemin çalışma zamamı belirli formatlarda hesaplanarak (örneğin milisaniye) log dosyalarına kayıt edilir. Sonrasında ise cihaz adı ve analiz edebileceğiniz bilgilerin olduğu mesajlar vs. gelir.

Burada -T parametresi log satırlarında zaman bilgisini bize okunaklı bir şekilde vermektedir. Fakat çıkan sonuç aldatıcı olabilir. Çünkü çalışma süresi değerleri yalnızca sisteminizin önyükleme tarihine eklenir. Askıya alma veya devam ettirme gibi durumlar olduysa doğru sonuç vermeyebilir.

Ayrıca kayıt günlüklerini yanlışıkla -c veya -C parametresini kullanarak önbellekten silmeniz durumunda var/log/dmesg dosyasından ulaşabileceğiniz gibi var/log/kern.log dosyasında da görüntüleyebilirsiniz. Terminal satırından silme işlemini gerçekleştirebilmeniz için root kullanıcı ile giriş yapmış olmanız gerekmektedir.

Örneğin; [5.912458] zaman damgalı satırı kern.log dosyasında aradığımızda gördüğünüz gibi aynı sonucu alıyoruz.

Örneğin bir flash bellek taktığımda dmesg günlüğünü inceleyelim.

[13417.982998] usb 2-2: new high-speed USB device number 8 using xhci_hcd
[13418.111820] usb 2-2: New USB device found, idVendor=0781, idProduct=557d
[13418.111824] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[13418.111827] usb 2-2: Product: Cruzer Force
[13418.111828] usb 2-2: Manufacturer: SanDisk
[13418.111830] usb 2-2: SerialNumber: 4C5301020509181***
[13418.112336] usb-storage 2-2:1.0: USB Mass Storage device detected
[13418.112454] scsi host7: usb-storage 2-2:1.0
[13419.112015] scsi 7:0:0:0: Direct-Access     SanDisk  Cruzer Force     1.00 PQ: 0 ANSI: 6
[13419.112658] sd 7:0:0:0: Attached scsi generic sg2 type 0
[13419.112858] sd 7:0:0:0: [sdb] 62521344 512-byte logical blocks: (32.0 GB/29.8 GiB)
[13419.113955] sd 7:0:0:0: [sdb] Write Protect is off
[13419.113963] sd 7:0:0:0: [sdb] Mode Sense: 43 00 00 00
[13419.115169] sd 7:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[13419.125073]  sdb: sdb1
[13419.126570] sd 7:0:0:0: [sdb] Attached SCSI removable disk
[13419.306246] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

Yukarıda özetle;

1. satırda yüksek hızlı bir cihaz algıladığını ( USB 3.0 xhci_hcd) ve aygıt numarasının 8 olduğunu ,
2. satırda USB cihazını bulduğunu, üretici firma (idVendor) ve ürüne ait (idProduct) id bilgisini veriyor,
3. satırda yeni bulunan USB cihaza ait dizeleri belirtiyor; Üretici firma, ürün ve seri numarası
4,5 ve 6. satırda 3 satırda dizelerde bulunan veriler hakkında bilgiler yer alıyor
7. satırda USB depolama biriminin algılandığını söylüyor.
Sonraki satırlarda ise; doğrudan erişime hazır olduğunu, 32 GB olduğunu, yazma korumasının kapalı ve bazı verilerin bozuk olduğu vs. açıklıyor.

USB cihazı doğrudan laptop’dan çıkardığımda 8 numaralı aygıtın USB bağlantısının kesildiği belirtiliyor.Aynı cihazı yeniden taktığımda ise cihaz numarasını 9 vererek algılamaya başlıyor.

[16901.638665] usb 2-2: USB disconnect, device number 8
[16905.890429] usb 2-2: new high-speed USB device number 9 using xhci_hcd

Şimdi linux komutlarını kullanarak biraz pratik işlemler yapalım.

Desteklenen günlük mesajları ve seviyeleri birlikte listeyelim, sonrasında ise içlerinde sadece kern (çekirdek) mesajlarını listeleyelim.

dmesg -x | grep -wi ‘kern’

Görüldüğü üzere çekirdek mesajları ve seviye notları ile birlikte geldi.

Görüldüğü üzere önce kern günlük dosyası, seviye bilgisi, zaman damgası, varsa cihazı adı, mesaj vs.

Sırasıyla seviyelere değinecek olursak;

info – Bilgi amaçlı
notice – Normal fakat yinede önemli koşullar
warn – Uyarı koşulları

Ya da aşağıdaki komutu kullanarak da kern (çekirdek) mesajlarını listeyebilirsiniz.

dmesg –facility=kern

Şimdi ise sadece uyarı ve bilgi amaçlı gelen günlük satırlarını listeyelim.

dmesg -x | grep -wi ‘warn\|info’


Zaman damgası olmadan görüntülemek için -t parametresini kullanabilirsiniz.

dmesg -t

Örnek çıktı :

sd 8:0:0:0: [sdb] Attached SCSI removable disk

Okunabilir bir zaman damgası ile çıktı almak için;

dmesg –ctime

Örnek çıktı :

[Paz Tem 30 18:26:28 2017] sd 8:0:0:0: [sdb] Attached SCSI removable disk

Çekirdek log kayıtlarında USB aygıtlara yapılan başvuruları listelemek için;

dmesg | grep -i ‘usb’

[16905.890429] usb 2-2: new high-speed USB device number 9 using xhci_hcd
[16906.019243] usb 2-2: New USB device found, idVendor=0781, idProduct=557d

RAM hakkında bilgi için;

dmesg | grep -i ‘memory’

Örnek çıktı :

[    6.708311] [TTM] Zone  kernel: Available graphics memory: 4049272 kiB
[    6.708313] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    6.708344] [drm] amdgpu: 2048M of VRAM memory ready
[    6.708347] [drm] amdgpu: 2048M of GTT memory ready.
  • dmesg | grep -i ‘tty’
  • dmesg | grep -i ‘eth0’
  • dmesg | grep -i ‘wlan’
  • dmesg | grep -i ‘amdgpu’

Örnek çıktı :

[    5.618201] [drm] amdgpu kernel modesetting enabled.
[    5.634342] amdgpu 0000:09:00.0: enabling device (0000 -> 0003)

vs. örnekler arttırılabilir. Konu üzerinde bir örnek verdik fakat bu yazı üzerindeki bilgilere bakarak diğer karşılaştığınız olayları aramalar yaparak yorumlayabilir ve çözümler üretebilirsiniz.

Site Footer