Apache HTTP Sunucusu Sürüm 2.5
rotatelogs
, Apache'nin borulu günlük
dosyaları özelliği ile birlikte kullanmak için tasarlanmış basit bir
programdır. Günlük dosyasının azami boyutuna göre veya belli aralıklarla
günlük dosyalarını döndürür.
rotatelogs
[ -l ]
[ -L isim ]
[ -p program ]
[ -f ]
[ -v ]
[ -e ]
[ -c ]
dosyaismi
süre|boyut(B|K|M|G)
[ saat_farkı ]
-l
-L
bagismitail -F bagismi
gibi bir komut kullanılarak
günlüğün sürekli izlenmesi için kullanılabilir.-p
programrotatelogs
yeni
bir günlük dosyasının her açılışında belirtilen programı çalıştırır. Yeni
açılan dosyanın ismi programa ilk argüman olarak aktarılır. Bu işlem bir
döndürme sonrası yapılırsa eski günlük dosyası ikinci argüman olarak
aktarılır. rotatelogs
işlemini sürdürmek için
belirtilen programın sonlanmasını beklemez, dolayısıyla sonlanma soucunda
döndürülen hata kodunu günlüğe kaydetmez. Çalıştırılan program
rotatelogs
ile aynı stdin, stdout ve stderr'i
kullanır ve ortamı da miras alır.-f
rotatelogs
başlar başlamaz günlük
dosyasının açılmasını sağlar. Çok meşgul sitelerde, sunucu başlatılıp ilk
istek sunuluncaya kadar geçen zamanda günlük dosyasının yokluğu
özdevinimli işlemler yapan bazı günlükleme araçlarında sorunlara yol
açabilir. Bu seçenek bu gibi durumlarda yararlıdır.-t
tail
gibi bir araç tarafından gerçek
zamanda işlendiği ve veriyi saklamanın gerekmediği durumda kullanışlıdır.
Dosya ismine bir sonek eklenmez, ancak biçem dizgesi '%' karakteri
içeriyorsa buna uyulur.-v
-e
-c
dosyaismi
Günlük dosyasının ismi yoluyla birlikte belirtilir.
dosyaismi '%' karakterleri içeriyorsa bunlar
strftime(3)
biçem belirteçleri olarak ele alınır. Aksi
takdirde, özdevinimli olarak .nnnnnnnnnn uzantısı üretilir.
(-t
seçeneği kullanılmadıkça) Uzantı saniye
cinsindendir ve her iki durumda da bu değer, mevcut döngü
diliminin başlangıcına göre hesaplanır. Örneğin, döndürmenin 86400
saniyede bir yapılacağı belirtilmişse, strftime(3)
biçeminde
oluşturulan saat, dakika ve saniye alanları, 24 saatlik sürenin
başlangıcını (geceyarısı) göstermek üzere sıfırlarla doldurulur.
strftime(3)
dosyaismi biçemlemesi kullanılırken, günlük
dosyası biçeminin günlük dosyası döndürülürken her zaman farklı bir dosya
ismi üretecek yeterlilikte parçacıklı yapıya sahip olduğundan emin
olmalısınız. Aks takdirde döndürme işlemi yeni bir dosya başlatmak yerine
hep aynı dosyanın üzerine yazar. Örneğin, logfile için
/var/logs/errorlog.%Y-%m-%d
belirtilmişse 5 mega baytta bir
yeni bir günlük dosyasına başlanacaktır. Fakat 5 megabayta gün içinde iki
kez ulaşılırsa aynı günlük dosyası üretilir ve günlük hep aynı dosyanın
üzerine yazılır.
süre
boyut(B|K|M|G)
B
(Bayt), K
(kilobayt), M
(megabayt), G
(gigabayt).
Süre ve boyut birlikte belirtilmişse boyut süreden sonra belirtilmelidir. Dosya yenilemesi, bunlardan hangisi daha önce aşılırsa o zaman gerçekleşir.
saat_farkı
-300
olmalıdır. Çoğu durumda, bunun yerine
-l
seçeneğini kullanmak gerekir.
CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common
nnnn, günlük kaydının başladığı sistem zamanı olmak üzere /var/logs/logfile.nnnn dosyası oluşturulur. Bu zaman, daima döngü süresinin katları olacağından bunu cron betiklerinizi eşzamanlamakta kullanabilirsiniz. Her döngü süresinin sonunda (burada 24 saat sonra) yeni bir günlük dosyası açılır.
CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common
yyyy, yıl; mm, ay; dd, ayın gününü belirtmek üzere /var/logs/logfile.yyyy.mm.dd dosyası oluşturulur. Her gün yerel zamanla geceyarısı yeni bir günlük dosyasına geçilecektir.
CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common
Günlük dosyası 5 megabaytlık olunca yenisinin oluşturulmasını sağlar.
ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"
Hata günlüğünün 5 megabaytta bir
errorlog.YYYY-mm-dd-HH_MM_SS
biçemli bir isimle
oluşturulmasını sağlar.
CustomLog "|bin/rotatelogs -t /var/logs/logfile 86400" common
/var/logs/logfile dosyasını oluşturur, sunucu başlatılırken ve günde bir kere dosyanın tepesi kırpılır. Bu senaryoda ayrı bir sürecin (tail gibi) dosyayı gerçek zamanlı işleyeceği umulur.
Aşağıdaki günlük dosyası biçem belirteçlerinin tüm
strftime(3)
gerçeklenimlerince desteklenmesi gerekir.
Kullandığınız kütüphaneye özgü belirteçler için sisteminizdeki
strftime(3)
kılavuz sayfasına bakınız.
%A | tam gün ismi (yerelleştirilmiş) |
%a | 3 harflik gün ismi (yerelleştirilmiş) |
%B | tam ay ismi (yerelleştirilmiş) |
%b | 3 harflik ay ismi (yerelleştirilmiş) |
%c | tarih ve saat (yerelleştirilmiş) |
%d | 2 haneli ay günü numarası |
%H | 2 haneli saat (24 saatlik) |
%I | 2 haneli saat (12 saatlik) |
%j | 3 hanelik yıl günü numarası |
%M | 2 haneli dakika |
%m | 2 haneli ay |
%p | 12 saatlik kip için öö/ös (yerelleştirilmiş) |
%S | 2 haneli saniye |
%U | 2 haneli yılın hafta numarası (Haftanın ilk gününün Pazar olduğu varsayımıyla) |
%W | 2 haneli yılın hafta numarası (Haftanın ilk gününün Pazartesi olduğu varsayımıyla) |
%w | 1 hanelik haftanın gün numarası (Haftanın ilk gününün Pazar olduğu varsayımıyla) |
%X | saat (yerelleştirilmiş) |
%x | tarih (yerelleştirilmiş) |
%Y | 4 hanelik yıl |
%y | 2 hanelik yıl |
%Z | zaman dilimi ismi |
%% | `%' iminin kendisi |