Logrotate: postrotate çıktı dosyasına nasıl erişilir


15

Ben döndürmek Nginx(günlük günlükleri dateext). Döndürmeden sonra dosyayı geçen gün için ayrıştırmak ve Nginx sunucusu tarafından döndürülen hataların sayısını içeren bir e-posta derlemek istiyorum.

Çıktı dosyasına postrotate / endscript bölümünden nasıl erişebilirim logrotate?


Daha fazla ayrıntı verebilir misiniz?
Khaled

Bitti. Üzgünüm, yeterince açık olduğunu düşündüm. :)
ibz

Yanıtlar:


4

Aradığın şeyse kullanabileceğin hiçbir değişkenin farkında değilim. Ancak günlüğü döndürdükten hemen sonra, döndürme ( /var/log/somefile.1veya benzeri) için ayarladığınız yapılandırmaya bağlı olarak dosyanın tam olarak döndürüldüğü adı bilmeniz gerekir .

Belki de çözmeye çalıştığınız gerçek problemi tarif ederseniz cevaplamak daha kolay olurdu?


Sorunun önemsiz olduğunu düşündüm. Şimdi daha ayrıntılı olarak açıkladı. Evet, sadece dosya adını almak için tarihi kullanabilirim, ancak bunu daha anlamlı hale getirecek bir değişken veya başka bir şeyle alabileceğimi umuyordum.
ibz

3
Görünüşe göre larsks tam olarak istediğiniz şeye çarptı. $ 1 aradığınız değişkendir.
işareti

17

"Sharedscripts" yönergesini kullanmıyorsanız, postrotate betiğiniz günlük dönüşünü tetikleyen dosyayı $ 1 olarak alır. Birden çok logrotate stanza'lı genel bir komut dosyası kullanmaya çalışıyorsanız bu yardımcı olabilir. Yani, böyle bir şey verildiğinde:

/var/log/sample1.log /var/log/sample[23].log {
  ..config...
}

Eşleşen dosyaların döndürülmesi gerekiyorsa, komut dosyanız $ 1 "/var/log/sample1.log", "/var/log/sample2.log" veya "/var/log/sample3.log olarak ayarlanmış olarak çağrılır. " uygun. Daha sonra yeni döndürülmüş olan dosyayı bulmak için ".1" ekleyebilirsiniz.

"Sharedscripts" seçeneğini kullanırsanız, komut dosyanız $ 1 "/var/log/sample1.log /var/log/sample[23" tam dosya değil).

Umarım bu size başlamak için bir yer verir. Bunun yalnızca log> v3.7.5 için çalışacağını unutmayın.


1
Kullanışlı. Aslında, hem döndürme öncesi hem de döndürme komut dosyası, döndürülen dosya adını $ 1 olarak alıyor gibi görünüyor.
mark

1
@mark script çıktı dosyasının değil girdi dosyasının adını alır
kbolino
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.