Log Yönetimi Başlangıç

Log Rotation Yapılandırması

Özel uygulamalar için log rotation kuralları oluşturur ve yapılandırır.

Yayınlanma: 20.04.2024

Detaylı Bilgi

Bu script, özel uygulamalar için log rotation kuralları oluşturur ve yapılandırır. Log rotation, log dosyalarının büyümesini önler ve disk alanını korur.

Script Ne İşe Yarar?

Bu script, log rotation yapılandırmasını otomatikleştirir:

  • Log rotation kuralı oluşturur
  • Rotation sıklığını ayarlar (günlük/haftalık/aylık)
  • Saklanacak rotation sayısını ayarlar
  • Sıkıştırma ayarlarını yapılandırır
  • Servis yeniden yükleme komutunu ekler

Neden Kullanmalısınız?

Log rotation, disk yönetimi için kritiktir:

  • Disk Tasarrufu: Eski logları otomatik temizler
  • Performans: Büyük log dosyalarını önler
  • Organizasyon: Log dosyalarını düzenli tutar

Nasıl Kullanılır?

Adım Adım Kullanım Kılavuzu

1. Scripti Çalıştırın

sudo chmod +x logrotate_setup.sh
sudo ./logrotate_setup.sh

2. Soruları Yanıtlayın

Script size şu soruları soracak:

  • Uygulama adı
  • Log dosya yolu
  • Rotation sıklığı (daily/weekly/monthly)
  • Saklanacak rotation sayısı

3. Yapılandırmayı Test Edin

sudo logrotate -d /etc/logrotate.d/

Gereksinimler

Gereksinimler

  • Root Yetkisi: Script root olarak çalıştırılmalı
  • logrotate: Genellikle varsayılan kurulu

Kullanım Senaryoları

Kullanım Senaryoları

1. Özel Uygulama Logları

Özel uygulamalarınız için log rotation yapılandırın.

2. Disk Yönetimi

Log dosyalarının disk alanını kontrol altında tutun.

Örnekler

Kullanım Örnekleri

Örnek 1: Temel Kullanım

sudo ./logrotate_setup.sh
# App name: myapp
# Log path: /var/log/myapp/app.log
# Frequency: daily
# Keep: 7

Kod

#!/bin/bash

# Log Rotation Configuration Script

if [ "$EUID" -ne 0 ]; then 
    echo "Please run as root"
    exit 1
fi

read -p "Enter application name: " APP_NAME
read -p "Enter log file path: " LOG_PATH
read -p "Rotation frequency (daily/weekly/monthly) [daily]: " FREQUENCY
FREQUENCY=${FREQUENCY:-daily}
read -p "Keep how many rotations [7]: " KEEP
KEEP=${KEEP:-7}

cat > "/etc/logrotate.d/$APP_NAME" << EOF
$LOG_PATH {
    $FREQUENCY
    rotate $KEEP
    compress
    delaycompress
    missingok
    notifempty
    create 0644 www-data www-data
    sharedscripts
    postrotate
        systemctl reload $APP_NAME > /dev/null 2>&1 || true
    endscript
}
EOF

echo "✓ Log rotation configured for $APP_NAME"
echo ""
echo "Config file: /etc/logrotate.d/$APP_NAME"
echo ""
echo "Test configuration:"
echo "logrotate -d /etc/logrotate.d/$APP_NAME"
echo ""
echo "Force rotation:"
echo "logrotate -f /etc/logrotate.d/$APP_NAME"

Kullanım

sudo chmod +x logrotate_setup.sh
sudo ./logrotate_setup.sh

# Yapılandırmayı test et
sudo logrotate -d /etc/logrotate.d/<app_name>

Sorun Giderme

Sorun Giderme

Problem: Log rotation çalışmıyor

Çözüm: Yapılandırmayı test edin:

sudo logrotate -d /etc/logrotate.d/

Etiketler

logrotate log yönetimi log rotation disk yönetimi