2014-12-04 5 views
3

У меня есть два файла: LogRotateя застрял на LogRotate тайны

/etc/logrotate.d/nginx-size

/var/log/nginx/*.log 
/var/log/www/nginx/50x.log 

{ 
    missingok 
    rotate 3 
    size 2G 
    dateext 
    compress 
    compresscmd /usr/bin/bzip2 
    compressoptions -6 
    compressext .bz2 
    uncompresscmd /usr/bin/bunzip2 
    notifempty 
    create 640 nginx nginx 
    sharedscripts 
    postrotate 
     [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 
    endscript 
} 

и

/и т.д./LogRotate. d/nginx-daily

/var/log/nginx/*.log 
/var/log/www/nginx/50x.log 

{ 
    missingok 
    rotate 3 
    dateext 
    compress 
    compresscmd /usr/bin/bzip2 
    compressoptions -6 
    compressext .bz2 
    uncompresscmd /usr/bin/bunzip2 
    notifempty 
    create 640 nginx nginx 
    sharedscripts 
    postrotate 
     [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 
    endscript 
} 

Команда logrotate -d -v /etc/logrotate.d/nginx-size выход:

reading config file /etc/logrotate.d/nginx-size 
compress_prog is now /usr/bin/bzip2 
compress_options is now -6 
compress_ext is now .bz2 
uncompress_prog is now /usr/bin/bunzip2 

Handling 1 logs 

rotating pattern: /var/log/nginx/*.log 
/var/log/www/nginx/50x.log 

2147483648 bytes (3 rotations) 
empty log files are not rotated, old logs are removed 
considering log /var/log/nginx/access.log 
    log does not need rotating 
considering log /var/log/nginx/error.log 
    log does not need rotating 
considering log /var/log/nginx/get.access.log 
    log does not need rotating 
considering log /var/log/nginx/post.access.log 
    log needs rotating 
considering log /var/log/www/nginx/50x.log 
    log does not need rotating 
rotating log /var/log/nginx/post.access.log, log->rotateCount is 3 
dateext suffix '-20141204' 
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' 
glob finding old rotated logs failed 
renaming /var/log/nginx/post.access.log to /var/log/nginx/post.access.log-20141204 
creating new /var/log/nginx/post.access.log mode = 0640 uid = 497 gid = 497 
running postrotate script 
running script with arg /var/log/nginx/*.log 
/var/log/www/nginx/50x.log 

: " 
     [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 
" 
compressing log with: /usr/bin/bzip2 

же (нормальный) выход на ngnix-ежедневно ..

Если я запускаю из команды корня

logrotate -f /etc/logrotate.d/nginx-size 

вручную, это сделать все вещи. НО! Он не запускается автоматически!

contab:

*/5 5-23 * * * root logrotate -f -v /etc/logrotate.d/nginx-size 2>&1 > /tmp/logrotate_size 
00 04 * * * root logrotate -f -v /etc/logrotate.d/nginx-daily 2>&1 > /tmp/logrotate_daily 

Кроме того, файлы/TMP/logrotate_daily &/TMP/logrotate_size всегда пусты ..

Крон не дают мне никаких ошибок в/вар/Журнал/хрон

Dec 4 14:45:01 (root) CMD (logrotate -f -v /etc/logrotate.d/nginx-rz-size 2>&1 > /tmp/logrotate_size ) 
Dec 4 14:50:01 (root) CMD (logrotate -f -v /etc/logrotate.d/nginx-rz-size 2>&1 > /tmp/logrotate_size ) 

Что не так с этой штукой? .. Centos 6.5 x86_64, Logrotate версия 3.8.7 (из источника) + версия logrotate 3.7.8 (через rpm).

Thx заранее.

+1

Ваши перенаправления неверны в этих строках. Они не будут выводить информацию об ошибках в эти файлы. Порядок перенаправления имеет значение. Вы хотите '>/tmp/logrotate_size 2> & 1'. Вы пробовали полный путь для входа в записи cron? –

+0

no, i dont, я сделаю это сейчас –

+0

ffs, m8, u r my saver)) thx много, я даже не думаю, что так –

ответ

3

Ваши переадресации неверны в этих линиях cron. Они не будут выводить информацию об ошибках в эти файлы.

Вопросы, связанные с перенаправлением. Вы хотите получить >/tmp/logrotate_size 2>&1, чтобы получить то, что хотите.

Основная проблема здесь - одна из вещей, охватываемых разделом «Отладка crontab» на информационной странице .

А именно «Выполнение предположений об окружающей среде».

предположений о среде

Графические программы (Х11 приложений), программы Java, SSH и Sudo, как известно, проблематично работать как хрон рабочих мест. Это связано с тем, что они полагаются на вещи из интерактивных сред, которые могут отсутствовать в среде cron.

Для более тесного окружения модели CRON в интерактивном режиме, запустите

окр -i ш -c «yourcommand»

Это очистит все переменные окружения и запустить ш, которые могут быть более скудными в особенности, что текущая оболочка ,

Общие проблемы, выявленные таким образом:

Foo: Команда не найдена или просто Foo: не найдено.

Скорее всего, $ PATH установлен в вашем .bashrc или аналогичном интерактивном файле инициализации. Попробуйте указать все команды по полному пути (или поместите источник ~/.bashrc в начале скрипта, который вы пытаетесь запустить).

Смежные вопросы