neden create ve copytruncate kullanmalıyız?


40

Geek Stuff hakkında bir örnek var logrotate. copytruncateorijinal günlük dosyasını kopyalar ve keser.

O zaman neden kullanmalıyız create? Orijinal günlük dosyası kaldırılmadı.

/tmp/output.log {
  size 1k
  copytruncate
  create
  compress
  compresscmd /bin/bzip2
  compressext .bz2
  rotate 4
  maxage 100
}

Başka bir soru ne kullanımıdır maxage 100? rotate 4Yönerge 4 döndürmeden sonra eski günlük dosyalarını siler.


4
Evet, bu mantıklı değil ve man logrotatehatta öyle diyor: " copytruncate : [...] Bu seçenek kullanıldığında, eski günlük dosyası yerinde kaldığından, oluşturma seçeneğinin hiçbir etkisi olmaz."
Ulrich Schwarz

1
maxage 100100 günden eski hale geldiklerinde ve mevcut dosya döndürüldüğünde döndürülmüş dosyaları siler; 4döndürülmüş dosyalardan daha azı olduğunda bile .
Lutz Prechelt

Yanıtlar:


57

Muhtemelen bu bir hatadır, bu derste sadece bir örnekte bulunur. Diğer tüm örnekler var copytruncateolmadan createseçeneği. Ayrıca logrotate man sayfası aslında göz ardı edileceğini belirtir :

copytruncate

Eski günlük dosyasını taşımak ve isteğe bağlı olarak yeni bir tane oluşturmak yerine, bir kopya oluşturduktan sonra orijinal günlük dosyasını yerinde sıfır boyutuna kadar kesin. Bazı programların günlük dosyasını kapatması söylenemediğinde kullanılabilir ve böylece sonsuza dek önceki günlük dosyasına yazmaya (eklemeye) devam edebilir. Dosyanın kopyalanması ve kesilmesi arasında çok küçük bir zaman dilimi olduğunu unutmayın; bu nedenle bazı günlük verileri kaybolabilir. Bu seçenek kullanıldığında, eski günlük dosyası yerinde kaldığından, oluşturma seçeneğinin etkisi olmaz.


maxageBununla ilgili olarak , örneğin birkaç döndürme periyodu (günler / haftalar / aylar) boş olabilen günlük dosyaları için yararlı olabileceğini düşünüyorum - kullanırsanız notifempty, boş günlük dosyası döndürülmeyecek, böylece çok eski döndürülmüş dosyaları yerinde tutabileceksiniz. .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.