cron을 통해 시간별 레코드를 회전할 수 없습니다.

cron을 통해 시간별 레코드를 회전할 수 없습니다.

/etc/crontab에 다음 항목이 있습니다.

47 * * * * root /usr/sbin/logrotate -v -f /etc/logrotate.d/mariadb_dumps &> /tmp/errrot

이 줄은 /tmp/errrot가 생성되었지만(비어 있음) logrotate가 아무 작업도 수행하지 않기 때문에 실행됩니다.

cron 외부의 명령줄에서 이 줄을 실행하면 제대로 작동하고 /tmp/errrot에 출력됩니다.

/etc/logrotate.d/mariadb_dumps 파일에는 다음이 포함됩니다.

/home/backups/alldbs.sql.gz {

rotate 48
create 640 root adm
notifempty
nocreate
}

패키지에는 다음이 포함됩니다:

cronie-1.4.11-19.el7.x86_64
cronie-anacron-1.4.11-19.el7.x86_64

운영 체제는 CentOS 7입니다.

매시간 logrotate를 실행하려면 무엇을 수정해야 합니까?

참고: 해당 행을 /etc/cron.d의 별도 파일에 넣고 아래와 같이 logrotate에 대한 사용자 정의 경로를 설정해 보았습니다.매시간 logrotate를 실행하는 방법. 이 방법 중 어느 것도 작동하지 않습니다.

답변1

마침내 나는 그것이 selinux 문제라는 것을 알았지만 다소 숨겨져 있었기 때문에 다음을 실행했습니다.

semodule --disable_dontaudit --build

그런 다음 이러한 거부를 발견하고 예외 selinux 모듈을 생성하여 적용했는데 이제 제대로 작동합니다.

그런 다음 다음을 실행했습니다.

semodule --build

관련 정보