logrotate 구성을 사용하십시오. 아래에서는 프로그램이 첫 번째 백업 파일을 생성한 후 로그 파일 압축을 시작할 것으로 예상합니다. 대신에 내가 보는 것은 다음과 같습니다.
[root@host ~]# ll /var/log
total 1.2M
drwxr-xr-x 2 root root 4.0K Aug 31 13:29 ./
drwxrwxr-x 7 1000 1000 4.0K Aug 29 01:49 ../
-rw-r--r-- 1 root root 289 Aug 29 02:11 auth.log.1
-rw-r--r-- 1 root root 382 Aug 31 00:59 cron.log.1
-rw-r--r-- 1 root root 41K Aug 31 14:16 messages
-rw-r--r-- 1 root root 201K Aug 31 13:26 messages.0
-rw-r--r-- 1 root root 201K Aug 30 23:11 messages.0.1
-rw-r--r-- 1 root root 88K Aug 31 00:59 messages.1
-rw-r--r-- 1 root root 38K Aug 31 14:16 user.log
-rw-r--r-- 1 root root 201K Aug 31 13:29 user.log.0
-rw-r--r-- 1 root root 201K Aug 30 23:12 user.log.0.1
-rw-r--r-- 1 root root 89K Aug 31 01:02 user.log.1
[root@host ~]# cat /etc/logrotate.conf
compress
include /etc/logrotate.d
/var/log/* {
rotate 7
daily
delaycompress
missingok
sharedscripts
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
대상 시스템은 BusyBox v1.20.2입니다.
어쩌면 문제는 명시적으로 이름을 지정하는 대신 /var/log 아래의 모든 로그를 회전하도록 지정했다는 것입니까? 나는 /var/log 아래의 모든 로그를 회전시켜 예상대로 작동하게 하는 것을 선호합니다.
답변1
문제는 /var/log/*
너무 넓기 때문에 이전에 회전했던 파일을 맞춰서 다시 회전시킨다는 것입니다. 더 명시적인 목록이나 더 제한적인 와일드카드 패턴을 지정하거나 오래된 로그를 새 디렉터리로 이동하여 엉망이 되지 않도록 해야 합니다. 예를 들어,
/var/log/* { ... }
통과
/var/log/*.log /var/log/messages { ... }