리눅스 서버에서는 로그가 빠르게 쌓이면 디스크 부족, 서비스 지연, 로그 확인 어려움 문제가 발생합니다. 이 글은 초보자가 **보고 바로 따라하며 실습**할 수 있도록, nginx, Apache, 시스템 로그 회전과 자동 삭제, cron 연동까지 단계별로 안내합니다.
실제 서버 로그를 건드리지 않고 안전하게 실습하려면 테스트용 로그 파일을 생성합니다.
mkdir -p ~/log_test/nginx ~/log_test/apache ~/log_test/system
설명:
# nginx 로그
echo "테스트용 nginx access 로그" > ~/log_test/nginx/access.log
echo "테스트용 nginx error 로그" > ~/log_test/nginx/error.log
# Apache 로그
echo "테스트용 Apache access 로그" > ~/log_test/apache/access_log
echo "이건 테스트용 Apache error 로그입니다." > ~/log_test/apache/error_log
# 시스템 로그
echo "테스트용 messages 로그" > ~/log_test/system/messages.log
echo "테스트용 syslog 로그" > ~/log_test/system/syslog.log
설명:
cat ~/log_test/apache/error_log
Day1 access_log
Day2 access_log.1 ← Day1 백업
access_log 새로 생성
Day3 access_log.2 ← Day2 백업
access_log.1 ← Day1 이동
access_log 새로 생성
Day4 access_log.3 ← Day3 백업
access_log.2 ← Day2 이동
access_log.1 ← Day1 이동
access_log 새로 생성
~/log_test/nginx/*.log {
daily
rotate 3
compress
copytruncate
missingok
notifempty
create 0644 $USER $USER
delaycompress
postrotate
echo "nginx 로그 회전 완료: $(date)"
endscript
}
~/log_test/apache/*_log {
daily
rotate 3
compress
copytruncate
missingok
notifempty
create 0640 apache apache
delaycompress
postrotate
systemctl reload httpd
endscript
}
시스템 로그 회전은 `/etc/logrotate.d/system_logs` 파일 생성
sudo nano /etc/logrotate.d/system_logs
내용 예시:
/var/log/messages /var/log/syslog /var/log/secure /var/log/cron {
weekly
rotate 4
compress
copytruncate
missingok
notifempty
}
---
logrotate -d ~/log_test/nginx/logrotate.conf
logrotate -d ~/log_test/apache/logrotate.conf
sudo logrotate -d /etc/logrotate.d/system_logs
/var/log/nginx/*.log {
daily
rotate 7
compress
copytruncate
missingok
notifempty
create 0640 nginx adm
delaycompress
postrotate
systemctl reload nginx
endscript
}
/var/log/httpd/access_log /var/log/httpd/error_log {
daily
rotate 7
compress
copytruncate
missingok
notifempty
create 0640 apache apache
delaycompress
postrotate
systemctl reload httpd
endscript
}
/etc/logrotate.d/system_logs 파일로 회전 관리
sudo crontab -e
0 2 * * * /usr/sbin/logrotate /etc/logrotate.conf
chown apache:apache /var/log/httpd/*.log
이 글을 따라하면 초보자도 nginx, Apache, 시스템 로그 회전, 자동 삭제, cron 연동, 심화 옵션까지 안전하게 실습할 수 있습니다. 명령어 의미까지 이해하고 테스트 환경에서 연습 → 실제 서버 적용 → 오류 대응까지 경험하며 **실무 감각과 서버 운영 능력**을 동시에 익힐 수 있습니다.
리눅스 파일 권한 완벽 가이드 기본값과 변경법 총정리 (1) | 2025.08.28 |
---|---|
리눅스 서버 시간 설정 방법: 타임존 변경부터 NTP 자동 동기화까지 (2) | 2025.08.27 |
리눅스에서 특정 프로세스 강제 종료하는 방법 (0) | 2025.08.21 |
리눅스 SSH 접속 포트 변경 및 보안 강화 방법 (0) | 2025.08.19 |
리눅스 포트 확인 방법 ss, netstat, lsof (2) | 2025.08.18 |