Saya memiliki cronjob yang menjalankan beberapa skrip Python dan mereka menghasilkan file log besar. Bagaimana saya mencegah mereka menjadi begitu besar? Akan sempurna jika file itu dihapus setelah mencapai ukuran tertentu. Karena setiap beberapa hari, file tersebut sekarang berukuran 50MB tetapi menjadi jauh lebih besar dan membutuhkan waktu lama untuk mengunduh dan menganalisis bug pada koneksi internet yang lambat. Saya benar-benar hanya ingin melihat 1000 baris terakhir untuk melihat di mana kesalahan skrip.
Saya tahu saya dapat membuat kode sesuatu untuk melakukan ini, tetapi saya hanya ingin tahu apakah Linux memiliki sesuatu yang tidak saya ketahui. Saya membayangkan file log besar adalah masalah umum. Terima kasih.
Jawaban yang Diterima:
Biasanya Anda hanya perlu mencatat aktivitas yang Anda minati dan harus mengonfigurasi program agar tidak terlalu bertele-tele jika memungkinkan.
Seperti yang disarankan, menggunakan logrotate adalah cara biasa menangani file log. Tetapi alih-alih menambahkan konten ke /etc/logrotate.conf
Anda harus menambahkan pekerjaan Anda sendiri ke /etc/logrotate.d/
, jika tidak, Anda harus melihat lebih banyak perbedaan file konfigurasi selama peningkatan versi rilis.
Berikut adalah contoh yang saya buat untuk skrip php:
/var/log/some-php-app/*.log {
daily
rotate 10
delaycompress
compress
notifempty
missingok
}
/var/log/some-php-app/*.log
– Apakah jalur tempat file log berada dan namanya. Seperti yang Anda lihat, Anda juga dapat menggunakan karakter pengganti untuk menerapkan aturan ke lebih dari satu file log.- setiap hari – Memutar file log setiap hari. Alternatif:per jam, mingguan, bulanan, tahunan, maxsize, maxage
- putar hitung – File diputar hitungan kali sebelum dihapus atau dikirim ke alamat yang ditentukan dalam arahan email.
- delaycompress – Menunda kompresi file log sebelumnya ke siklus rotasi berikutnya.
- kompres – Kompres file log versi lama dengan gzip. Anda dapat menggunakan
zless
bukannyaless
untuk melihat file. - pemberitahuan kosong – Tidak memutar log jika kosong.
- missingok – Melanjutkan pekerjaan rotasi berikutnya tanpa mengeluarkan pesan kesalahan, ketika file log hilang.
Lihat halaman manual logrotate untuk opsi lainnya.