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/