logrotate: 여는 중 오류가 발생했습니다(해당 파일이나 디렉터리가 없습니다).

logrotate: 여는 중 오류가 발생했습니다(해당 파일이나 디렉터리가 없습니다).

오류 메시지가 나타납니다. 내 이메일로 자동 전송됩니다.

/etc/cron.daily/logrotate:
error: error opening /var/log/apache2/access.log.1.gz: No such file or directory
error: error opening /var/log/apache2/myhost/access.log.1.gz: No such file or directory

나는 또한 내 디렉토리 /var/log/apache2/*/var/log/apache2/myhost/*해당 디렉토리를 확인합니다. 해당 파일은 없지만 access.log.1.gz디렉터리에 파일이 있어야 합니다. access.log.1나는 방금 내 로그 파일을 관리하기 위해 이 도구를 구성하기 시작했습니다 logrotate. 내 Apache는 오랫동안 실행되어 왔으며 내 디렉토리에 최소 30개 이상의 로그 파일이 있습니다. 현재로서는 왜 이런 일이 발생하는지 전혀 모르겠습니다.

/etc/logrotate것은 다음과 같습니다 :

/var/log/apache2/*.log {
     daily
     missingok
     rotate 10
     compress
     delaycompress
#    notifempty
     create 640 root adm
     sharedscripts
     postrotate
                 /etc/init.d/apache2 reload > /dev/null;
     endscript
     prerotate
             if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                     run-parts /etc/logrotate.d/httpd-prerotate; \
             fi; \
     endscript
}
/var/log/apache2/myhost/*.log {
     daily
     missingok
     rotate 10
     compress
     delaycompress
#    notifempty
     create 640 root adm
     sharedscripts
     postrotate
             /etc/init.d/apache2 reload > /dev/null; \
     endscript
     prerotate
             if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                     run-parts /etc/logrotate.d/httpd-prerotate; \
             fi; \
     endscript
}

답변1

나는 그것을 고쳤다. 내 새 구성은 두 곳에서 변경되었습니다. 이제 /var/log/apache2/myhost/는 별도의 "access.log.1" 및 "error.log.1" 없이 아래와 같습니다.

내 /etc/logrotate.d의 구성은 다음과 같습니다. 별표를 제거하고 구체적으로 이름을 지정했습니다. 그렇지 않으면 "delaycompress" 지시어에 주석을 달겠습니다.
/var/log/apache2/myhost/access.log /var/log/apache2/myhost/error.log { daily missingok rotate 2 compress # delaycompress # notifempty create 640 root adm sharedscripts postrotate /etc/init.d/apache2 reload > /dev/null; \ endscript }

여기에 /etc/logrotate.conf 파일을 추가했습니다. 나는 또한 "압축"에 대해 언급했습니다. 그런 다음 "sudo logrotate -f /etc/logrotate.d/apache2"를 실행합니다. 이는 이 실행을 강제로 수행함을 의미합니다. 결과는 훌륭합니다. 다들 감사 해요.

# see "man logrotate" for details # rotate log files weekly weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}

/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}

# system-specific logs may be configured here
</code>

관련 정보