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/kmsglangsung, 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/kmsgsekaligus. 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 100juga menampilkan 100 baris sebelumnya)