Bir bilgisayarın, özellikle de sunucunun loglarını saklamak hem kanuni bir zorunluluk hem de kendi güvenliğimizi, geçmişe dönük izleyebilmemizi sağlayan çok iyi bir kaynak yaratır. Ancak orta halli bir web sitesinin bile sadece erişim loglarının ayda 1-2 gb arası alan kaplaması pek dert edilecek bir konu olarak karşımıza çıkabilir. Bu yüzden bir çok linux dağıtımında kurulu gelen syslog-ng paketinin logrotate özelliği bir çok uygulama için varsayılan olarak çalışır durumdadır ve oldukça da kullanışlıdır. Ancak, syslog-ng’nin default olarak desteklemediği uygulamalarınız için de ufak ayarlamalarla syslog-ng kullanılabilmesine rağmen, kendiniz de betikler oluşturup zamanlanmış görev olarak atayabilirsiniz. Kısa bir logrotate betiği örneğini paylaşıyorum.

#!/bin/sh
 
# This script created for rotating logs under date hierarchy. You can still
# change hierarchy as you want. 
 
# Bu betik tairh hiyerarşisine göre tutulan logları sıkıştırıp, yedeklemek
# üzere düzenlenmiştir. Fakat isterseniz hiyerarşi yapısını kendinize göre 
# düzenleyebilirsiniz.
 
month=$(printf "%02d" $((`date '+%m'`-1)))
year=$(printf "%04d" $((`date '+%Y'`)))
$pathToLog="/var/log/smthng"
$pathToArchive="/var/backup/smthng"
 
if [ $month == "00" ]; then
        $month="12"
        $year=$(($year-1))
fi
path="$pathToLog/$year/$month"
 
tar -zcvf "$pathToArchive/someLog_${year}_${month}.tgz" "$path/someLog.log"
 
rm -rf "$path"

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.