( Pertanyaan ini berkaitan dengan masalah yang serupa, tetapi ini berbicara tentang file log yang diputar.)
Hari ini saya mendapat pesan sistem tentang /var
ruang yang sangat rendah .
Seperti biasa saya mengeksekusi perintah-perintah di baris sudo apt-get clean
yang memperbaiki skenario hanya sedikit. Kemudian saya menghapus file log yang diputar yang sekali lagi memberikan sedikit peningkatan.
Setelah memeriksa saya menemukan bahwa beberapa file log di /var/log
telah tumbuh menjadi yang sangat besar. Untuk lebih spesifik, ls -lSh /var/log
berikan,
total 28G -rw-r----- 1 syslog adm 14G Aug 23 21:56 kern.log -rw-r----- 1 syslog adm 14G Aug 23 21:56 syslog -rw-rw-r-- 1 root utmp 390K Aug 23 21:47 wtmp -rw-r--r-- 1 root root 287K Aug 23 21:42 dpkg.log -rw-rw-r-- 1 root utmp 287K Aug 23 20:43 lastlog
Seperti yang bisa kita lihat, dua yang pertama adalah yang menyinggung. Saya sedikit terkejut mengapa file besar seperti itu belum diputar.
Jadi apa yang harus aku lakukan? Hapus saja file-file ini lalu reboot? Atau pergi untuk beberapa langkah yang lebih bijaksana?
Saya menggunakan Ubuntu 14.04.
PEMBARUAN 1
Untuk memulainya, sistem baru berumur beberapa bulan. Saya harus menginstal sistem dari awal beberapa bulan yang lalu setelah crash hard disk.
Sekarang, seperti yang disarankan dalam jawaban ini , saya pertama kali memeriksa file log yang menyinggung menggunakan tail
, tidak mengherankan di sana. Kemudian, untuk pemeriksaan lebih dalam, saya menjalankan skrip ini dari jawaban yang sama .
for log in /var/log/{syslog,kern.log}; do
echo "${log} :"
sed -e 's/\[[^]]\+\]//' -e 's/.*[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//' ${log} \
| sort | uniq -c | sort -hr | head -10
done
Prosesnya memakan waktu beberapa jam. Outputnya berada di garis,
/var/log/syslog : 71209229 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=1681522688 53929977 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 17280298 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 1639 Rafid-Hamiz-Dell kernel: EXT4-fs warning (device sda3): ext4_end_bio:317: I/O error -5 writing to inode 6819258 (offset 0 size 4096 starting block 54763121030042024) <snipped> /var/log/kern.log.1 : 71210257 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 71209212 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=1681522688 1639 Rafid-Hamiz-Dell kernel: EXT4-fs warning (device sda3): ext4_end_bio:317: I/O error -5 writing to inode 6819258 (offset 0 size 4096 starting block 954763121030042024)
( /dev/sda3
adalah direktori home saya. Seperti yang dapat kita temukan,
lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 122.1G 0 part / ├─sda2 8:2 0 7.6G 0 part [SWAP] └─sda3 8:3 0 801.8G 0 part /home
Mengapa suatu proses ingin menulis di luar batas sebenarnya di luar ruang lingkup pemahaman saya. Mungkin saya ingin mengajukan pertanyaan berbeda di forum ini jika ini berlanjut bahkan setelah pembaruan sistem.)
Kemudian, dari jawaban ini (Anda mungkin ingin memeriksa ini untuk pemahaman yang lebih dalam), saya mengeksekusi,
sudo su -
> kern.log
> syslog
Sekarang, file-file ini memiliki ukuran nol. Sistem berjalan dengan baik sebelum dan sesudah reboot.
Saya akan menonton file-file ini (bersama dengan orang lain) dalam beberapa hari ke depan dan melaporkan kembali jika
mereka berperilaku out-of-line.
Sebagai catatan akhir, kedua file yang menyinggung ( kern.log
dan syslog
), diatur untuk diputar, seperti pemeriksaan file ( grep
dibantu) di dalam
/etc/logrotate.d/
acara.
PEMBARUAN 2
File log sebenarnya diputar. Sepertinya ukuran besar tercapai pada satu hari.
sumber
Jawaban:
Kosongkan mereka tetapi jangan gunakan
rm
karena itu bisa berakhir menabrak sesuatu saat Anda mengetiktouch
perintah untuk membuatnya kembali.Metode terpendek:
Jika tidak melakukan root maka akan diperlukan
sudo
. Diambil dari jawaban lain pada AU.SEBELUM ANDA MELAKUKANNYA. Lakukan
tail {logfile}
dan periksa apakah ada alasan bagi mereka untuk menjadi begitu besar. Kecuali jika sistem ini berumur beberapa tahun, tidak ada alasan untuk hal ini dan memperbaiki masalahnya lebih baik daripada membiarkannya terus berjalan.Baik kern.log dan syslog biasanya tidak sebesar itu. Tapi seperti yang saya katakan: jika sistem ini berjalan dan berjalan selama bertahun-tahun mungkin normal dan file hanya perlu dibersihkan.
Dan untuk mencegahnya menjadi sebesar itu di masa depan: pengaturan
logrotate
. Ini cukup mudah dan akan memampatkan file log ketika menjadi lebih besar dari ukuran yang Anda tetapkan.1 hal lain: jika Anda tidak ingin menghapus konten Anda dapat mengompres file dengan tarring atau gzipping. Itu akan membuat Anda berakhir dengan file mungkin 10% dari apa yang sekarang. Itu jika masih ada ruang pada disk untuk melakukan itu.
sumber
wtmp: Command not found
Paket mana ini?>
adalah prompt dan mencoba "lastlog" dan itu berhasil, jadi saya berasumsi bahwa saya mengerti dengan benar: PMungkin patut untuk mencoba membuat apa yang mengisi log - baik dengan hanya memeriksanya secara visual menggunakan perintah
less
atautail
atau jika garis yang menyinggung terlalu dalam terkubur untuk dengan mudah melihat apa yang terjadi, sesuatu seperti
(catatan: ini mungkin memakan waktu, mengingat file besar seperti itu) yang akan berusaha untuk menghilangkan cap waktu dan kemudian menghitung pesan yang paling sering terjadi.
sumber
Metode saya untuk membersihkan file log sistem adalah ini. Langkah 1 dan 2 adalah opsional, tetapi kadang-kadang Anda perlu memeriksa log yang lebih lama dan cadangan kadang-kadang berguna. ;-)
Opsional: Salin file log
Opsional: Gunakan Gzip pada salinan log
Gunakan / dev / null untuk membersihkan file
Dan kami menggunakan log ini (hanya pada beberapa server) logrotate dan mingguan dijalankan dengan skrip cron yang semua file dengan * .1 (atau diputar berikutnya) dikompres oleh gzip.
sumber
Saya menginstal Ubuntu 16.04 hari ini dan saya melihat masalah yang sama. Namun, saya memperbaikinya dengan busybox-syslogd. Ya! Saya baru saja menginstal paket itu dan masalah telah diselesaikan. :)
Setelah menginstal paket itu, reset
syslog
dankern.log
:Saya harap solusi sederhana ini bermanfaat bagi orang lain di sekitarnya.
sumber