일부 로그 파일을 저장하는 Ubuntu 서버에 logrotate 스크립트가 있습니다. 스크립트는 다음과 같습니다.
/home/*/logs/*log {
su root root
notifempty
daily
rotate 7
compress
sharedscripts
postrotate
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
endscript
}
이제 CentOS 8 서버에 동일한 스크립트를 구현하고 싶습니다. 여기서 나는 이 줄의 가치가 무엇인지 이해하지 못합니다.
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
답변1
httpd
CentOS 기본 패키지에 사용되는 것을 사용하는 것이 좋습니다httpd.logrotate:
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
delaycompress
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
}
(또한 /home을 웹 사이트를 저장하는 장소로 사용하지 않는 것이 좋습니다. SELinux를 끄지 않으면 거의 모든 것이 중단될 것이라고 생각합니다. 그렇기 때문입니다. 그 외에 귀하의 레시피는 사용자 압축 로그를 가져옵니다. 웹사이트 사용자만 있는 경우 로그 디렉토리의 홈 디렉토리인 것 같습니다...)