Saya tidak dapat menemukan di google cara apa pun yang aman untuk menghapus jurnal systemd. Adakah yang tahu cara aman dan andal untuk melakukannya?
Katakanlah saya sedang bereksperimen dengan sesuatu dan log saya berantakan dengan berbagai pesan kesalahan. Selain itu saya menampilkan jurnal saya di desktop saya dengan menggunakan Conky. Saya benar-benar tidak ingin melihat kesalahan-kesalahan itu karena mengingatkan saya pada hari yang buruk ketika saya memperbaiki barang-barang ini, saya ingin merasa seperti orang baru setelah kengerian ini. Saya pikir semua orang akan setuju bahwa ini adalah alasan yang sah untuk menghapus log: P.
sumber
journalctl --vacuum-size=1K
kemudianjournalctl
masih menunjukkan cara lebih dari 1K. Ini menunjukkan semua pesan sejak boot terakhir.journalctl --flush --rotate
sebelumnyajournalctl --vacuum-time=1s
dan menghapus lebih banyak barang, meskipun masih belum semuanya.Anda biasanya tidak menghapus jurnal sendiri. Itu dikelola oleh systemd sendiri dan log lama diputar ketika data baru masuk. Hal yang benar untuk dilakukan adalah menjadwalkan journald untuk hanya menyimpan data sebanyak yang Anda minati. Hal paling umum untuk menyesuaikan adalah total disk ruang itu diizinkan untuk mengambil. Setelah melewati batas ini, ia akan mulai memasukkan entri lama agar tetap dekat dengan nilai ini.
Anda dapat mengatur ini
/etc/systemd/journald.conf
seperti:sumber
MaxRetentionSec
alih-alihSystemMaxUse
. Lihatman journald.conf
untuk lebih jelasnya.Jawaban Michael hilang satu hal: menyedot debu hanya menghapus file jurnal yang diarsipkan, bukan yang aktif. Untuk menghilangkan semuanya, Anda perlu memutar file terlebih dahulu sehingga entri terbaru dipindahkan ke file tidak aktif.
Jadi, jawaban lengkap untuk menghapus semua entri sepertinya
(Perhatikan bahwa Anda tidak dapat menggabungkan ini menjadi satu
journalctl
perintah.)Omong-omong, beberapa distribusi telah dikonfigurasikan journald sehingga ia menulis log ke disk (
/var/log/journal
) sementara yang lain menyimpan log dalam memori (/run/log/journal
). Saya berharap bahwa dalam beberapa kasus mungkin perlu menggunakanjournalctl --flush
dulu untuk menghapus semuanya.Jika tidak ada
--rotate
dalam versi Anda, Anda bisa menggunakan--since
argumen untuk memfilter entri:sumber
Di Arch linux, yang paling dekat yang saya dapatkan adalah:
sudo systemctl restart systemd-journald
Di sistem saya, setiap file jurnal adalah 8MB, dan di atas dihapus semua kecuali 3, sehingga ukuran total ~ 25MB.
Penggunaan-kasus saya menonaktifkan Kontrak Karya untuk Btrfs (hanya untuk direktori jurnal dan subdirektori):
sudo chattr +C /var/log/journal/*
. Masalahnya adalah, atribut hanya diatur pada file yang baru dibuat, sehingga keinginan untuk menyiram jurnal.sumber
SystemMaxUse=1K
, memulai kembalisystemd-journald
, tetapi jurnalctl masih menunjukkan entri yang saya ingin pergi. Bagaimana kemajuan ini dari file teks datar?Karena
--vacuum-time
dan--vacuum-size
tidak melakukan apa pun untuk saya, saya melakukan hal berikut:Itu tidak benar, tetapi berhasil.
sumber
/run/log
.Metode yang sangat kasar untuk membersihkan seluruh log:
Anda juga dapat menggunakan
--vacuum-size
Michael sebagai mentoined.sumber
systemctl restart systemd-journald
.Baik --rotate dan --vacuum-time = 1 tidak bekerja untuk saya di CentOS. Saya dapat menghapusnya seperti ini:
sumber
./journal
. Thejournalctl
perintah hanya bekerja di satu terbaru. Jadi saya harus menghapus direktori lama secara manual dan itu aman. Setelah saya batasi saja ukurannya di jurnal conf.Cadangkan jika Anda membutuhkannya di masa depan:
cp /run/log/journal/<temp-string>/system.journal /mylog/dir/back/system.journal.bak
Hapus file:
cd /run/log/journal/<temp-string>/
>system.journal
Periksa untuk melihat log terbaru:
journalctl -xe
sumber
journalctl -b
hanya akan ditampilkan dari boot terbaru. Anda juga dapat menggunakan-b -1
,-b -2
dll. Hari Anda yang mengerikan masih ada tetapi Anda tidak perlu melihatnya, kecuali Anda perlu.sumber
Jawaban saya sebelumnya baru saja dihapus karena "digandakan". Yah, maaf karena tidak cukup jelas dalam jawaban saya sebelumnya, tetapi itu berbeda dari jawaban yang ada. Jadi, inilah versi yang lebih rumit:
journalctl -m --vacuum-time=1s
melakukan trik untukku. Mohon perhatikan-m
bendera , itu menggabungkan semua jurnal Anda dan kemudian membersihkannya. Tanpa-m
bendera, itu tidak membersihkan apa pun dalam kasus saya (pada CentOS-7).Semoga ini bisa membantu.
sumber