Kernel Linux adalah inti dari sistem operasi yang mengontrol akses ke sumber daya sistem, seperti CPU, perangkat I/O, memori fisik, dan sistem file. Kernel menulis berbagai pesan ke buffer ring kernel selama proses boot, dan ketika sistem sedang berjalan. Pesan-pesan ini mencakup berbagai informasi tentang pengoperasian sistem.
Buffer ring kernel adalah bagian dari memori fisik yang menyimpan pesan log kernel. Ini memiliki ukuran tetap, yang berarti setelah buffer penuh, catatan log yang lebih lama akan ditimpa.
dmesg
utilitas baris perintah digunakan untuk mencetak dan mengontrol buffer ring kernel di Linux dan sistem operasi mirip Unix lainnya. Ini berguna untuk memeriksa pesan boot kernel dan men-debug masalah terkait perangkat keras.
Dalam tutorial ini, kita akan membahas dasar-dasar dmesg
perintah.
Menggunakan dmesg
Perintah #
Sintaks untuk dmesg
perintahnya adalah sebagai berikut:
dmesg [OPTIONS]
Saat dipanggil tanpa opsi apa pun dmesg
menulis semua pesan dari buffer ring kernel ke output standar:
dmesg
Secara default, semua pengguna dapat menjalankan dmesg
memerintah. Namun, pada beberapa sistem, akses ke dmesg
mungkin dibatasi untuk pengguna non-root. Dalam situasi ini, saat menjalankan dmesg
Anda akan mendapatkan pesan kesalahan seperti di bawah ini:
dmesg: read kernel buffer failed: Operation not permitted
Parameter kernel kernel.dmesg_restrict
menentukan apakah pengguna yang tidak memiliki hak dapat menggunakan dmesg
untuk melihat pesan dari buffer log kernel. Untuk menghapus batasan, setel ke nol:
sudo sysctl -w kernel.dmesg_restrict=0
Biasanya, output berisi banyak baris informasi, sehingga hanya bagian terakhir dari output yang dapat dilihat. Untuk melihat satu halaman pada satu waktu, pipa output ke utilitas pager seperti less
atau more
:
dmesg --color=always | less
--color=always
digunakan untuk mempertahankan keluaran berwarna.
Jika Anda ingin memfilter pesan buffer, gunakan grep
. Misalnya, untuk hanya melihat pesan terkait USB, ketik:
dmesg | grep -i usb
dmesg
membaca pesan yang dihasilkan oleh kernel dari /proc/kmsg
berkas maya. File ini menyediakan antarmuka ke buffer ring kernel dan hanya dapat dibuka oleh satu proses. Jika syslog
proses sedang berjalan di sistem Anda dan Anda mencoba membaca file dengan cat
, atau less
, perintah akan hang.
syslog
daemon membuang pesan kernel ke /var/log/dmesg
, jadi Anda juga dapat menggunakan file log itu:
cat /var/log/dmesg
Memformat dmesg
Keluaran #
dmesg
command menyediakan sejumlah opsi yang membantu Anda memformat dan memfilter output.
Salah satu opsi dmesg
yang paling sering digunakan adalah -H
(--human
), yang memungkinkan keluaran yang dapat dibaca manusia. Opsi ini menyalurkan output perintah ke pager:
dmesg -H
Untuk mencetak stempel waktu yang dapat dibaca manusia, gunakan -T
(--ctime
) pilihan:
dmesg -T
[Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
Format stempel waktu juga dapat diatur menggunakan --time-format <format>
opsi, yang dapat berupa ctime, reltime, delta, notime, atau iso. Misalnya untuk menggunakan format delta Anda akan mengetik:
dmesg --time-format=delta
Anda juga dapat menggabungkan dua opsi atau lebih:
dmesg -H -T
Untuk melihat keluaran dmesg
perintah secara real-time gunakan -w
(--follow
) pilihan:
dmesg --follow
Memfilter dmesg
Keluaran #
Anda dapat membatasi dmesg
output ke fasilitas dan level yang diberikan.
Fasilitas tersebut mewakili proses yang menciptakan pesan. dmesg
mendukung fasilitas log berikut:
kern
- pesan kerneluser
- pesan tingkat penggunamail
- sistem suratdaemon
- daemon sistemauth
- pesan keamanan/otorisasisyslog
- pesan syslogd internallpr
- subsistem printer barisnews
- subsistem berita jaringan
-f
(--facility <list>
) memungkinkan Anda membatasi output ke fasilitas tertentu. Opsi ini menerima satu atau beberapa fasilitas yang dipisahkan koma.
Misalnya, untuk hanya menampilkan pesan kernel dan daemon sistem, Anda akan menggunakan:
dmesg -f kern,daemon
Setiap pesan log dikaitkan dengan tingkat log yang menunjukkan pentingnya pesan. dmesg
mendukung level log berikut:
emerg
- sistem tidak dapat digunakanalert
- tindakan harus segera diambilcrit
- kondisi kritiserr
- kondisi kesalahanwarn
- kondisi peringatannotice
- kondisi normal tapi signifikaninfo
- informatifdebug
- pesan tingkat debug
-l
(--level <list>
) opsi membatasi output ke level yang ditentukan. Opsi ini menerima satu atau beberapa level yang dipisahkan koma.
Perintah berikut hanya menampilkan kesalahan dan pesan kritis:
dmesg -l err,crit
Mengosongkan Ring Buffer #
-C
(--clear
) memungkinkan Anda untuk menghapus buffer cincin:
sudo dmesg -C
Hanya root atau pengguna dengan hak sudo yang dapat menghapus buffer.
Untuk mencetak konten buffer sebelum mengosongkan, gunakan -c
(--read-clear
) pilihan:
sudo dmesg -c
Jika Anda ingin menyimpan dmesg
saat ini log in file sebelum membersihkannya, redirect output ke file:
dmesg > dmesg_messages
Kesimpulan #
dmesg
perintah memungkinkan Anda untuk melihat dan mengontrol buffer ring kernel. Ini bisa sangat berguna saat memecahkan masalah kernel atau perangkat keras.
Ketik man dmesg
di terminal Anda untuk informasi tentang semua dmesg
yang tersedia pilihan.
Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.