Bisakah saya menghapus semuanya /var/log
? Atau haruskah saya hanya menghapus file (secara rekursif) /var/log
tetapi meninggalkan folder?
Adakah yang memiliki rm
baris perintah yang baik ? (Keterampilan admin saya membuat saya gugup.)
Catatan: Saya menggunakan Debian. Saya tidak yakin versi apa.
Jawaban:
Alih-alih menghapus file, Anda harus memutarnya, misalnya menggunakan
logrotate
.Anda tidak pernah tahu kapan Anda benar-benar membutuhkan log dari beberapa waktu lalu, jadi lebih baik untuk mengarsipkannya (hingga usia yang wajar, misalnya 3 bulan).
logrotate
dapat memampatkan file log lama Anda sehingga tidak menempati banyak ruang disk.sumber
Jika Anda menghapus semua yang ada di / var / log, Anda kemungkinan besar akan berakhir dengan banyak pesan kesalahan dalam waktu yang sangat singkat, karena ada folder di sana yang diharapkan ada (misalnya exim4, apache2, apt, cups, mysql, samba dan lainnya). Plus: ada beberapa layanan atau aplikasi yang tidak akan membuat file log mereka, jika tidak ada. Mereka berharap setidaknya ada file kosong yang ada. Jadi jawaban langsung untuk pertanyaan Anda sebenarnya adalah "Jangan lakukan ini !!!" .
Seperti yang ditunjukkan oleh joschi, tidak ada alasan untuk melakukan ini. Saya memiliki server debian yang berjalan yang belum memiliki satu file log yang dihapus selama bertahun-tahun.
sumber
Hapus semua file:
Hapus semua .gz dan file yang diputar
Coba jalankan perintah tanpa "-delete", untuk mengujinya.
sumber
Saya mengkloning mesin virtual dari master. Masuk akal untuk menghapus log pada master sehingga ketika Anda boot klon Anda tidak akan mendapatkan log master. Saya lakukan di tcsh:
yang membersihkan log tetapi menyimpan file.
sumber
Membersihkan semua log pada sistem Linux tanpa menghapus file:
Samba (
/var/www/samba
) membuat nama file log dengan alamat ip, Anda mungkin ingin menghapusnya:sumber
cp /dev/null $CLEAN
dengan> $CLEAN
.Anda dapat menggunakan opsi waktu untuk menemukan file lama ... misalnya:
Seperti yang dijelaskan bindbn, pertama-tama coba temukan fetch file dan setelah menggunakan opsi hapus: D
sumber
/var/log
sering memiliki izindrwxrwxr-x
, jadi tidak dapat ditulisi pengguna kecuali jika pengguna root atau milik kelompok istimewa. Itu berarti file log baru tidak dapat dibuat oleh pengguna yang tidak memiliki hak istimewa.Aplikasi yang berharap untuk masuk ke suatu titik di dalam
/var/log
akan sering menyentuh file menjadi ada di suatu tempat dalam/var/log
hierarki selama waktu instalasi (yang sering terjadi dengan hak istimewa yang ditinggikan), dan akanchmod
dan mungkinchown
pada saat itu untuk izin yang sesuai untuk pengguna yang tidak terjangkau yang akan menjadi menggunakan aplikasi.Log Apache, misalnya, biasanya ditulis oleh
nobody
, yang merupakan pengguna dengan privilege sesedikit mungkin bagi Apache untuk menyelesaikan tugasnya tanpa menempatkan sistem pada risiko yang tidak semestinya. Tetapi bahkan lebih banyak aplikasi run-of-the-mill sering berharap untuk dapat menulis ke logfile di/var/log
.Jadi apa yang terjadi jika file log, dan jalur ke file log tidak ada? Itu sepenuhnya tergantung pada aplikasi. Beberapa aplikasi diam-diam akan melewatkan logging. Orang lain akan membuat banyak peringatan. Dan yang lain hanya akan menyelamatkan. Tidak ada aturan yang sangat cepat; terserah kewaspadaan pengembang aplikasi, serta seberapa kritis pengembang mempertimbangkan kemampuannya untuk login. Paling-paling aplikasi akan mencoba untuk menulis, atau mungkin membuat dan kemudian menulis ke file log di tujuan di dalam
/var/log
, dan akan menemukan dirinya tidak dapat melakukannya karena dijalankan oleh pengguna yang tidak memiliki hak istimewa untuk menulis bagian dari sistem file.Jadi jawaban singkatnya adalah tidak, jangan hapus semuanya
/var/log
- itu akan merusak kontrak pengguna dengan hak yang cukup untuk melakukan hal-hal seperti itu dengan aplikasi yang berjalan pada sistem mereka, dan akan menyebabkan beberapa kebisingan, beberapa kegagalan diam untuk login, dan beberapa kerusakan habis-habisan.Tindakan yang tepat untuk dilakukan adalah mengatur
logrotate
dengan file konfigurasi yang sesuai. Biasanya rotasi akan dikaitkan dengan pekerjaan cron. Rotasi dapat berbasis interval, atau berdasarkan ukuran, atau keduanya. Bahkan dimungkinkan untuk membuat aturan yang menghindari rotasi berbasis interval jika file log masih kosong ketika interval berakhir. Rotasi dapat mencakup pengiriman file log, kompresi, penghapusan, penghancuran, dan sebagainya.Pengguna biasa tidak perlu terlalu khawatir tentang rotasi log. Pengembang mungkin ingin memastikan bahwa log yang mereka gunakan memiliki aturan rotasi yang ditetapkan. Bahkan, ada kemungkinan perilaku yang baik dari pihak pengembang untuk mengatur rotasi log pada waktu pemasangan untuk setiap log khusus perangkat lunak yang akan dibuat dan ditulis oleh perangkat lunak.
sumber
Saya sudah menerapkan pembersih sederhana di sini:
https://github.com/Lin-Buo-Ren/Coward-Unix-Log-Cleaner
Itu hanya:
/var/log
^.*/.+\.[[:digit:]]+(\.[[:alpha:]]+)?$
^.*/.+\.old$
(case-insensitive)/var/log
^.*/.+\.log$
(case-insensitive)sumber
buat skrip yang dapat dieksekusi dan coba jalankan sebagai root jika sudo tidak berfungsi untuk Anda
sumber