Solusi 1:
Alih-alih menghapus file, Anda harus memutarnya, mis. g. menggunakan logrotate
.
Anda tidak pernah tahu kapan Anda akan benar-benar membutuhkan log dari beberapa waktu lalu, jadi lebih baik mengarsipkannya (hingga usia yang wajar, misalnya 3 bulan).
logrotate
dapat memampatkan file log lama Anda sehingga tidak menempati banyak ruang disk.
Solusi 2:
Hapus semua file:
find /var/log -type f -delete
Hapus semua file .gz dan file yang diputar
find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"
Coba jalankan perintah tanpa "-delete", untuk mengujinya.
Solusi 3:
Jika Anda menghapus semuanya di /var/log, kemungkinan besar Anda akan mendapatkan banyak pesan kesalahan dalam waktu yang sangat singkat, karena ada folder di sana yang diharapkan ada (mis. exim4, apache2, apt, cups, mysql, samba dan banyak lagi). Plus:ada beberapa layanan atau aplikasi yang tidak akan membuat file log mereka, jika tidak ada. Mereka mengharapkan setidaknya ada file kosong. Jadi jawaban langsung untuk pertanyaan Anda sebenarnya adalah "Jangan lakukan ini!!!" .
Seperti yang joschi tunjukkan, tidak ada alasan untuk melakukan ini. Saya menjalankan server debian yang belum pernah menghapus satu pun file log selama bertahun-tahun.
Solusi 4:
Saya mengkloning mesin virtual dari master. Sangat masuk akal untuk menghapus log pada master sehingga ketika Anda mem-boot klon Anda tidak akan mendapatkan log master. Saya melakukannya di tcsh:
cd /var/log
foreach ii ( `find . -type f` )
foreach? cp /dev/null $ii
foreach? end
yang membersihkan log tetapi menyimpan file.
Solusi 5:
Membersihkan semua log di sistem Linux tanpa menghapus file:
for CLEAN in $(find /var/log/ -type f)
do
cp /dev/null $CLEAN
done
Samba (/var/www/samba
) membuat nama file log dengan alamat ip, Anda mungkin ingin menghapusnya:
for CLEAN in $(find /var/log/samba -type f)
do
rm -rf $CLEAN
done