Logrotate: cara mengakses file output di postrotate

15

Saya memutar Nginxlog setiap hari (dengan dateext). Setelah rotasi saya ingin mengurai file untuk hari yang baru saja berlalu dan mengkompilasi email dengan jumlah kesalahan yang dikembalikan oleh server Nginx.

Bagaimana saya bisa mengakses file output di bagian postrotate / endscript dari logrotate ?

ibz
sumber
Bisakah Anda menjelaskan lebih lanjut?
Khaled
Selesai Maaf, saya pikir sudah cukup jelas. :)
ibz

Jawaban:

4

Saya tidak mengetahui adanya variabel yang dapat Anda gunakan jika itu yang Anda cari. Namun segera setelah memutar log, Anda harus tahu persis nama file yang telah diputar berdasarkan konfigurasi yang Anda tetapkan untuk rotasi ( /var/log/somefile.1atau sejenisnya).

Mungkin akan lebih mudah untuk menjawab jika Anda menggambarkan masalah aktual yang Anda coba selesaikan?

menandai
sumber
Saya pikir masalahnya tidak relevan. Dijelaskan lebih detail sekarang. Ya, saya hanya bisa menggunakan tanggal untuk mendapatkan nama file, tetapi saya berharap bisa mendapatkannya melalui beberapa variabel atau sesuatu, yang akan lebih masuk akal.
ibz
3
Sepertinya larsks telah mencapai apa yang Anda inginkan. $ 1 adalah variabel yang Anda cari.
tandai
17

Jika Anda tidak menggunakan arahan "sharedscripts", maka skrip postrotate Anda menerima, sebagai $ 1, file yang memicu rotasi log. Ini mungkin membantu jika Anda mencoba menggunakan skrip generik dengan beberapa logrotate stanza. Artinya, diberikan sesuatu seperti ini:

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

Jika ada file yang cocok perlu diputar, skrip Anda akan dipanggil dengan $ 1 diatur ke "/var/log/sample1.log", "/var/log/sample2.log", atau "/var/log/sample3.log " sewajarnya. Anda kemudian dapat menambahkan ".1" untuk menemukan file yang baru saja diputar.

Jika Anda menggunakan opsi "sharedscripts", maka skrip Anda akan dipanggil dengan $ 1 set ke "/var/log/sample1.log /var/log/sample[23[.log" (yang akan membantu Anda mengidentifikasi bait tertentu tetapi bukan file yang tepat).

Semoga ini memberi Anda tempat untuk memulai. Perhatikan bahwa ini hanya akan berfungsi untuk logrotate> v3.7.5.

larsks
sumber
1
Berguna. Sebenarnya, skrip pra dan pasca-putar tampaknya menerima nama file yang diputar sebagai $ 1, yang persis seperti yang ditanyakan oleh pertanyaan itu.
tandai
1
@mark skrip menerima nama file input , bukan file output
kbolino