Evet, uygun bir yol var: Günlükleri hiç temizlemiyorsunuz . Sen döndürmek onları. Döndürme, günlük çıktısının aynı isim altında, bir önceki N günlük dosyası ile ilgili bir N dosya ismi altında tutulan yeni bir dosyaya geçirilmesini içerir.
Birinin günlükleri nasıl döndürdüğü, birinin onları ilk sırada nasıl yazdığına bağlıdır. Bu, gözden kaçan bir nokta. Buradaki cevapların bazıları, en azından bazı günlükleme programlarının günlük dosyası için açık bir dosya tanımlayıcısı bulundurduğundan bahseder, bu nedenle sadece dosyayı silmek, alanı boşaltamaz veya çıktıyı bile yeni bir günlük dosyasına geçirmez.
Günlük dosyasını yazma programı ise multilog
gelen daemontools
paketin hiçbir manuel komut, hayır - örneğin, o zaman hiç günlükleri döndürmek için bir şey yapmayın cron
işler. Basitçe multilog
, log çıktısının bir dizine ait olduğunu ve o dizinde otomatik olarak döndürülmüş ve boyutlandırılmış bir N log dosyası seti tutacağını söyleyin .
Günlük dosyalarını yazma programı ise svlogd
gelen runit
paketin başka örneğin ardından hemen aynı geçerlidir. Aracı bir dizinden noktadan başka hiçbir şey yapmıyorsunuz. Kendisi, bu dizinde otomatik olarak döndürülmüş ve boyutlandırılmış bir N günlüğü dosyası seti tutacaktır.
rsyslog
Günlük dosyalarını yazmak için kullanıyorsanız , günlük programına belirli bir boyuta ulaştıktan sonra bir komut dosyasını çalıştırdıktan sonra günlük programına durması söylenebilir . Aslında günlük dosyasını yeniden adlandırmak ve toplam günlük kısıtlamalarına dayanarak eski günlük dosyalarını silmek için betiğin etini yazmanız gerekir, ancak en azından günlük programı dosyayı kapattı ve bu sırada günlük yazmayı duraklattı.
syslogd
Günlükleri döndürmenin eski yolu, sysloging gibi programları günlüğe kaydetmeyi beklemekte ve burada başka bir cevapta logrotate
belirtildiği gibi araçlarla örneklenerek beklenmektedirdjangofan
. Biri cron
, günlük dosyalarını belirli aralıklarla yeniden adlandıran bir işi çalıştırır ve günlük tutma arka planını yeniden başlatır (altında çalışan herhangi bir arka plan denetleyicisini kullanarak). Bununla ilgili sorun elbette genel bir büyüklük sınırını zorlamamasıdır. Yavaş haftalarda kişi günlük N çok küçük günlük dosyaları alabilirken, yoğun günlerde kişi boyut sınırının çok üstünde olan 1 büyük günlük dosyası alabilir.
Daha sonra ve daha iyi gibi araçlar nedeni budur multilog
ve svlogd
dosya boyutu yapılandırma seçenekleri vardır ve aslında günlük dosyası elbette kendilerini boyutları kontrol edin. Dünya, günlükleri cron
işlerle veya hatta bir logrotate
arka plan programı kullanarak günlüğe kaydetmenin , boyutun yanlış olması için pencereler bıraktığını ve bu denetimlerin yapılması için uygun yerin ve böylece yönetici tarafından tanımlanan boyut sınırlarını zorladığını öğrendi. log dosyaları hiç açılmadıkları bölümü yutmaz, aslında dosyaları ilk sırada yazan programdadır.