2015-05-13 4 views
0

Я использую MongoDB 1.6.4. Сценарий я использовал:MongoDB logrotate config

/usr/local/test/r0/log/mongo.log { 
    daily 
    rotate 10 
    nocompress 
    dateext 
    missingok 
    notifempty 
    sharedscripts 
    copytruncate 
    postrotate 
     /bin/kill -SIGUSR1 `cat /export/home/d01/test/data/v1/mongo/repl0/mongod.lock 2> /dev/null` 2> /dev/null || true 
    endscript 
} 

и результат так:

-rw-r--r-- 1 root root   0 May 12 04:02 mongo.log.2015-05-11T20-02-03 
-rw-r--r-- 1 root root 1999708 May 12 04:02 mongo.log-20150512 
-rw-r--r-- 1 root root   0 May 13 04:02 mongo.log.2015-05-12T20-02-02 
-rw-r--r-- 1 root root 3127517 May 13 04:02 mongo.log-20150513 
-rw-r--r-- 1 root root 875125 May 13 10:46 mongo.log 

Я не знаю, почему это манекен журнала. Ошибка в моем скрипте? Спасибо.

ответ

0

Наконец-то выясняется, что проблема связана с постротатом. Я перешел на следующий скрипт, и он отлично работает.

/bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true 
0

Похоже, MongoDB использует встроенный параметр logrotate. Пустые файлы создаются mongodb.

Вы можете попробовать отключить эту опцию в MongoDB с командой { logRotate: 0 }

Или оставить его и отключить LogRotate вашей системы для MongoDB.

+0

Я думал, что вы правы, но я попытался установить {logRotate: 0}, и фиктивные журналы все еще были сгенерированы за эти несколько дней. – fmchan