Linux Logrotate Örnekleri

Linux Logrotate Ornekleri



Günlük bilgileri, çalışan herhangi bir uygulamanın sorununu teşhis etmek için herhangi bir işletim sisteminin çok önemli bir parçasıdır ve günlük girişleri, sorunun çözümünü bulmaya yardımcı olur. Linux işletim sistemindeki çoğu uygulama log oluşturur ve sistem yöneticisi uygulama hakkında gerekli bilgiyi log girişlerinden alır. Ancak, girişlerin boyutu zamanla büyüdüğü için günlük girişleri bazen sorun yaratabilir. Bu nedenle, günlük girişlerinin yönetilmesi gerekir.

Logrotate, günlük girişlerini yönetmek için Linux'un bir komut satırı aracıdır. Bu araç, yönetici tarafından günlük girişleri üzerinde, döndürülen günlük dosyalarının sınırlandırılması, döndürülen günlük dosyalarının sıkıştırılması, gereksiz günlük dosyalarının silinmesi, günlük dosyalarına dayalı olarak belirli kabuk komut dosyasının çalıştırılması vb. gibi farklı türdeki görevlerin gerçekleştirilmesine yardımcı olur. Günlük dosyalarını farklı şekillerde yönetmek için kullanılan 'logrorate' komutunun kullanımı, bu eğitimde birden fazla örnek kullanılarak gösterilmektedir.

Kurulu Logrotate Sürümünü Kontrol Edin

Ubuntu işletim sisteminin yeni sürümünde “logrotate” komutu varsayılan olarak kuruludur. “Logrotate” komutunun kurulu sürümünü kontrol etmek için aşağıdaki komutu çalıştırın:







$ logrotate --versiyon



Farklı uygulamaların günlük girişleri varsayılan olarak “/var/log” klasöründe saklanır. Klasörün içeriğini kontrol ettiğinizde aşağıdaki benzer içerik görünecektir.



$ ls / öyleydi / kayıt





“Logrotat” Yapılandırmasını Ayarlayın

Ayar değeri Amaç
günlük/haftalık/aylık/yıllık Günlüklerin döndürüleceği süreyi tanımlar.
numarayı döndür Eski log dosyalarını kaldırmadan önce tutulacak dosya sayısını tanımlar.
kompres Günlük dosyalarını sıkıştırmak için kullanılır.
sıkıştırılmış cmd “Sıkıştır” komutunu ayarlamak için kullanılır. Gzip varsayılan komuttur.
sıkıştırılmış cmd'yi aç “Sıkıştırmayı aç” komutunu ayarlamak için kullanılır. Gunzip varsayılan komuttur.
gecikme sıkıştırması Log dosyalarının sıkıştırılma sürecini geciktirmek için kullanılır.
bildirim boş Boş dosyayı döndürmemek için kullanılır.
Özlüyorum Ayarlanırsa eksik günlük dosyaları için hata oluşturulmaz.
boyut Günlük dosyalarını döndürmeye başlama sınırını ayarlamak için kullanılır.
tarih metni Döndürme dosyasının son eki olarak tarih değeri eklemek için kullanılır.
kopyala-kısalt Orijinal dosyanın bir kopyasını oluşturmak için kullanılır.
önceden döndürülmüş Günlük dosyalarını döndürmeden önce bir komut dosyasını çalıştırmak için kullanılır.
sonradan döndürme Günlük dosyalarını döndürdükten sonra bir komut dosyasını çalıştırmak için kullanılır.
yaratmak Günlük dosyalarını root ayrıcalığına sahip oluşturmak için kullanılır.

Sözdizimi:

“Lorotate” komutunun söz dizimi şu şekilde verilmiştir:



logrotate [ SEÇENEK ] yapılandırma_dosyası_yolu

Logrotate komutu ile farklı tipte seçenekler farklı amaçlar için kullanılabilir.

Logrotate Seçenekleri

“Logrotate” komutunun bazı yararlı seçenekleri aşağıda belirtilmiştir:

-f, –kuvvet Gerektiğinde rotasyonun kuvvetli yapılması için kullanılır.
-d, –hata ayıklama Döndürme sırasında hata ayıklama modunu etkinleştirmek için kullanılır.
-m, –mail Rotasyon sırasında e-posta göndermek için kullanılır.
-s, –state Alternatif durum dosyaları için kullanılır.
–kullanım Kullanım bilgilerini yazdırmak için kullanılır.
-?, -yardım Yardım mesajlarını yazdırmak için kullanılır.
-v, –ayrıntılı Ayrıntılı modda yazdırmak için kullanılır.

