파일 접근 제어
Permission 종류
r (read)
w (write)
x (execute)
레벨
u (user)
g (group)
o (other)
chmod 통해 permission 변경
chmod g+x jerry # jerry 파일에 group 실행 권한 추가
chmod a+x jerry # jerry 파일에 user, group, other 모두 실행 권한 추가
ls -l (ls -ltr) 통해 permission 확인
리눅스 프로세스 모니터링 및 관리
Process & Job 관련 용어
- Application
Service. 실행되는 응용 프로그램 - Script
파일에 작성되어 실행될 수 있도록 패키지로 포함 - Process
애플리케이션 실행 및 시작 시 프로세스 - Daemon
백그라운드에서 실행 - Threads
한 프로세스에는 여러 스레드 존재 - Job
스케쥴러가 만든 작 순서로 응용 프로그램 및 서비스 실행
서버 운영 및 모니터링 관리 명령어
- df (파일 시스템 통계 제공)
파일 시스템 전체 용량 및 사용량 확인
디스크 공간 부족 방지 유용
df -h
[옵션]
-h : 사람이 읽기 쉬운 형식(GB, MB)로 표시
-T : 파일 시스템 타입 표시
- du (디스크 사용량 확인)
특정 파일 및 디렉토리의 사용량 확인
파일 크기를 기반으로 공간을 많이 차지하는 파일 찾는데 유용
du -sh /home/user
[옵션]
-s : 합계만 표시 (디렉토리 크기)
-h : 사람이 읽기 쉬운 형식으로 출력
- uptime (시스템 실행 시간 확인)
서버가 얼마나 오래 실행되었는지 확인
로드 평균 (Load Average)도 함께 표시 (CPU 부하량 분석)
uptime
[항목]
up 11 min : 서버가 11분동안 실행 중
3 users : 현재 로그인한 사용자 수
load average : 0.00, 0.00, 0.00 : CPU 부하(1분, 5분, 15분 평균)
- top (실시간 프로세스 및 시스템 상태 모니터링)
CPU 사용량, 메모리 사용량, 실행 중인 프로세스를 실시간으로 확인
top
[단축키]
q : 종료
M : 메모리 사용량 기준 정렬
P : CPU 사용량 기준 정렬
k : 특정 프로세스 종료 (PID 입력)ㅅ
- free (메모리 사용량 확인)
현재 사용 중인 메모리(RAM) 및 가용 메모리 확인
free -h
[항목]
total : 총 메모리 용량
used : 사용 중인 메모리
free : 사용 가능한 메모리
available : 실제 사용 가능한 메모리
- netstat (네트워크 상태 확인) - ss 명령어로 대체됨
현재 열려 있는 포트 및 네트워크 연결 상태 확인
netstat -tulnp
[옵션]
-t : TCP 포트 표시
-u : UDP 포트 표시
-l : 리슨 중인 포트 표시
-n : IP 및 퐅트를 숫자로 표시
-p : 해당 포트를 사용 중인 프로세스 표시
- ps (현재 실행 중인 프로세스 확인)
ps aux
[옵션]
a : 모든 사용자 프로세스 표시
u : 실행 사용자의 CPU/메모리 사용률 표시
x : 터미널과 관계없는 백그라운드 프로세스 표시
- lsof (열려 있는 파일 및 포트 확인)
프로세스가 어떤 파일 또는 포트를 사용중인지 확인
lsof -i :80 # 80번 포트를 사용 중인 프로세스 확인
lsof /var/log/syslog # /var/log/syslog 파일을 사용 중인 프로세스 확인
- kill (프로세스 종료)
실행 중인 프로세스를 종료하는 명령어
kill -9 <PID> # 강제종료
ps aux | grep apache
kill -9 1234
- tcpdump (네트워크 패킷 캡쳐)
네트워크 트래픽을 실시간으로 캡쳐하고 분석하는 명령어
sudo tcpdump -i eth0 # eth0 인터페이스의 모든 패킷 캡쳐
sudo tcpdump -i eth0 port 80 # 포트80 트래픽만 캡쳐
요약
df -h | 전체 디스크 사용량 확인 |
du -sh | 특정 폴더의 사용량 확인 |
uptime | 시스템 가동 시간 및 부하율 확인 |
top | 실시간 CPU, 메모리 사용량 및 프로세스 확인 |
free -h | 메모리(RAM) 사용량 확인 |
netstat -tulnp | 네트워크 연결 상태 및 열린 포트 확인 |
ps aux | 실행 중인 프로세스 목록 확인 |
lsof -i :<포트번호> | 특정 포트를 사용 중인 프로세스 확인 |
kill -9 <PID> | 프로세스 강제종료 |
tcpdump -i <네트워크 인터페이스> | 네트워크 패킷 캡처 |
로그 모니터링
로그 디렉토리
주요 로그 디렉토리 : /var/log
- /var/log/boot.log : 부팅 과정에서 발생한 로그
- /var/log/chronyd.log :시간 동기화(chronyd) 관련 로그
- /var/log/cron : 크론 작업(Cron Job) 실행 기록
- /var/log/maillog : 메일 서버 관련 로그
- /var/log/secure : SSH 및 인증 관련 보안 로그
- /var/log/messages : 시스템 주요 로그(커널, 데몬, 일반 메시지)
- /var/log/httpd/ :Apache 웹 서버 로그 (에러 및 액세스)
# 로그 모니터링 명령어
tail -f /var/log/messages
# 실시간 로그 확인 (-f : 파일 업데이트 될 때 마다 출력)
less /var/log/secure
# 로그 파일 검색 및 스크롤 (less로 확인)
journalctl -xe
시간 동기화
시스템 시간 확인 및 동기화 관리
- date (현재 시간 확인)
date
- timedatectl (시간 설정)
- timedatectl list-timezones : 사용 가능한 모든 타임존 확인
- timedatectl set-timezone Asia/Seoul : 타임존 변경 (한국: Asia/Seoul)
- timedatectl set-time : "2025-02-12 10:30:00" : 수동으로 시간 설정
chronyd (시간 동기화 데몬)
NTP(Network TIme Protocol)을 대체하는 경량 데몬
서버의 시간을 자동으로 동기화하여 정확한 시간 유지한다.
구성파일 : /etc/chronyd.conf
로그파일 : /var/log/chronyd.log
- 패키지 설치 (chronyd 설치)
sudo yum install -y chrony # RHEL, CentOS
sudo apt install -y chrony # Ubuntu, Debian
- 서비스 시작 및 활성화
sudo systemctl start chronyd
sudo systemctl enable chronyd
- 시간 동기화 상태 확인
chronyc tracking
서비스와 데몬 제어하기
systemctl vs systemd
systemd는 전체적인 시스템을 관리하고, systemctl은 제어하는 도구
- systemctl
systemd를 제어하는 명령어 (서비스 관리)
서비스를 시작/중지/재시작/설정 하는데 사용된다.
[기본적인 서비스 제어]
systemctl start <서비스> : 서비스 시작
systemctl stop <서비스> : 서비스 중지
systemctl restart <서비스> : 서비스 재시작
systemctl reload <서비스> : 설정 변경 적용 (기존 연결 유지)
systemctl enable <서비스> : 부팅 시 자동 실행 활성화
systemctl disable <서비스> : 부팅 시 자동 실행 비활성화
systemctl status <서비스> : 서비스 상태 확인
- systemd
시스템의 전체적인 daemon, utility, library를 관리하는 시스템 및 서비스 관리자
리눅스에서 init 시스템을 대체하는 최신 서비스 관리자
시스템이 부팅될 때 커널 -> systemd -> 서비스 및 프로세스 시작
[systemd 주요 기능]
서비스 관리 : systemctl을 통해 서비스(unit)을 시작/중지
병렬 서비스 실행 : 기존 SysVinit 보다 빠르게 서비스 실행
로그 관리 : journald를 통해 로그 기록
부팅 속도 향상 : 불필요한 서비스 지연 (start-on-demand)
의존성 관리 : 서비스 간 종속성 자동 해결
[systemd 관련 주요 파일 위치]
/etc/systemd/system/ : 사용자가 정의한 서비스 설정 파일
/lib/systemd/system/ : 기본 시스템 서비스 파일
/run/systemd/ : 런타임 서비스 정보
'Study > 리눅스' 카테고리의 다른 글
RHCSA 정리 (5) - SELinux, Storage, NFS, Samba (0) | 2025.02.27 |
---|---|
RHCSA 정리 (4) - Shell, 작업 스케쥴링, 시스템 성능 튜닝, ACL (0) | 2025.02.27 |
RHCSA 정리 (3) - Security, Networking, File (0) | 2025.02.19 |
RHCSA 정리 (1) - File System, File Editor, User Account (0) | 2025.02.11 |
[RHCSA] 실습환경 설정 & 로컬 SSH 접속 (2) | 2025.02.06 |