CentOS logrotate'im neden rastgele zamanlarda çalışıyor?


10

Ben bir logrotateyapılandırma dosyası koymak /etc/logrotate.d/ve günlükleri tutarlı bir zamanda dönmesi bekleniyor; ancak, onlar değil ... log dönme süreleri görünüşte rastgele +/- bir saat.

Günlük döndürme başlangıç ​​zamanları neden rasgele ve bunu nasıl değiştirebilirim?


Bilgi: logrotate yapılandırma dosyam şöyle görünüyor ...

/opt/backups/network/*.conf {
        copytruncate
        rotate 30
        daily
        create 644 root root
        dateext
        maxage 30
        missingok
        notifempty
        compress
        delaycompress
        postrotate
            ## Create symbolic links in daily/
            PATH=`/usr/bin/dirname $1`;
            FILE=`/bin/basename $1`;
            /bin/ln -s $1 $PATH/daily/$FILE
        endscript
}

Yanıtlar:


10

Anahtar itibaren} CentOs /etc/cron.{daily,weekly,monthly komut dosyaları çalışır bilmektir anacron... /etc/anacrontabayarlıyor RANDOM_DELAYTahmin edebileceğiniz yapar ki, (o kadar geciktirir RANDOM_DELAYişine başlamadan önce dakika) ...

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

Sorunu ayarlama RANDOM_DELAY=0/ START_HOURS_RANGE=3çözme ...

DÜZENLE

Daha fazla düşündükten sonra, anacronnormal vixie'yi çıkaracağım ve yükleyeceğim cron...


Anacron'un çalışması gerekiyorsa sunucunuz herhangi bir nedenle kapalıysa, sistem başladıktan bir süre sonra çalışacağını unutmayın. Böylece günlük dönüşlerini farklı zamanlarda olduğu gibi alabilirsiniz. Muhtemelen büyük bir sorun değil, ama kayda değer.
AngerClown

START_HOURS_RANGE değerini tek bir değere (= 3) ayarlamak işe yaramaz, çünkü bu değişken bekleme aralığı tek sayı değil. Dolayısıyla yukarıdaki örnekte 3-4 olmalıdır.
Slavik

6

Cevap değil, ama son zamanlarda başka bir nedenden dolayı bunu anlamaya çalışıyordum ve Redhat 6, Centos, vb nasıl cron çalıştırmak hakkında herhangi bir belge bulamadık. İşte tersine mühendislik yaptım:

  1. crond hala sistem başlangıcında çalışıyor - tüm dosyaları /etc/cron.d
  2. /etc/cron.d/0hourly içindeki tüm dosyaları çalıştırır /etc/cron.hourly
  3. /etc/cron.hourly/0anacron koşar anacron
  4. anakron yükleri /etc/anacrontab
  5. /etc/anacrontabishal (via run-parts) /etc/cron.daily, /etc/cron.weeklyve/etc/cron.monthly

Yani, önceki versiyonlardan daha karmaşık.

Saatlik, haftalık ve aylık girişleri /etc/crontab(şimdi boş) geri ekleyerek eski davranışı geri yüklemek mümkündür , ancak anacrontabgüncellenmesi gerekir. Bu, gelecekteki güncellemeleri bozabilir veya kesmeyebilir ...


4

Diğer cevaplar neden ama nasıl olmasa da bunu kapsamaktadır . Bunun nedeni , aynı anda gece cron işlerinin altyapınızı öldürmesini engellemektir. (Paylaşılan depolama birimini veya bir VM ana bilgisayarında çalışan 1000 sunucuyu veya yalnızca ağa bağlı bazı hizmetlere çarpan gece işlerini hayal edin.)

Bu sorunu her zaman belirli günlük döndürme işini cron.dailysabit kodlanmış bir girişe taşıyarak sistemlerimdeki belirli günlük döndürme için çözerim cron.d. Bu şekilde, zamanın gerçekten gerekli olmadığı, ancak günlük rotasyonu için tutarlı süreler olan updatedb gibi hizmetler için aşamalı çalışmalara devam edersiniz.

Tabii ki, belirli bir boyuta ulaştığınızda, tüm günlüklerin zaten ana bilgisayardan bir günlük sunucusuna gönderilmesini isteyeceksiniz ve daha sonra tek tek düğümlerdeki dosyaların dönüş süresi daha az önemlidir, çünkü bunlar sadece kolaylık (genellikle dosyanın kuyruğunu takip eden) veya son çare yedek olarak. Ardından, günlük sunucunuzdaki dönüşü kesinlikle sistematik olarak ayarlayacaksınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.