Logrotate Yapılandırma Dosyası

Ana logrotate yapılandırma dosyası “/etc/logrotate.conf” konumunda bulunur. Dosyayı nano düzenleyicide açmak için aşağıdaki komutu çalıştırın:

$ nano / vesaire / logrotate.conf

“Logrotate” komutunun varsayılan ayarı “logrotate.conf” dosyasında gösterilmektedir. Dosyada “/etc/logrotate.d” dizininde yer alan konfigürasyonu almak için “include” direktifi kullanılır.

Örnek 1: Basit Logrotate Yapılandırma Dosyası Oluşturma

Örnek günlük verileriyle “/var/log/test.log” adında bir örnek günlük dosyası oluşturun. “/etc/tmp” klasör konumunda yeni bir “logrotate.conf” dosyası oluşturmak için nano düzenleyiciyi açmak için aşağıdaki komutu çalıştırın. Daha önce oluşturulmadıysa “/tmp” klasörünü root ayrıcalıklarıyla oluşturun.

$ nano / vesaire / tmp / logrotate.conf

“/var/log/test.log” dosyası için aşağıdaki içeriği dosyaya ekleyin. Ayara göre, dosya boyutu 5K'yı aşarsa “test.log” dosyası günlük olarak döndürülecektir:

/ öyleydi / kayıt / test.log {

günlük

boyut 5K

onun kök yönetici

}

Günlük dosyasının boyutunu kontrol etmek için aşağıdaki komutu çalıştırın:

$ ls -ben / öyleydi / kayıt / test.log

Yapılandırma dosyasını oluşturduktan sonra “logrotate” komutunu çalıştırın.

$ sudo logrotate / vesaire / tmp / logrotate.conf

Logrotate komutunu çalıştırdıktan sonra log dosyasının boyutunu kontrol etmek için aşağıdaki komutu tekrar çalıştırın:

$ ls -ben / öyleydi / kayıt / test.log

“test.log” dosyasının boyutu 1K+’dır. Yani konfigürasyon ayarına göre herhangi bir döndürme yapılmaz.

“/etc/tmp/logrotate.conf” dosyasında boyut değerini 1K olarak değiştirin ve “/var/log/test.log” dosyasının dosya boyutunu kontrol etmek için tekrar “ls” komutunu çalıştırın. Çıktıya göre, boyut sınırı aşıldığı için log dosyası döndürülür ve silinir.

Örnek 2: Logrotate Copytruncate Kullanımı

Copytruncate'in kullanımını göstermek için “/etc/tmp/logrotate.conf” dosyasını aşağıdaki ayarlarla oluşturun veya değiştirin. Yeni ayarlara göre logrotate, orijinal dosya boyutunu sıfıra getirerek orijinal dosyanın bir kopyasını oluşturur.

/ öyleydi / kayıt / test.log {

döndürmek 5

boyut 1 bin

kopyala-kısalt

onun kök yönetici

}

“test.log” dosyasının boyutunu kontrol etmek için aşağıdaki komutu çalıştırın:

$ ls -ben / öyleydi / kayıt / test.log

Yapılandırma dosyasını oluşturduktan sonra “logrotate” komutunu çalıştırın.

$ sudo logrotate / vesaire / tmp / logrotate.conf

“logrotate” komutunu çalıştırdıktan sonra “test.log” dosyasının boyutunu kontrol etmek için aşağıdaki komutu tekrar çalıştırın:

$ ls -ben / öyleydi / kayıt / test.log

Copytruncate ayarı için “logrotate” komutunu çalıştırdıktan sonra orijinal dosya boyutu 0 olur.

Örnek 3: Logrotate Sıkıştırmasının Kullanımı

Sıkıştırmanın kullanımını göstermek için “/etc/tmp/logrotate.conf” dosyasını aşağıdaki ayarlarla oluşturun veya değiştirin. Yeni ayarlara göre logrotate, orijinal dosyanın sıkıştırılmış bir dosyasını oluşturur.

/ öyleydi / kayıt / test.log {

döndürmek 5

boyut 1 bin

kompres

yaratmak 770 kök yönetici

}

“/var/log” dosya ve klasörlerinin listesini kontrol etmek için aşağıdaki komutu çalıştırın:

$ ls / öyleydi / kayıt /

Yapılandırma dosyasını oluşturduktan sonra “logrotate” komutunu çalıştırın.

$ sudo logrotate / vesaire / tmp / logrotate.conf

