회전에 관해 두 가지 질문이 있습니다 /var/log/message
. 다음은 로그 메시지 구성입니다.
# cat /etc/logrotate.d/logrotate-messages
/var/log/messages {
daily
rotate 7
create
dateext
dateformat -%Y%m%d
compress
delaycompress
notifempty
nomail
noolddir
postrotate
/bin/killall -HUP syslogd
endscript
}
어떤 이유로 회전 후 /var/log/messages
접미사가 없는 파일에는 메시지가 없지만 마지막 날짜가 있는 파일에는 모든 메시지가 포함됩니다./var/log/messages-20200427
-rw-------. 1 root root 6.8M Apr 12 03:36 /var/log/messages-20200412.gz
-rw-------. 1 root root 41M Apr 19 03:30 /var/log/messages-20200417.gz
-rw-------. 1 root root 43M Apr 26 03:13 /var/log/messages-20200425.gz
-rw-------. 1 root root 0 Apr 27 03:47 /var/log/messages
-rw-------. 1 root root 3.6G Apr 30 13:15 /var/log/messages-20200427
수동으로 실행하면 아래와 같이 스핀 후에만 오류가 표시됩니다.
#/sbin/logrotate -v /etc/logrotate.d/logrotate-messages
reading config file /etc/logrotate.d/logrotate-messages
Allocating hash table for state file, size 15360 B
Handling 1 logs
rotating pattern: /var/log/messages after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/messages
log needs rotating
rotating log /var/log/messages, log->rotateCount is 7
Converted ' -%Y%m%d' -> '-%Y%m%d'
dateext suffix '-20200430'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding logs to compress failed
fscreate context set to system_u:object_r:var_log_t:s0
renaming /var/log/messages to /var/log/messages-20200430
creating new /var/log/messages mode = 0600 uid = 0 gid = 0
running postrotate script
syslogd: no process found
error: error running non-shared postrotate script for /var/log/messages of '/var/log/messages '
set default create context
파일을 쓰는 과정은 다음과 같습니다.
#fuser /var/log/messages-20200427
/var/log/messages-20200427: 41809
# ps -aef | grep 41809 | grep -v grep
root 41809 1 0 Apr24 ? 00:20:18 /usr/sbin/rsyslogd -n
문제를 해결하는 방법을 모르면 도움을 주시면 대단히 감사하겠습니다.
답변1
SIGHUP을 잘못된 프로세스로 보내려고 합니다.
/bin/killall -HUP syslogd
하지만
/usr/sbin/rsyslogd
그래서 당신은 그것을로 변경해야합니다
/bin/killall -HUP rsyslogd