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:
ctimereltimedeltanotimeiso
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.syslogdInternal 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 .