1. 시스템 서비스 제어 (systemctl)
systemd는 리눅스의 모든 프로세스를 관리하는 최상위 부모 프로세스입니다.
주요 명령어
systemctl start [서비스명] # 서비스 즉시 시작
systemctl stop [서비스명] # 서비스 즉시 종료
systemctl restart [서비스명] # 서비스 재시작
systemctl reload [서비스명] # 설정만 다시 읽기 (서비스 중단 없음)
systemctl enable [서비스명] # 부팅 시 자동 시작
systemctl enable --now [서비스명] # 자동 시작 설정 + 즉시 시작
systemctl daemon-reload # 설정 파일 변경 시 systemd 반영
부팅 모드 설정
systemctl set-default multi-user.target # CLI 모드로 부팅
systemctl set-default graphical.target # GUI 모드로 부팅
2. 작업 스케줄링 (at, cron)
at - 1회성 예약 작업
at now + 2 minutes # 2분 후 실행
at 10:30 # 오늘 10시 30분 실행
atq # 예약된 작업 목록 확인
atrm [작업번호] # 예약 작업 삭제
사용 제한: /etc/at.allow (허용), /etc/at.deny (차단)
Tip: 둘 다 있으면 at.allow가 우선, 양쪽에 있으면 허용됨
cron - 반복 예약 작업
crontab -e # 크론탭 편집
crontab -l # 크론탭 목록 확인
설정 형식: 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6)
0 4 1 * * # 매월 1일 새벽 4시
30 1 * * 6 # 매주 토요일 새벽 1시 30분
*/30 * * * * # 30분마다 실행
스크립트 예약 시 주의사항
- 절대 경로 사용: /home/user/shell.sh
- 실행 권한 부여: chmod +x shell.sh
- 출력 리다이렉션: >> /home/user/shell.log (성공 여부 확인용)
3. 하드디스크 추가 및 파일시스템 관리
표준 디스크 추가 절차
# 1. 디스크 확인
lsblk # 디스크 구조 확인
ls /dev/sd* # 디스크 목록 확인
# 2. 파티션 생성
sudo fdisk /dev/nvme0n2 # MBR 방식 (2TB 이하)
# n → p → 1 → Enter → +200M → w
# 3. 파일시스템 포맷
sudo mkfs.xfs /dev/nvme0n2p1 # XFS 포맷
sudo mkfs -t ext4 /dev/nvme0n2p1 # EXT4 포맷
# 4. 마운트 포인트 생성 및 마운트
sudo mkdir /mydata
sudo mount /dev/nvme0n2p1 /mydata
# 5. 영구 마운트 설정 (/etc/fstab)
/dev/nvme0n2p1 /mydata xfs defaults 0 0
# 6. 설정 반영
sudo systemctl daemon-reload
핵심 확인 명령어
lsblk # 디스크 구조 및 마운트 지점
df -Th # 전체 디스크 용량 및 타입
du -sh /경로 # 특정 디렉토리 사용량
4. 디스크 쿼터 (Disk Quota)
사용자별 디스크 사용량을 제한하여 서버 자원 고갈 방지
제한 방식
- Block Quota: 용량 제한 (KB 단위)
- Inode Quota: 파일 개수 제한
- Soft Limit: 경고 단계 (유예 기간 있음)
- Hard Limit: 절대 초과 불가능
설정 프로세스
# 1. /etc/fstab 수정 (usrquota 옵션 추가)
/dev/nvme0n2p1 /mnt/mp1 xfs defaults,usrquota 0 0
# 2. 재마운트
sudo mount -o remount /mnt/mp1
# 3. 쿼터 DB 생성
sudo quotacheck -cu /mnt/mp1 # aquota.user 파일 생성
# 4. 쿼터 활성화
sudo quotaon /mnt/mp1
# 5. 사용자 할당
sudo edquota -u username # 대화형 편집
sudo setquota -u username 10000 20000 0 0 /mnt/mp1 # 명령어형
# 6. 설정 복사
sudo edquota -p sourceuser targetuser # sourceuser 설정을 targetuser에 복사
# 7. 상태 확인
sudo repquota -a # 전체 사용자 쿼터 확인
Tip: 사용자가 파일을 한 번이라도 생성해야 목록에 나타남
5. 패키지 관리 (dnf)
로컬 저장소 설정 (인터넷 없는 환경)
# 1. 기존 저장소 백업
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
# 2. 로컬 저장소 생성 (/etc/yum.repos.d/local.repo)
[LocalRepo]
name=Local Repository
baseurl=file:///run/media/admin/Rocky-9-7-aarch64-dvd
enabled=1
gpgcheck=0
# 3. 패키지 설치
sudo dnf install httpd mariadb-server
dnf 무한 로딩 해결
pkill -9 dnf # dnf 강제 종료
sudo rm -f /var/run/dnf.lock # 락 파일 삭제
6. 쉘 스크립트 핵심 문법
#!/bin/bash
# 디렉토리 존재 확인
if [ -d /home/user/lab3 ]; then
echo "directory exists"
else
mkdir -p /home/user/lab3 # 부모 디렉토리까지 생성
cp /usr/bin/x* /home/user/lab3/ # 와일드카드 복사
find /etc -name "b*" -exec cp {} /home/user/lab3/ \; 2>/dev/null
fi
실행 방법
chmod +x shell.sh # 실행 권한 부여
./shell.sh # 현재 경로 명시 필수
7. 심볼릭 링크 & 특수 권한
심볼릭 링크 (소프트 링크)
ln -s /etc/hosts hosts.soft # 원본이 삭제되면 링크 깨짐
ln /etc/hosts hosts.hard # 하드 링크 (원본 삭제되도 유지)
특수 권한
권한 숫자 기호 위치 용도
| SUID | 4000 | s | 소유자 실행권한 | 일반 사용자가 root 권한으로 실행 |
| SGID | 2000 | s | 그룹 실행권한 | 그룹 권한 상속 (협업) |
| Sticky Bit | 1000 | t | 기타 실행권한 | 본인 파일만 삭제 가능 |
chmod 4755 /usr/bin/passwd # SUID 설정
chmod u+s /usr/bin/passwd # 기호 방식
find / -perm -4000 # SUID 파일 찾기
8. 리눅스 디렉토리 구조 (FHS)
핵심 디렉토리
/ # 루트 (최상위)
├── /etc # 모든 설정 파일 (/etc/nginx/nginx.conf)
├── /dev # 하드웨어 장치 파일
├── /var # 자주 변하는 데이터
│ ├── /var/www/html # 웹 서버 소스 파일
│ └── /var/log # 로그 파일 (에러 확인용)
├── /home # 일반 사용자 홈 디렉토리
├── /root # root 사용자 홈 디렉토리
├── /tmp # 임시 파일 (재부팅 시 삭제)
├── /bin, /usr/bin # 일반 명령어 (ls, cp 등)
└── /sbin # 시스템 관리자 명령어
파일 위치 찾기
which nginx # 실행 파일 위치
whereis nginx # 실행 파일 + 소스 + 매뉴얼
9. SELinux 보안 설정
getenforce # 현재 상태 확인
sudo setenforce 0 # Permissive 모드 (경고만)
sudo setenforce 1 # Enforcing 모드 (강제)
# 포트 허용 (예: 웹 서버 8888 포트)
sudo semanage port -a -t http_port_t -p tcp 8888
10. 권한 관리 핵심
sudo -i # root 계정 전환
chmod u+x,go+w testfile # 복합 권한 설정
chmod go=rx testfile # 절대 권한 설정
chown admin:admin testfile # 소유자:그룹 변경
chgrp admin testfile # 그룹만 변경
11. RAID
RAID란?
RAID (Redundant Array of Independent Disks)는 여러 개의 하드디스크를 하나로 묶어서 사용하는 기술입니다.
RAID의 목적
- 데이터 안정성 향상 - 디스크 고장 시 데이터 보호
- 성능 향상 - 여러 디스크에 데이터를 분산 저장
- 용량 확장 - 여러 디스크를 하나의 큰 저장공간으로 활용
주요 RAID 레벨
RAID 0 (Striping)
- 특징: 데이터를 여러 디스크에 분산 저장
- 장점: 속도 빠름, 용량 100% 활용
- 단점: 디스크 하나만 고장나도 모든 데이터 손실
- 용량: 디스크 개수 × 디스크 용량
- 예시: 1GB + 1GB = 2GB 사용 가능
RAID 1 (Mirroring)
- 특징: 같은 데이터를 2개 디스크에 동일하게 저장
- 장점: 디스크 하나 고장나도 데이터 안전
- 단점: 용량 50%만 사용 가능
- 용량: 전체 용량의 50%
- 예시: 1GB + 1GB = 1GB 사용 가능
RAID 5
- 특징: 최소 3개 디스크 필요, 패리티 정보 분산 저장
- 장점: 속도와 안정성의 균형, 디스크 1개 고장 복구 가능
- 단점: 쓰기 속도가 약간 느림
- 용량: (디스크 개수 - 1) × 디스크 용량
- 예시: 1GB + 1GB + 1GB = 2GB 사용 가능
RAID 6
- 특징: 최소 4개 디스크 필요, 패리티 정보 2중 저장
- 장점: 디스크 2개까지 고장나도 복구 가능
- 단점: RAID 5보다 쓰기 속도 느림
- 용량: (디스크 개수 - 2) × 디스크 용량
RAID 10 (1+0)
- 특징: RAID 1과 RAID 0의 조합, 최소 4개 디스크 필요
- 장점: 빠른 속도 + 데이터 안정성
- 단점: 용량 50%만 사용
- 용량: 전체 용량의 50%
정리
RAID 레벨 선택 가이드:
RAID 레벨 최소 디스크 용량 효율 속도 안정성 추천 용도
| RAID 레벨 | 최소 디스크 | 용량효율 | 속도 | 안정성 | 추천용도 |
| RAID 0 | 2개 | 100% | ⭐⭐⭐ | ❌ | 임시 데이터, 속도 중요 |
| RAID 1 | 2개 | 50% | ⭐⭐ | ⭐⭐⭐ | 중요 데이터 백업 |
| RAID 5 | 3개 | 67~90% | ⭐⭐ | ⭐⭐ | 범용 서버 |
| RAID 6 | 4개 | 50~88% | ⭐⭐ | ⭐⭐⭐ | 고가용성 필요 시 |
| RAID 10 | 4개 | 50% | ⭐⭐⭐ | ⭐⭐⭐ | 데이터베이스 서버 |
주의사항: RAID는 백업을 대체할 수 없습니다! 중요한 데이터는 반드시 별도로 백업하세요.
'리눅스' 카테고리의 다른 글
| [Linux] 디스크 쿼터 (0) | 2026.01.23 |
|---|---|
| [Rocky Linux] M1에서 Rocky Linux LVM 파티션 생성 및 마운트하기 (0) | 2026.01.23 |
| [Linux: Nginx] 웹 서버 설정 및 HTML 페이지 만들기 (0) | 2026.01.13 |
| [Linux:수업 2주차] Rocky Linux 네트워크 및 기본 명령어 정리 (0) | 2026.01.13 |
| [Linux:수업 1주차] 리눅스 기본 명령어 가이드 (0) | 2026.01.07 |