Jadikan @ # $% sebagai pekerjaan
- Anda ingin mencetak output dmesg, terus-menerus, segera
- Dmesg sedang mencetak buffer cincin kernel (lihat
man dmesg
)
- Buffer cincin kernel adalah file proc khusus,
/proc/kmsg
(lihat man proc
)
- Baca
/proc/kmsg
langsung, yaitu cat /proc/kmsg
.
Sekarang, jika Anda membaca manual proc ramah, itu akan memperingatkan Anda untuk membiarkan hanya satu pengguna (yang harus memiliki hak istimewa) membaca /proc/kmsg
sekaligus. Apa pun implementasi syslog yang Anda miliki harus melakukan ini, dan mungkin berhasil dmesg
. Saya tidak tahu, saya keluar dari liga saya di sini, hanya mengutip manual. Jadi sementara ini adalah cara "hanya membuatnya @ # $% ing bekerja", pertimbangkan metode pasangan berikutnya terlebih dahulu.
Halaman manual disetujui: watch + dmesg
Pada Arch gnu / linux dengan systemd init *, dmesg.log tidak terlalu sering ditulis, mungkin tidak sama sekali? Cara terbaik yang saya temukan untuk membaca buffer log kernel terus menerus adalah dengan watch
. Sesuatu seperti ini harus Anda mulai (sesuaikan untuk berapa banyak baris yang pas di terminal Anda):
watch 'dmesg | tail -50'
lihat + dmesg + daemon + tail -f
Solusi yang lebih berbelit-belit mungkin menggunakan arloji untuk menulis output dmesg ke file, yang Anda bisa kemudian tail -f
. Anda mungkin ingin menjalankan ini sebagai daemon. Daemon yang tepat juga akan gzip dan memutar log. Kode bash berikut tidak teruji, tidak berfungsi, dan hanya dimaksudkan untuk menyampaikan gagasan. @ Brian jawaban Musa memiliki versi yang berfungsi .
watch 'dmesg >> /var/log/dmesg.log | tail -1'
* tangen, karena ini adalah pertanyaan osx, tetapi ketika systemd ada, jangan repot-repot dmesg
, gunakan journalctl -xf
(mungkin -n 100
juga menampilkan 100 baris sebelumnya)