Dalam panduan ini, saya akan membincangkan cara melihat log systemd pada Linux menggunakan utiliti baris arahan yang berbeza.
Catatan: Arahan yang dinyatakan dalam panduan ini dilakukan pada Ubuntu. Mereka akan berfungsi tanpa ralat pada semua pengedaran Linux yang disertakan dengan sistem init systemd.
Kaedah untuk Melihat Log systemctl
Terdapat dua pendekatan untuk melihat log systemd di Linux:
Systemctl memberikan log khusus perkhidmatan terkini, manakala journalctl memberikan log seluruh sistem yang mendalam bagi semua perkhidmatan dan perkhidmatan khusus.
Saya akan meneroka kedua-dua utiliti untuk melihat log systemd. Tetapi pertama, mari kita fahami perbezaan utama antara perintah systemctl dan journalctl.
Apa itu systemctl
Systemctl ialah utiliti baris arahan yang menguruskan perkhidmatan systemd, seperti mendayakan atau melumpuhkan perkhidmatan dan melihat status. The status systemctl arahan juga mencetak beberapa baris log perkhidmatan di bahagian bawah output, dan log ini adalah selepas but baru-baru ini. Walau bagaimanapun, talian log perkhidmatan ini adalah dari selepas but semasa sahaja.
Apa itu journalctl
Journalctl ialah utiliti baris arahan yang digunakan untuk mencetak log yang dikumpul oleh systemd. Berbanding dengan systemctl, ia menyediakan output terperinci dengan pilihan penapisan. Utiliti ini direka untuk:
- Baca log (Log tertua didahulukan)
- Pantau log
- Tapis log berdasarkan masa, perkhidmatan atau pengguna
Systemd mengumpul log daripada kernel, perkhidmatan, dan daemon dan menyimpannya di tempat terpusat.
Cara Melihat Log Perkhidmatan menggunakan systemctl
Sintaks umum untuk mencari log perkhidmatan menggunakan systemctl utiliti disebutkan di bawah.
status systemctl [ nama perkhidmatan ]Contohnya, untuk melihat maklumat log bagi smbd.service gunakan arahan yang diberikan di bawah.
status systemctl smbd.service
Untuk mendapatkan output tanpa penomboran, tambahkan -tiada kelui pilihan dalam arahan.
status systemctl smbd.service --tiada-halaman muka surat
Cara Melihat Log Perkhidmatan menggunakan journalctl
Untuk melihat log perkhidmatan khusus systemd, gunakan journalctl dengan -dalam arahan dan perkhidmatan atau nama unit.
journalctl -dalam [ nama perkhidmatan ]Dalam arahan di atas, the -dalam bendera, singkatan dari –unit digunakan untuk menapis journalctl output dengan nama unit.
Sebagai contoh, untuk mencetak log smbd daemon, saya akan menggantikan [nama unit] dengan smbd.service .
journalctl -dalam smbd.service
Dalam output, dapat dilihat bahawa entri tertua datang dahulu dan kemudian log selepas setiap but disenaraikan.
Untuk dapatkan entri terkini guna dulu -Ia adalah ringkasan untuk –penghujung kelui.
journalctl -dalam smbd.service -Ia adalah
Jika anda ingin meninggalkan penomboran daripada output, tambahkan sahaja -tiada kelui dalam arahan yang disebutkan di atas.
Untuk terus mencetak entri log dalam penggunaan masa nyata -f ringkasan untuk –ikut .
journalctl -dalam smbd.service -fPenapisan boleh dikembangkan lagi dengan menggunakan bendera -b singkatan untuk – but , yang mencetak log berdasarkan but semasa.
journalctl -dalam [ nama unit ] -bMari cetak log smbd.service daripada but baru-baru ini.
journalctl -dalam smbd.service -b
Output di atas menyerupai output yang kita dapat menggunakan status systemctl perintah.
Untuk mendapatkan gambaran keseluruhan log terperinci, gunakan -x ringkasan untuk –katalog pilihan.
journalctl -dalam smbd.service -xIni akan menambahkan penerangan ringkas tentang log.
Sekarang, untuk mencetak log berdasarkan masa menggunakan journalctl terdapat dua pilihan, -S ringkasan untuk -sejak dan -DALAM ringkasan untuk –sehingga .
journalctl -dalam [ nama unit ] -S '[tahun-bulan-hari] [jam:minit:saat]'Contohnya, untuk melihat log unit smbd daripada 2024:01:30 12:05:00 .
journalctl -dalam smbd.service -S '2024:01:30 12:05:00'
Kesimpulan
Untuk melihat log systemd perkhidmatan, terdapat dua utiliti utama, journalctl dan systemctl. Journalctl direka khusus untuk melihat log systemd. Walau bagaimanapun, systemctl juga mempunyai pilihan untuk mencetak log perkhidmatan. Untuk mencetak log penggunaan perkhidmatan, journalctl -u [nama-unit] dan systemctl [nama unit].