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.logYapılandırma dosyasını oluşturduktan sonra “logrotate” komutunu çalıştırın.
$ sudo logrotate / vesaire / tmp / logrotate.confLogrotate 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.logYapı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.logCopytruncate 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.confAş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.