RHCSA 6일차
chapter 4
1. systemd: 서비스 및 유닛 관리
systemd는 RHEL 9의 핵심 데몬으로, 시스템 리소스를 유닛 단위로 관리한다.
-
서비스 제어:
systemctl명령어를 통해 서비스의 상태를 제어한다. -
systemctl start/stop/restart/status <unit>순서로 사용한다. -
자동 시작 설정:
systemctl enable --now <unit>은 부팅 시 자동 실행 설정과 현재 시점의 즉각 실행을 동시에 처리한다. -
부팅 타겟 변경:
systemctl set-default <target>을 사용하여 멀티 유저 모드(텍스트)나 그래픽 모드 중 기본값을 설정할 수 있다.
2. 작업 예약 및 시간 관리
반복되는 작업의 자동화와 시스템 시간의 정확성은 서버 관리의 기본이다.
- cron:
crontab -e를 통해 사용자별 예약 작업을 등록한다. 예를 들어 매일 새벽 3시에 백업 스크립트를 실행하려면0 3 * * * /path/to/script형식을 사용한다. - chronyd: 외부 NTP 서버와 동기화하여 시계 오차를 수정한다.
chronyc sources -v명령어로 현재 동기화 상태를 확인할 수 있다. - 시간 설정:
timedatectl set-timezone Asia/Seoul명령어로 타임존을 변경하거나 NTP 동기화 여부를 결정한다.
3. 리소스 모니터링 및 로그 관리
시스템의 부하를 확인하고 발생한 이벤트의 기록을 분석하는 과정이다.
-
모니터링 명령어:
-
free -h: 메모리 및 스왑 사용량 확인. -
df -h: 디스크 여유 공간 확인. -
top및uptime: CPU 부하 및 가동 시간 확인. -
로그 분석:
journalctl은 바이너리 로그를 쿼리하는 강력한 도구다.journalctl -u <service> -b를 사용하면 이번 부팅 중 특정 서비스에서 발생한 로그만 볼 수 있다. -
logrotate: 로그 파일이 디스크를 가득 채우지 않도록 관리한다.
/etc/logrotate.d/디렉터리에 서비스별 설정 파일을 위치시켜 주기적인 분할과 압축을 수행한다.
4. 최종 미션: 시스템 상태 보고서 자동화
배운 내용을 종합하여 실습 미션을 진행했다.
[목표] 매일 밤 12시에 메모리/디스크 상태를 /var/log/sys_report.log에 기록하고, 7일치만 보관하기.
Step 1: 작업 예약 (cron)
crontab -e 명령어로 아래 설정을 추가했다.
0 0 * * * (free -h; df -h) >> /var/log/sys_report.log 2>&1
매일 0시 0분에 표준 출력과 표준 에러를 모두 지정된 로그 파일에 추가(append)하도록 설정했다.
Step 2: 로그 로테이션 설정 (logrotate)
/etc/logrotate.d/sys_report 파일을 생성하여 관리 규칙을 정의했다.
/var/log/sys_report.log {
daily
rotate 7
missingok
notifempty
compress
}
매일 로테이션을 수행하되, 최대 7개까지만 보관하며 용량 절약을 위해 압축을 적용했다.
기타 설정 (로케일 관리)
시스템의 언어와 지역 설정을 관리하는 법도 정리했다.
- localectl:
localectl set-locale LANG=ko_KR.utf8명령어로 시스템 언어를 변경할 수 있다. (단,dnf install glibc-langpack-ko를 통한 언어 팩 설치가 선행되어야 함)
뭐, 그래도 좀 만져봤다고, 아직까지는 그냥그냥 할만하다.
마침.
다른 글 보기
RHCSA 7일차
Chapter 5. Securing Systems with Users, Groups, and Permissions
애니메이션이라는 이름의 지옥
Rive는 왜 Auto rigging을 지원해주지 않는걸까..?
RHCSA 5일차
Chapter 3. Basic Commands & Simple Shell Scripts
RHCSA 4일차: AI 강사를 해고하고, 다시 AI를 고용했다
할루시네이션에 지쳐 원서를 샀다. 그리고 Gemini를 나만의 1타 강사로 개조했다.