2015-03-15 8 views
0

Я запланировал работу cron.hourly для вращения журнала catalina.out. Я создал файл с именем в logrotate.d кот с содержанием нижеcron.hourly не работает

/opt/apache-tomcat-7.0.55/logs/catalina.out { 
    copytruncate 
    daily 
    size 500k 
    rotate 3 
    compress 
    missingok 
    create 0600 root root 
} 

Я также создал файл в папку с именем /etc/cron.hourly logrotateTomcat с ниже содержания:

#!/bin/sh 

/usr/sbin/logrotate /etc/logrotate.d/tomcat >/dev/null 2>&1 
EXITVALUE=$? 
if [ $EXITVALUE != 0 ]; then 
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" 
fi 
exit 0 

Если я запустите команду /etc/cron.hourly/logrotateTomcat, она повернуть файл журнала и сжать его. Он также поддерживает счетчик вращения, если я запускаю вручную несколько раз. Но это не делает то же самое автоматически. Моя запись в журнале выглядит так, как показано ниже в/var/log/cron, в которой говорится, что задача выполнена, но она не вращает файл.

ar 15 06:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[16107]: starting logrotateTomcat 
Mar 15 06:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[16124]: finished logrotateTomcat 
Mar 15 06:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[16107]: starting mcelog.cron 
Mar 15 06:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[16139]: finished mcelog.cron 
Mar 15 06:10:01 adaptapppsdev CROND[16273]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 06:20:01 adaptapppsdev CROND[16423]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 06:30:01 adaptapppsdev CROND[16567]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 06:40:01 adaptapppsdev CROND[16713]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 06:50:01 adaptapppsdev CROND[16859]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 07:00:01 adaptapppsdev CROND[17005]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 07:01:01 adaptapppsdev CROND[17025]: (root) CMD (run-parts /etc/cron.hourly) 
Mar 15 07:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17025]: starting 0anacron 
Mar 15 07:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17034]: finished 0anacron 
Mar 15 07:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17025]: starting logrotateTomcat 
Mar 15 07:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17042]: finished logrotateTomcat 
Mar 15 07:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17025]: starting mcelog.cron 
Mar 15 07:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17057]: finished mcelog.cron 
Mar 15 07:10:01 adaptapppsdev CROND[17187]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 07:20:01 adaptapppsdev CROND[17333]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 07:30:02 adaptapppsdev CROND[17479]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 07:40:01 adaptapppsdev CROND[17625]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 07:50:01 adaptapppsdev CROND[17772]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 08:00:01 adaptapppsdev CROND[17954]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 08:01:01 adaptapppsdev CROND[17977]: (root) CMD (run-parts /etc/cron.hourly) 
Mar 15 08:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17977]: starting 0anacron 
Mar 15 08:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17986]: finished 0anacron 
Mar 15 08:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17977]: starting logrotateTomcat 
Mar 15 08:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17994]: finished logrotateTomcat 
Mar 15 08:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[17977]: starting mcelog.cron 
Mar 15 08:01:01 adaptapppsdev run-parts(/etc/cron.hourly)[18009]: finished mcelog.cron 
Mar 15 08:10:01 adaptapppsdev CROND[18168]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 08:14:04 adaptapppsdev crontab[18230]: (root) LIST (root) 
Mar 15 08:20:01 adaptapppsdev CROND[18327]: (root) CMD (/usr/lib64/sa/sa1 1 1) 
Mar 15 08:30:01 adaptapppsdev CROND[18473]: (root) CMD (/usr/lib64/sa/sa1 1 1) 

Пожалуйста, помогите мне, если мне что-то не хватает.

+0

вы уверены, что причиной его не вращается, так это то, что оно установлено как 'daily', и исполнение на сегодняшний день уже выполнено (то, что вы сделали m чтобы проверить)? –

+0

@GUIDO, Спасибо за ваш ответ. Я согласен с вашей точкой, но в этом случае, когда я запускаю ее вручную несколько раз, и если размер больше, чем то, что упоминается в файле tomcat, он не должен вращать его. в любом случае я удаляю ежедневную информацию из файла, если это помогает. Спасибо. – Krishna

+0

Я проверил журнал сообщений, и он сказал, что 18 марта 06:01:01 adaptapppsqa logrotate: ALERT вышел анонимно с [1], поэтому я пошел по ссылке https://access.redhat.com/solutions/39006, и он отлично работал – Krishna

ответ

0

SELinux запрещает logrotate проверять атрибуты файла с повернутым журналом, это происходит, когда logrotate должен вращать файлы вне/var/log (определенные в файле logrotate.conf). logrotate действительно отправляет loglogate logger: ALERT анонимно вышел из [1] из-за SELinux, но он не останавливает завершение работы logrotate. Solutuion:

semanage fcontext -a -t var_log_t '/opt/<apachetomcat>/logs(/.*)?' 

, а затем

cat /etc/selinux/targeted/contexts/files/file_contexts.local 
# This file is auto-generated by libsemanage 
# Do not edit directly. 

opt/<apachetomcat>/logs(/.*)? system_u:object_r:var_log_t:s0 

наконец

# restorecon -Frvv opt/<apachetomcat>/logs 

Это будет делать все, что нужно, чтобы повернуть бревно снаружи/вар/Журнал

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

  • Нет связанных вопросов^_^