Unix'te, aktif olarak yazılan büyük bir günlük dosyasının boyutunu azaltmanın en iyi yolu nedir?


11

Linux sunucusunda, birkaç GB büyüklüğünde bir günlük dosyasının boyutunu azaltmak istiyorum. Üst yarıyı kesmek ya da belki de ilk milyon satır işe yarayacaktır.

Yanıtlar:


12

Bu sık sık röportajlarda ortaya çıkıyor ...

İşlemleri bozmadan dosyayı kısaltmak mı istiyorsunuz? Günlük dosyasındaki bilgilerden herhangi biri değerli mi? Eğer öyleyse, dosyayı basit bir bash dizesiyle genellikle "sıfırlarım".

: > /var/log/badlogfile

Bu, kontrollü bir şekilde yeniden başlatılamayacak bir uygulamanızın olabileceği durumlarda ortaya çıkar. Diyelim ki bu bir finansal ticaret uygulaması ve program işlem günü boyunca durdurulamaz veya yeniden başlatılamaz. Ancak, günlük dosyaları bir uygulama hatası nedeniyle bazı müstehcen bir hızda büyüyor. Günlük dosyalarını yukarıdaki veya aşağıdaki yöntemi kullanarak kısaltmak sistemin çalışmaya devam etmesini sağlayabilir.

Ayrıca bkz: http://www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/


1
iki nokta üst üste bir istemi göstermesi mi gerekiyor, yoksa bu gerçekten komuta giriyor mu?
Phil

İki nokta üst üste komutun bir parçasıdır.
ewwhite

Aslında iki nokta üst üste işaretine ihtiyacınız yok.
MikeyB

Hayır-op. Gerekli değil, ama tavsiyede bulunduğumda orada kalmayı seviyorum.
ewwhite

Bu benim için işe yaramadı, günlük boyutu değişmedi. 0'a gitti, ama sonra tam boyutuna geri döndü
thouliha

2

Logrotate'e koyabilirsiniz, o zaman kolayca kontrolden çıkmaz


Sonuçta bunun olması gerekiyor. Bu işte yeniyim ...
Phil

1

Eğer aktif olarak size yazılıyorsa, kısaltma yoluyla yapabileceğiniz pek bir şey yok. Tek seçeneğiniz dosyayı boşaltmaktır (önce başka bir yere kopyalayabilirsiniz.)

echo "" >/var/log/fileYouWantToEmpty

Bu şekilde dosya boş kalır, ancak yine de aynı dosya / inode'dur, böylece günlüğe kaydedilen programı bozmaz.


0

Ayrıca cat / dev / null> / var / log / komutunu da deneyebilirsiniz. Ama, / dev / null bazı eski sürümlerinde uygulanmadığını uyarmak zorunda ...


dosyayı kısaltmak benim için çalışmıyor, centos 7 ve redhat 5 üzerinde test yaptım
c4f4t0r
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.