잘못된 시간/시간에 Logrotate가 실행 중입니다.

잘못된 시간/시간에 Logrotate가 실행 중입니다.

/etc/crontab매일 cronjob이 오전 4시 25분에 실행되도록 파일 에 다음 항목이 있습니다 . daily이 파일 내부에 대한 유일한 항목은 다음과 같습니다 .

25 4 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

내 내용은 /etc/cron.daily/다음과 같습니다 logrotate.

 # ls -l /etc/cron.daily/
...
-rwxr-xr-x 1 root root  377 Jan 21  2019 logrotate

다음은 logrotate 구성입니다./etc/logrotate.d/

/var/log/remote/custom/*.log
{
        rotate 180
        daily
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
    # force rsyslog to refresh file descriptor
        postrotate
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}

/var/lib/logrotate/status의 내용을 검사할 때 로그 파일이 오전 4시 25분이 아닌 자정에 회전되는 것으로 나타나는 이유는 무엇입니까 ?

"/var/log/remote/custom/cust.log" 2020-11-4-0:0:39

운영 체제: Ubuntu 20.04 LTS 커널:Linux 5.4.0-40-generic

답변1

anacron이 /etc/cron.daily(및 기타)를 평가할 시기를 찾는 /etc/anacrontab을 간과한 것 같습니다.

또한 내가 systemd를 멀리하는 많은 이유 중 하나입니다. /etc/cron.daily/logrotate의 첫 번째 줄을 확인하세요.

# less -X  /etc/cron.daily/logrotate                        
#!/bin/sh

# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then
    exit 0
fi

답변2

을 위한데비안사용자라면 6.25(/etc/crontab)에서 실행되고 있다고 생각할 수 있지만 지난 몇 버전 이후로 00.00에서 실행되고 구성되어 있습니다.체계화된!

이전 /etc/crontab :

25 6 * * * 루트 테스트 -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

systemd의 실행 시간을 변경하려면 다음 파일을 편집해야 합니다. /etc/systemd/system/timers.target.wants/logrotate.timer

기본적으로는 다음과 같습니다.

[Timer]
OnCalendar=daily

매일 6.20에 실행하려면 다음을 수행하십시오.

[Timer]
OnCalendar=*-*-* 6:20

(그런 다음 시스템을 재부팅했지만 꼭 필요한지는 잘 모르겠습니다!)

답변3

편집할 때 매우 주의하십시오 /etc/systemd/system/timers.target.wants/logrotate.timer. 해당 파일은 에 대한 심볼릭 링크입니다 /lib/systemd/system/logrotate.timer.

파일이 실수로 심볼릭 링크에서 일반 파일로 변경되면 타이머가 무시됩니다. 예를 들어 임베디드 시스템용 설치 스크립트의 일부로 sed를 사용하여 이 파일을 편집하면 타이머가 무시됩니다. 내가 어떻게 아는지 물어보세요!

관련 정보