Pendahuluan
dmesg
command adalah utilitas Linux yang menampilkan pesan terkait kernel yang diambil dari buffer ring kernel. Buffer cincin menyimpan informasi tentang perangkat keras, inisialisasi driver perangkat, dan pesan dari modul kernel yang terjadi selama startup sistem.
dmesg
perintah sangat berharga saat memecahkan masalah kesalahan terkait perangkat keras, peringatan, dan untuk mendiagnosis kegagalan perangkat.
Dalam tutorial ini, Anda akan mempelajari cara menggunakan dmesg
perintah di Linux.
Prasyarat
- Sistem komputer yang menjalankan Linux.
- Akun pengguna dengan hak administrator.
Sintaks dan Opsi
dmesg
dasar sintaks perintahnya adalah:
dmesg [options]
Tabel di bawah mencantumkan dmesg
yang paling umum digunakan pilihan:
Opsi | Deskripsi |
---|---|
-C, --clear | Mengosongkan buffer cincin. |
-c, --read-clear | Mencetak konten buffer ring dan kemudian menghapusnya. |
-f, --facility [list] | Membatasi keluaran ke fasilitas dipisahkan koma yang ditentukan [list] . |
-H, --human | Mengaktifkan keluaran yang dapat dibaca manusia. |
-L, --color[=auto|never|always] | Menambahkan warna pada output. Menghilangkan [auto|never|always] argumen default ke otomatis. |
-l, --level [list] | Membatasi output ke daftar level yang dipisahkan koma yang ditentukan. |
--noescape | Menonaktifkan fitur mengeluarkan karakter yang tidak dapat dicetak dan berpotensi tidak aman secara otomatis. |
-S, --syslog | Instruksikan dmesg untuk menggunakan antarmuka kernel syslog untuk membaca pesan kernel. Standarnya adalah menggunakan /dev/kmsg bukannya syslog . |
-s, --buffer-size [size] | Menggunakan ukuran buffer yang ditentukan untuk menanyakan buffer ring kernel. Nilai defaultnya adalah 16392. |
-T, --ctime | Mencetak stempel waktu yang dapat dibaca manusia. |
-t, --notime | Instruksikan dmesg untuk tidak mencetak stempel waktu kernel. |
--time-format [format] | Mencetak stempel waktu menggunakan [format] . yang ditentukan . Format yang diterima adalah ctime , reltime , delta , dan iso (a dmesg implementasi format ISO-8601). |
-w, --follow | Menjaga dmesg berjalan dan menunggu pesan baru. Fitur ini hanya tersedia pada sistem dengan /dev/kmsg . yang dapat dibaca berkas. |
-x, --decode | Mendekode fasilitas dan nomor level menjadi awalan yang dapat dibaca manusia. |
-h, --help | Menampilkan file bantuan dengan semua opsi yang tersedia. |
Contoh Perintah Linux dmesg
Contohnya adalah umum dmesg
kasus penggunaan perintah.
Menampilkan Semua Pesan dari Kernel Ring Buffer
Menjalankan dmesg
tanpa opsi apa pun mengeluarkan seluruh buffer kernel, tanpa berhenti, dan tanpa cara menavigasi output.
sudo dmesg
Contoh di atas adalah sebagian dmesg
keluaran perintah. Untuk navigasi yang lebih mudah dan keterbacaan yang lebih baik, kirimkan dmesg
output ke pager terminal seperti less
, more
, atau gunakan grep .
Misalnya:
sudo dmesg | less
Perpipaan dmesg
menjadi less
memungkinkan Anda menggunakan fungsi pencarian untuk mencari dan menyorot item. Aktifkan pencarian dengan menekan / . Navigasikan ke layar berikutnya menggunakan Bilah spasi , atau sebaliknya menggunakan B kunci. Keluar dari output dengan menekan Q .
Menampilkan Pesan Berwarna
Secara default, dmesg
menghasilkan keluaran berwarna. Jika output tidak berwarna, gunakan -L
pilihan untuk mewarnainya.
sudo dmesg -L
Untuk mematikan keluaran berwarna, tambahkan --color=never
pilihan untuk dmesg
. Jalankan perintah berikut:
sudo dmesg --color=never
Default dmesg
keluaran sekarang seragam dalam warna.
Menampilkan Pesan Saat Tiba
Pantau buffer ring kernel secara real-time menggunakan --follow
pilihan. Opsi tersebut menginstruksikan perintah untuk menunggu pesan baru yang terkait dengan perangkat keras atau modul kernel setelah sistem dinyalakan.
Jalankan dmesg
berikut ini perintah untuk mengaktifkan pemantauan buffer ring kernel waktu nyata:
sudo dmesg --follow
Perintah menampilkan pesan baru di bagian bawah jendela terminal. Hentikan proses menggunakan Ctrl+C .
Telusuri Istilah Tertentu
Saat menelusuri masalah tertentu atau pesan perangkat keras, kirim dmesg
keluaran ke grep
untuk mencari string atau pola tertentu.
Misalnya, jika Anda mencari pesan tentang memori, jalankan perintah berikut:
dmesg | grep -i memory
Output menunjukkan semua baris dari buffer yang berisi memory
rangkaian. -i
(abaikan huruf besar/kecil) sakelar mengabaikan sensitivitas perawatan.
Atau, jika Anda mencari pesan buffer tentang USB, port serial, jaringan, atau hard drive, jalankan perintah berikut:
USB
dmesg | grep -i usb
Port Serial
dmesg | grep -i tty
Jaringan
dmesg | grep -i eth
Hard Drive
sudo dmesg | grep -i sda
Telusuri beberapa istilah sekaligus dengan menambahkan -E
opsi untuk grep
dan menyediakan istilah pencarian yang terbungkus dalam kutipan, dipisahkan oleh pembatas pipa. Misalnya:
sudo dmesg | grep -E "memory|tty"
Keluaran akan mencetak semua pesan yang berisi salah satu istilah pencarian.
Baca dan Hapus Log dmesg
-c
(--read-clear
) memungkinkan Anda menghapus dmesg
log setelah mencetaknya. Menghapus buffer memastikan Anda hanya memiliki pesan yang valid dari reboot terbaru.
Jalankan perintah berikut:
sudo dmesg -c
Menjalankan kembali dmesg
tidak memiliki keluaran sejak log telah dihapus.
Aktifkan Stempel Waktu di dmesg Logs
Aktifkan stempel waktu di dmesg
output dengan menambahkannya dengan -H
(--human
), yang menghasilkan keluaran yang dapat dibaca manusia dan secara otomatis menyalurkan keluaran ke pager (less
).
Jalankan perintah berikut:
sudo dmesg -H
Perintah menambahkan cap waktu dengan tanggal dan waktu diselesaikan dalam hitungan menit. Peristiwa di menit yang sama diberi label dengan detik dan nanodetik.
Keluar dari pager dengan menekan Q .
Aktifkan Stempel Waktu yang Dapat Dibaca Manusia
Aktifkan stempel waktu yang dapat dibaca manusia menggunakan -T
(--ctime
) pilihan. Opsi ini menghilangkan akurasi nanodetik dari output, tetapi stempel waktu lebih mudah diikuti.
sudo dmesg -T
Stempel waktu dalam output adalah tanggal dan waktu standar, dan resolusinya dalam hitungan menit. Stempel waktu yang sama ditambahkan ke setiap tindakan yang terjadi pada menit yang sama.
Pilih Format Stempel Waktu
Gunakan --time-format [format]
pilihan untuk memilih format cap waktu. Format yang tersedia adalah:
ctime
reltime
delta
notime
iso
Misalnya, untuk menggunakan iso
format, jalankan:
sudo dmesg --time-format=iso
Format stempel waktu sekarang YYYY-MM-DD<T>HH:MM:SS,<microseconds>←+><timezone offset from UTC>
.
Batasi Keluaran dmesg ke Fasilitas Tertentu
Filter dmesg
keluaran ke kategori tertentu menggunakan -f
pilihan. Sistem mengelompokkan pesan dalam buffer ring kernel ke dalam fasilitas (kategori) berikut:
kern
. Pesan kernel.user
. Pesan tingkat pengguna.mail
. Pesan sistem email.daemon
. Pesan tentang daemon sistem.auth
. Pesan otorisasi.syslog
.syslogd
Internal internal pesan.lpr
. Pesan subsistem printer baris.news
. Pesan subsistem berita jaringan.
Misalnya, perintah berikut membatasi output ke pesan yang terkait dengan syslog
fasilitas:
sudo dmesg -f syslog
Untuk membuat daftar pesan dari lebih dari satu fasilitas, tentukan daftar fasilitas yang dipisahkan koma. Misalnya:
sudo dmesg -f syslog,daemon
Filter Level Log
dmesg
perintah mengasosiasikan setiap pesan buffer dengan tingkat log yang mencirikan pentingnya pesan. Level yang tersedia adalah:
emerg
. Pesan darurat.alert
. Peringatan yang membutuhkan tindakan segera.crit
. Kondisi kritis.err
. Pesan kesalahan.warn
. Pesan peringatan.notice
. Kondisi normal tapi signifikan.info
. Pesan informasi.debug
. Pesan tingkat debug.
Instruksikan dmesg
untuk mencetak hanya pesan yang cocok dengan level tertentu menggunakan -l
pilihan, diikuti dengan nama level. Misalnya:
sudo dmesg -l info
Contoh di atas hanya mengekstrak pesan informasional dari log.
Gabungkan beberapa level dalam daftar yang dipisahkan koma untuk mengambil pesan dari level tersebut. Misalnya:
sudo dmesg -l notice,warn
Outputnya menggabungkan pesan dari level log yang ditentukan.
Menggabungkan Fasilitas dan Level
Tunjukkan secara eksplisit setiap fasilitas pesan buffer dan level log di awal setiap baris menggunakan -x
opsi (dekode).
Misalnya:
sudo dmesg -x
Pada contoh di atas, setiap baris diawali dengan fasilitas dan level log yang sesuai.
Baca File Log dmesg
Setiap kali sistem boot, pesan dari buffer ring kernel disimpan di /var/log/dmesg mengajukan. dmesg
perintah menunjukkan isi file log. Jika Anda mengalami masalah saat menggunakan dmesg
perintah, buka file log dalam editor teks untuk melihat isinya.
Pada contoh di bawah, kita menggunakan perintah cat untuk melihat file log dan menyalurkannya ke grep
untuk mencari string tertentu yang muncul di log:
cat dmesg | grep amd
Perintah mengeluarkan semua amd
contoh string dalam file log.
Periksa Drive CD
Periksa apakah mesin jarak jauh dilengkapi dengan drive CD dengan memeriksa log pesan buffer. Misalnya, perintah berikut menampilkan semua pesan tentang perangkat CD yang diinisialisasi saat startup:
sudo dmesg | grep -iE 'cdrom|dvd|cd/rw|cd-rom'
Hasilnya menampilkan informasi tentang drive CD-ROM yang tersedia, termasuk drive CD-ROM virtual pada mesin ini.
Hapus Persyaratan Sudo
Menghapus persyaratan untuk hak pengguna super memungkinkan setiap pengguna untuk menjalankan dmesg
dan melihat pesan buffer ring kernel. Jalankan perintah berikut untuk menghapus persyaratan sudo:
sudo sysctl -w kernel.dmesg_restrict=0
Setelah menyetel batasan ke 0
, setiap pengguna di sistem dapat menjalankan dmesg
.