“/var/log” dosya ve klasörlerinin listesini kontrol etmek için aşağıdaki komutu tekrar çalıştırın:

$ ls / öyleydi / kayıt /

“test.log” dosyasının sıkıştırılmış dosyası “test.log.1.gz” ismiyle oluşturularak orijinal dosya kaldırılır.

Örnek 4: Logrotate Dateext'in Kullanımı

Dateext kullanımını göstermek için “/etc/tmp/logrotate.conf” dosyasını aşağıdaki ayarlarla oluşturun veya değiştirin. Yeni ayarlara göre logrotate, orijinal dosyanın tarih değeriyle sıkıştırılmış bir dosyasını oluşturur.

öyleydi / kayıt / test.log {

onun kök yönetici

döndürmek 5

boyut 1 bin

kompres

yaratmak 770 kök yönetici

tarih metni

}

Yapılandırma dosyasını oluşturduktan sonra “logrotate” komutunu çalıştırın.

$ sudo logrotate / vesaire / tmp / logrotate.conf

“/var/log” dosya ve klasörlerinin listesini kontrol etmek için aşağıdaki komutu çalıştırın:

$ ls -ben / öyleydi / kayıt /

“test.log” dosyasının sıkıştırılmış dosyası “test.log.20240129.gz” ismiyle oluşturularak orijinal dosya kaldırılır.

Örnek 5: Logrotate Maxage Kullanımı

Maksimumun kullanımını göstermek için “/etc/tmp/logrotate.conf” dosyasını aşağıdaki ayarlarla oluşturun veya değiştirin. Ayarlara göre logrotate, bir gün sonra log dosyasının boyutu 1K'yı aşarsa beş log girişi tutar.

/ öyleydi / kayıt / test.log {

onun kök yönetici

döndürmek 5

boyut 1 bin

kompres

maksimuma çıkarmak 1

}

Çıktıyı “out.log” adlı başka bir günlük dosyasında depolamak için aşağıdaki “logrotate” komutunu çalıştırın:

$ sudo logrotate -S = / öyleydi / kayıt / çıkış.log / vesaire / tmp / logrotate.conf

Aşağıdaki çıktıya göre “logrotate” komutu çalıştırıldıktan sonra “out.log” dosyası oluşturuluyor:

Örnek 6: Logrotate Missingok Kullanımı

“/etc/tmp/logrotate.conf” dosyasını aşağıdaki ayarlarla oluşturun veya değiştirin. Burada “/var/log” klasöründe “testfile.log” log dosyası bulunmuyor.

/ öyleydi / kayıt / test dosyası.log {

onun kök yönetici

döndürmek 5

boyut 1 bin

kompres

}

Logrotate komutunun çalıştırılmasından sonra bir hata mesajı yazdırılıyor.

Logrotate konfigürasyon dosyasına “missingok” ayarını ekleyin ve “logrotate” komutunu tekrar çalıştırın. Eksik günlük dosyası için herhangi bir hata yazdırılmaz.

Örnek 7: Logrotate Prerotate Kullanımı

Basit bir mesaj yazdıran aşağıdaki komut dosyasıyla 'test.sh' adında bir Bash dosyası oluşturun. Dosya, bu logrotate örneğinde, logrotate yapılandırma dosyasında ön döndürmenin kullanımını göstermek için kullanılır.

test.sh



#!/bin/bash

Eko 'logrotate örnekler...'

Dosyayı oluşturduktan sonra tüm kullanıcılar için bu dosyanın yürütme iznini ayarlamak için aşağıdaki komutu çalıştırın:

$ mod a+x / Ev / anlayış / test.sh

Şimdi “/etc/tmp/logrotate.conf” dosyasını aşağıdaki ayarlarla oluşturun veya değiştirin. Ayarlara göre log dosyasının boyutu 1K'yı geçerse logrotate beş adet log girişi tutar ve rotasyondan önce “test.sh” dosyası çalıştırılır.

/ öyleydi / kayıt / test.log {

onun kök yönetici

döndürmek 5

boyut 1 bin

önceden döndürülmüş

/ Ev / anlayış / test.sh

son yazı

}

“test.sh” dosyasının çıktısı “logrotate” komutunun çalıştırılmasından sonra gösterilir:

Çözüm

Bu eğitimde 'logrotate' komutunun çeşitli kullanımları, Linux kullanıcısının komutun kullanımlarını bilmesine ve günlük dosyalarını doğru şekilde yönetmesine yardımcı olacak birden fazla örnek kullanılarak gösterilmektedir.