logrotate가 자동으로 회전되지 않는 이유는 무엇입니까?

logrotate가 자동으로 회전되지 않는 이유는 무엇입니까?

매일 교체하도록 설정했는데 그렇지 않습니다.

하지만 수동으로 하면 제대로 작동합니다.

logrotate -vf /etc/logrotate.conf

이것은 회전할 내 로그 파일입니다. /mylogs/log (-rwxrwxrwxrwx 1 관리자 관리자)

시스템 구성입니다.

/etc/logrotate.conf (-rw-r--r-- 1 root root):

/mylogs/log {
create 0640 root utmp
missingok
daily
copytruncate
rotate 10
dateext
}

/etc/logrotate.d/syslog (-rw-r--r-- 1 root root):

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || 
true
endscript
}

/etc/cron.daily/logrotate (-rwx------ 1 root root):

#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with 
[$EXITVALUE]"
fi
exit 0

/etc/crontab (-rw-r--r--. 1 root root):

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR 
sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

추가 정보. CentOS 운영 체제

어떻게 해야 제대로 회전할 수 있나요?


업데이트

문제는 3가지 항목의 소유자, 그룹 및 권한을 할당하는 데 있다고 생각합니다. /mylogs/ 폴더(루트 루트) /mylogs/log 파일(admin admin)
logrotate.conf의 생성 옵션(0640 루트 utmp 생성)

logrotate가 올바르게 실행되는 사람입니다. 이전 3가지 값을 어떻게 할당했는지 알려주세요. 폴더 - 파일 - logrotate.conf의 구성 생성

답변1

여기에 두 개의 문자열을 결합하십시오

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status 
/etc/logrotate.conf

다음과 같은 하나의 문자열에:

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

또는 다음과 같이 첫 번째 문자열 뒤에 백슬래시를 넣습니다.

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status \
/etc/logrotate.conf

-xps. 쉘에서 디버그 출력을 만드는 훌륭한 옵션이 있습니다 /bin/sh. 다음에 실행하려고 하면 이 잘못된 유형을 발견할 수 있을 것 같습니다./bin/sh -x /etc/cron.daily/logrotate

답변2

몇 번의 테스트 끝에 다시 올바르게 회전할 수 있게 되었습니다.

이를 위해 로그 파일의 사용자(루트)와 그룹(루트)을 할당했습니다.

또한 권한을 666으로 변경하십시오.

파일이 포함된 폴더에 대해서는 그룹(root)의 사용자(root)와 755 권한이 할당됩니다.

마지막으로 logrotate.conf 구성 내에서 이 'create' 속성에 할당된 구성은 사용자(루트), 그룹(utmp) 및 권한(644)이었습니다.

비슷한 문제가 있는 사람이 있을 경우 이 정보가 도움이 되기를 바랍니다.

인사하고 감사합니다.

관련 정보