logrotate
구성 파일을 넣고 /etc/logrotate.d/
일관된 시간에 로그가 회전 할 것으로 예상했습니다. 그러나, 로그 회전 시간은 무작위로 +/- 1 시간으로 보이지 않습니다.
로그 회전 시작 시간이 무작위 인 이유는 무엇이며 어떻게 변경할 수 있습니까?
정보 : 내 logrotate 구성 파일은 다음과 같습니다 …
/opt/backups/network/*.conf {
copytruncate
rotate 30
daily
create 644 root root
dateext
maxage 30
missingok
notifempty
compress
delaycompress
postrotate
## Create symbolic links in daily/
PATH=`/usr/bin/dirname $1`;
FILE=`/bin/basename $1`;
/bin/ln -s $1 $PATH/daily/$FILE
endscript
}
답변
열쇠는에서} CentOS는이를 /etc/cron.{daily,weekly,monthly에서 스크립트를 실행하는 것으로 알고있다 anacron
… /etc/anacrontab
설정입니다 RANDOM_DELAY
당신이 기대하는 것을 수행하는 (이것은까지 지연 RANDOM_DELAY
작업을 시작하기 전에 분) …
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
문제 설정 RANDOM_DELAY=0
/ START_HOURS_RANGE=3
수정 …
편집하다
추가로 생각한 후에 anacron
일반 vixie 를 제거 하고 설치할 것입니다 cron
…
답변
답은 아니지만 최근에 다른 이유로 이것을 알아 내려고 시도했지만 Redhat 6, Centos 등이 cron을 실행하는 방법에 대한 문서를 찾을 수 없었습니다. 내가 리버스 엔지니어링 한 내용은 다음과 같습니다.
crond
여전히 시스템 시작시 실행-모든 파일을로드합니다./etc/cron.d
/etc/cron.d/0hourly
모든 파일을/etc/cron.hourly
/etc/cron.hourly/0anacron
뛰다anacron
- 아나 크론로드
/etc/anacrontab
/etc/anacrontab
실행 (경유run-parts
)/etc/cron.daily
,/etc/cron.weekly
및/etc/cron.monthly
따라서 이전 버전보다 더 복잡합니다.
시간별, 주별 및 월별 항목을 다시 추가하여 /etc/crontab
(이제 비어 있음) 이전 동작을 복원 anacrontab
할 수 있지만 업데이트해야합니다. 향후 업데이트를 중단하거나 중단하지 않을 수 있습니다 …
답변
다른 답변은 왜, 왜 그런지에 대한 것은 아닙니다 . 그 이유 는 야간 크론 작업을 동시에 수행하여 인프라를 중단시키지 않기 때문 입니다. (공유 스토리지 또는 하나의 VM 호스트에서 실행되는 1000 대의 서버 또는 일부 네트워크 서비스에 영향을주는 야간 작업을 상상해보십시오.)
특정 로그 로테이션 작업을에서 cron.daily
하드 코딩 된 시간이있는 항목으로 이동하여 시스템에서 특정 로그 로테이션에 대한이 문제를 항상 해결합니다 cron.d
. 이렇게하면 시간이 실제로 중요하지 않지만 로그 순환을위한 일관된 시간 인 updatedb와 같은 서비스에 대한 엇갈린 실행을 계속 얻을 수 있습니다.
물론 특정 크기에 도달하면 모든 로그가 호스트에서 로그 서버로 전송되기를 원할 수 있습니다. 개별 노드의 파일 회전 시간은 중요하지 않습니다. 편의성 (일반적으로 파일의 꼬리를 따르는) 또는 마지막 리조트 폴백입니다. 그런 다음 줄 확실히 체계적으로 로그 서버의 회전을 설정합니다.