0Pricing
DevOps Bootcamp · 강의

디스크, 파일 시스템 및 마운트 자동화

블록 장치를 검사하고 fstab 항목을 관리하며 LVM 및 마운트 작업을 안전하게 스크립트로 처리합니다.

디스크, 파일 시스템 및 마운트 자동화은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

lsblk와 fdisk로 블록 장치 이해하기

디스크 작업을 자동화하기 전에 시스템에 어떤 블록 장치가 있는지 검사할 수 있어야 합니다. 필수 도구로 lsblk와 fdisk -l이 있습니다.

  • lsblk — 장치 이름, 크기, 마운트 지점, 유형(디스크, 파티션, lvm)을 트리 형식으로 표시하며 블록 장치를 나열합니다
  • fdisk -l — 파티션 테이블과 섹터 세부 정보를 표시합니다(루트 권한 필요)
  • blkid — 각 블록 장치의 UUID와 파일 시스템 유형을 출력합니다

스크립트에서는 사용 가능한 디스크를 감지하거나, 파티션이 포맷되었는지 확인하거나, 마운트하기 전에 UUID를 확인하기 위해 이 출력을 분석해야 하는 경우가 많습니다.

#!/usr/bin/env bash
# Inspect all block devices and their UUIDs
set -euo pipefail

echo '=== Block Device Tree ==='
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID

echo ''
echo '=== Partition Table Details ==='
sudo fdisk -l 2>/dev/null | grep -E '^Disk |^/dev/'

echo ''
echo '=== UUID Lookup via blkid ==='
sudo blkid | awk -F: '{print $1}' | while read -r dev; do
  uuid=$(sudo blkid -s UUID -o value "$dev" 2>/dev/null || echo 'N/A')
  fstype=$(sudo blkid -s TYPE -o value "$dev" 2>/dev/null || echo 'unknown')
  printf '%-20s UUID=%-38s TYPE=%s\n' "$dev" "$uuid" "$fstype"
done

df와 du로 디스크 공간 확인하기

df와 du는 파일 시스템 및 디렉터리 사용량을 보고할 때 주로 사용하는 도구입니다. 시스템 관리자용 스크립트에서는 이를 사용해 경고를 발생시키고, 할당량을 적용하거나, 공간을 추가로 할당할 시점을 결정합니다.

  • df -h — 마운트된 모든 파일 시스템의 사용량을 사람이 읽기 쉬운 형식으로 표시합니다
  • df -BG — 일관된 숫자 분석을 위해 기가바이트 단위로 출력합니다
  • du -sh /path — 특정 디렉터리의 크기를 요약합니다
  • du -d 1 /var — 한 단계 깊이까지 사용량을 나눠 표시합니다(어떤 하위 디렉터리가 큰지 찾을 때 유용)

df의 사용률 열은 모니터링 스크립트에서 디스크 가득 참 경고를 발생시키기 위해 흔히 분석합니다.

#!/usr/bin/env bash
# Alert if any mounted filesystem exceeds a usage threshold
set -euo pipefail

THRESHOLD=80   # percent

echo 'Checking filesystem usage...'
df -h --output=source,pcent,target | tail -n +2 | while IFS= read -r line; do
  device=$(awk '{print $1}' <<< "$line")
  pct=$(awk '{print $2}' <<< "$line" | tr -d '%')
  mount=$(awk '{print $3}' <<< "$line")

  # Skip pseudo filesystems
  [[ "$device" == tmpfs* || "$device" == devtmpfs* ]] && continue

  if (( pct >= THRESHOLD )); then
    echo "WARNING: $device mounted at $mount is ${pct}% full" >&2
  else
    echo "OK: $device at $mount is ${pct}% used"
  fi
done

/etc/fstab 읽기 및 분석

/etc/fstab은 정적 파일 시스템 테이블로, 부팅 시 어떤 장치를 어느 경로에 어떤 옵션으로 마운트할지 정의합니다. 각 행에는 여섯 개의 필드가 있습니다.

  • 장치 — UUID=..., LABEL=... 또는 /dev/sdX
  • 마운트 지점 — 디렉터리 경로
  • 파일 시스템 유형 — ext4, xfs, nfs, tmpfs 등
  • 옵션 — defaults, ro, noexec, nofail 등
  • 덤프 — 0 또는 1(백업 플래그)
  • 통과 순서 — 0, 1 또는 2(fsck 순서)

fstab 항목을 추가하거나 검증하는 스크립트는 주석(#으로 시작하는 행)과 빈 행을 문제없이 처리해야 합니다. 장치 순서가 변경될 수 있는 재부팅 후에도 문제없이 동작하도록 장치 이름보다 UUID를 항상 우선 사용하세요.

#!/usr/bin/env bash
# Parse /etc/fstab and display non-comment entries in a readable table
set -euo pipefail

FSTAB=/etc/fstab

printf '%-40s %-20s %-10s %s\n' 'DEVICE' 'MOUNTPOINT' 'FSTYPE' 'OPTIONS'
printf '%s\n' '-------------------------------------------------------------------------------------'

while IFS= read -r line; do
  # Skip blank lines and comments
  [[ -z "$line" || "$line" =~ ^[[:space:]]*# ]] && continue

  read -r device mountpt fstype options _dump _pass <<< "$line"
  printf '%-40s %-20s %-10s %s\n' "$device" "$mountpt" "$fstype" "$options"
done < "$FSTAB"

fstab 항목 안전하게 추가하기

/etc/fstab을 수동으로 편집하면 오류가 발생하기 쉽습니다. 잘못된 항목 하나로 인해 시스템이 부팅되지 않을 수 있습니다. 안전한 자동화 스크립트는 다음을 수행해야 합니다.

  • 추가하기 전에 해당 항목이 이미 있는지 확인합니다(멱등성).
  • 수정하기 전에 원본 파일을 백업합니다.
  • 장치 경로 대신 UUID를 사용합니다.
  • 마운트 옵션에 nofail을 추가하여 디스크가 없어도 부팅이 중단되지 않게 합니다.
  • 재부팅하기 전에 mount -a를 시험 실행하거나 테스트 마운트하여 유효성을 검사합니다.

항목을 작성한 후에는 항상 findmnt --verify로 확인하여 구문 오류를 즉시 발견해야 합니다(최신 systemd 배포판에서 사용할 수 있습니다).

#!/usr/bin/env bash
# Safely append a new entry to /etc/fstab (idempotent)
set -euo pipefail

DEVICE_PATH='/dev/sdb1'
MOUNTPOINT='/mnt/data'
FSTYPE='ext4'
OPTIONS='defaults,nofail'
FSTAB='/etc/fstab'

# Resolve UUID for stable identification
UUID=$(sudo blkid -s UUID -o value "$DEVICE_PATH")
if [[ -z "$UUID" ]]; then
  echo "ERROR: Could not resolve UUID for $DEVICE_PATH" >&2
  exit 1
fi

ENTRY="UUID=$UUID  $MOUNTPOINT  $FSTYPE  $OPTIONS  0  2"

# Idempotency: skip if UUID already referenced in fstab
if grep -qsF "UUID=$UUID" "$FSTAB"; then
  echo "INFO: fstab already contains UUID=$UUID — skipping."
  exit 0
fi

# Backup
cp -p "$FSTAB" "${FSTAB}.bak.$(date +%Y%m%d%H%M%S)"

# Create mountpoint if needed
sudo mkdir -p "$MOUNTPOINT"

# Append entry
echo "$ENTRY" | sudo tee -a "$FSTAB" > /dev/null
echo "INFO: Added: $ENTRY"

# Validate
sudo findmnt --verify --verbose || echo 'WARNING: findmnt verify reported issues'

스크립트에서 파일 시스템 마운트 및 마운트 해제하기

mount 및 umount 명령은 간단하지만, 스크립트에서는 예외 상황을 처리해야 합니다.

  • 장치가 이미 마운트되어 있을 수 있습니다. 다시 마운트하면 실패하므로 findmnt 또는 mountpoint로 확인합니다.
  • 마운트 지점이 사용 중일 수 있습니다(열린 파일이 있음). 이 경우 umount가 실패하므로 lsof +D /mnt/target을 사용하여 원인을 찾습니다.
  • 마운트 해제 없이 읽기 전용으로 전환하려면 mount -o remount,ro /mnt/data를 사용합니다.
  • 최후의 수단으로 umount -l /mnt/data(지연 방식)를 사용할 수 있습니다. 이 명령은 네임스페이스를 분리하지만 참조가 닫힐 때까지 기다립니다.

자동화에서는 항상 mount의 종료 코드를 확인하고, 실패 내용을 logger로 syslog에 기록해야 합니다.

#!/usr/bin/env bash
# Mount a device only if not already mounted; log outcome
set -euo pipefail

DEVICE='/dev/sdb1'
MOUNTPOINT='/mnt/data'

log() { logger -t disk-mount "$*"; echo "[$(date '+%F %T')] $*"; }

# Check if already mounted
if mountpoint -q "$MOUNTPOINT"; then
  log "INFO: $MOUNTPOINT is already mounted — nothing to do."
  exit 0
fi

# Ensure mountpoint directory exists
sudo mkdir -p "$MOUNTPOINT"

# Attempt mount
if sudo mount "$DEVICE" "$MOUNTPOINT"; then
  log "OK: Mounted $DEVICE at $MOUNTPOINT"
else
  log "ERROR: Failed to mount $DEVICE at $MOUNTPOINT"
  exit 1
fi

# Show what is now mounted there
df -h "$MOUNTPOINT"

LVM 소개: 물리 볼륨, 볼륨 그룹 및 논리 볼륨

LVM (논리 볼륨 관리자)은 원시 블록 장치와 파일 시스템 사이에 유연한 추상화 계층을 추가합니다. 3단계 계층 구조는 다음과 같습니다.

  • 물리 볼륨 (PV) — pvcreate로 초기화한 원시 디스크 또는 파티션입니다.
  • 볼륨 그룹 (VG) — 하나 이상의 PV를 vgcreate로 하나의 풀로 결합한 것입니다.
  • 논리 볼륨 (LV) — VG에서 lvcreate로 만든 가상 파티션이며, 여기에 파일 시스템을 생성하고 마운트합니다.

가장 큰 장점은 마운트 해제 없이 온라인 상태에서 LV를 확장할 수 있고, 다시 포맷하지 않고도 VG에 새 디스크를 추가할 수 있다는 점입니다. 따라서 LVM은 운영 환경의 스토리지 자동화에 필수적입니다.

검사 명령은 pvs, vgs, lvs와 이에 대응하는 자세한 출력 명령인 pvdisplay, vgdisplay, lvdisplay입니다.

LVM 볼륨 생성 스크립트 작성하기

LVM 설정 자동화는 엄격한 순서인 pvcreate → vgcreate → lvcreate → mkfs → mount를 따릅니다. 다음 단계는 이전 단계가 성공한 경우에만 실행되어야 하므로 set -euo pipefail을 사용하고 각 명령의 출력을 검증해야 합니다.

  • pvcreate를 호출하기 전에 대상 디스크에 기존 파티션 테이블이 없는지 항상 확인합니다.
  • 비대화형 스크립트에서 대화형 프롬프트를 표시하지 않으려면 -y 플래그를 사용합니다.
  • -L(고정 크기) 또는 남은 공간 전체를 사용하는 -l 100%FREE를 지정합니다.
  • mkfs 실행 후에는 LV의 장치 경로인 /dev/<vgname>/<lvname>을 사용합니다.
#!/usr/bin/env bash
# Automate LVM setup: PV -> VG -> LV -> mkfs -> mount
set -euo pipefail

DISK='/dev/sdc'          # raw disk, no existing partitions
VG_NAME='vg_appdata'
LV_NAME='lv_appdata'
LV_SIZE='10G'
MOUNTPOINT='/mnt/appdata'
FSTYPE='xfs'

echo "[1/6] Initializing Physical Volume on $DISK"
sudo pvcreate -y "$DISK"

echo "[2/6] Creating Volume Group: $VG_NAME"
sudo vgcreate "$VG_NAME" "$DISK"

echo "[3/6] Creating Logical Volume: $LV_NAME (${LV_SIZE})"
sudo lvcreate -y -L "$LV_SIZE" -n "$LV_NAME" "$VG_NAME"

echo "[4/6] Formatting as $FSTYPE"
sudo mkfs."$FSTYPE" "/dev/$VG_NAME/$LV_NAME"

echo "[5/6] Mounting at $MOUNTPOINT"
sudo mkdir -p "$MOUNTPOINT"
sudo mount "/dev/$VG_NAME/$LV_NAME" "$MOUNTPOINT"

echo "[6/6] Done. Disk usage:"
df -h "$MOUNTPOINT"

# Show LVM summary
vgs && lvs

온라인 상태에서 논리 볼륨 확장하기

LVM의 가장 강력한 기능 중 하나는 온라인 크기 조정입니다. 즉, 논리 볼륨이 마운트되어 사용 중인 동안 논리 볼륨과 파일 시스템을 확장할 수 있습니다. 작업 순서는 다음과 같습니다.

  1. lvextend로 LV를 확장합니다(-r 플래그를 사용하면 같은 단계에서 파일 시스템 크기도 조정됩니다).
  2. -r을 사용하지 않는 경우 파일 시스템 크기를 별도로 조정합니다. ext4에는 resize2fs, xfs에는 xfs_growfs를 사용합니다.

중요한 제약 사항은 다음과 같습니다.

  • xfs는 확장만 가능하고 축소할 수 없습니다. 용량을 신중하게 계획해야 합니다.
  • ext4는 축소할 수 있지만 마운트 해제된 상태에서만 가능합니다.
  • 확장하기 전에 vgdisplay -s로 VG에 여유 공간이 있는지 항상 확인합니다.
#!/usr/bin/env bash
# Extend an LV and its xfs filesystem online
set -euo pipefail

VG_NAME='vg_appdata'
LV_NAME='lv_appdata'
EXTEND_BY='5G'
LV_DEV="/dev/$VG_NAME/$LV_NAME"

# Confirm VG has enough free space
FREE_GB=$(vgs --noheadings --units g -o vg_free "$VG_NAME" | tr -d ' g')
echo "VG free space: ${FREE_GB}G"
if (( $(echo "$FREE_GB < 5" | bc -l) )); then
  echo 'ERROR: Not enough free space in VG' >&2
  exit 1
fi

echo "Extending LV by $EXTEND_BY..."
sudo lvextend -L "+${EXTEND_BY}" "$LV_DEV"

echo 'Growing xfs filesystem online...'
sudo xfs_growfs "$LV_DEV"

echo 'New size:'
df -h "$LV_DEV"
lvs "$LV_DEV"

파일 시스템 생성 및 포맷하기

파티션을 나누거나 LVM을 설정한 후에는 블록 장치에 파일 시스템을 생성하여 포맷해야 합니다. Linux 관리에서 일반적으로 선택하는 파일 시스템은 다음과 같습니다.

  • ext4 — 성숙하고 저널링을 지원하며 축소할 수 있습니다. 많은 배포판에서 기본값입니다(mkfs.ext4).
  • xfs — 성능이 높고 대용량 파일과 병렬 입출력에 적합합니다. RHEL/CentOS에서 기본값입니다(mkfs.xfs).
  • btrfs — 기록 중 복사를 사용하며 스냅샷 기능이 기본 제공됩니다(mkfs.btrfs).
  • tmpfs — RAM을 기반으로 하며 mkfs 없이 fstab에 지정합니다.

장치를 LABEL=로 fstab에서 UUID의 대체 수단으로 참조할 수 있도록 항상 의미 있는 파일 시스템 레이블을 설정합니다(-L 플래그).

#!/usr/bin/env bash
# Format a partition and assign a label; print resulting UUID
set -euo pipefail

PARTITION='/dev/sdb1'
FSTYPE='ext4'
LABEL='appdata'

# Safety check: refuse to format a currently mounted device
if findmnt --source "$PARTITION" > /dev/null 2>&1; then
  echo "ERROR: $PARTITION is currently mounted. Unmount first." >&2
  exit 1
fi

echo "Formatting $PARTITION as $FSTYPE with label '$LABEL'..."
sudo mkfs."$FSTYPE" -L "$LABEL" -F "$PARTITION"

# Retrieve and display the new UUID
NEW_UUID=$(sudo blkid -s UUID -o value "$PARTITION")
echo "Formatted successfully."
echo "Label : $LABEL"
echo "UUID  : $NEW_UUID"
echo "Use this in fstab: UUID=$NEW_UUID  /mnt/$LABEL  $FSTYPE  defaults,nofail  0  2"

autofs로 NFS 마운트 자동화하기

네트워크 파일 시스템의 경우 NFS 서버에 일시적으로 연결할 수 없으면 fstab을 사용한 부팅 시 마운트로 인해 지연이나 실패가 발생할 수 있습니다. autofs는 필요할 때 마운트하고 시간 제한 후 마운트 해제하여 이 문제를 해결합니다.

  • 마스터 맵: /etc/auto.master — 마운트 지점 디렉터리와 맵 파일을 정의합니다.
  • 직접 맵: /etc/auto.nfs — 각 하위 디렉터리에 대한 옵션과 NFS 서버 경로를 지정합니다.
  • 변경 후 systemctl reload autofs로 다시 불러옵니다.
  • 접근하면 구성된 디렉터리 아래에 마운트가 자동으로 나타납니다.

스크립트에서는 NFS 공유 목록을 바탕으로 맵 파일을 동적으로 생성한 다음 autofs를 다시 불러올 수 있습니다. 이는 여러 호스트에 공유 스토리지를 프로비저닝할 때 유용합니다.

#!/usr/bin/env bash
# Generate an autofs NFS map file from a share list and reload autofs
set -euo pipefail

NFS_SERVER='192.168.1.50'
AUTO_MAP='/etc/auto.nfs'
AUTO_MASTER='/etc/auto.master'
MOUNT_BASE='/nfs'

# Define shares: localname:remote_path
declare -A SHARES=(
  [homes]='/export/homes'
  [media]='/export/media'
  [backups]='/export/backups'
)

# Write map file
{
  echo '# Generated by disk-automation script'
  for localname in "${!SHARES[@]}"; do
    remote="${SHARES[$localname]}"
    echo "$localname  -rw,soft,timeo=30  ${NFS_SERVER}:${remote}"
  done
} | sudo tee "$AUTO_MAP" > /dev/null

echo "Wrote $AUTO_MAP"

# Ensure master map references this file
if ! grep -qF "$AUTO_MAP" "$AUTO_MASTER"; then
  echo "$MOUNT_BASE  $AUTO_MAP" | sudo tee -a "$AUTO_MASTER" > /dev/null
  echo "Updated $AUTO_MASTER"
fi

sudo systemctl reload autofs && echo 'autofs reloaded'

안전한 백업을 위한 LVM 스냅샷

LVM 스냅샷은 논리 볼륨의 특정 시점 복사본을 제공하므로, 마운트 해제 없이 사용 중인 파일 시스템을 일관된 상태로 백업할 수 있습니다. 스냅샷은 기록 중 복사를 사용하여 생성 시점의 상태를 캡처합니다.

  • 생성: lvcreate -s -n lv_snap -L 2G /dev/vg_data/lv_data
  • 스냅샷을 읽기 전용으로 마운트하여 백업: mount -o ro /dev/vg_data/lv_snap /mnt/snap
  • 스냅샷 마운트 지점을 대상으로 rsync 또는 tar를 실행합니다.
  • 백업 후 스냅샷 제거: umount /mnt/snap && lvremove -f /dev/vg_data/lv_snap

스냅샷 크기는 원본 LV의 10~20%로 유지합니다. 스냅샷이 가득 차면 무효화되므로 lvs -o lv_name,snap_percent로 모니터링합니다.

#!/usr/bin/env bash
# Create an LVM snapshot, back up via tar, then remove snapshot
set -euo pipefail

VG='vg_appdata'
ORIGIN_LV='lv_appdata'
SNAP_LV='lv_appdata_snap'
SNAP_SIZE='2G'
SNAP_MOUNT='/mnt/snap_backup'
BACKUP_DEST='/var/backups/appdata'
DATESTAMP=$(date +%Y%m%d_%H%M%S)

trap 'sudo umount "$SNAP_MOUNT" 2>/dev/null; sudo lvremove -f "/dev/$VG/$SNAP_LV" 2>/dev/null' ERR EXIT

echo '[1] Creating snapshot...'
sudo lvcreate -s -n "$SNAP_LV" -L "$SNAP_SIZE" "/dev/$VG/$ORIGIN_LV"

echo '[2] Mounting snapshot read-only...'
sudo mkdir -p "$SNAP_MOUNT"
sudo mount -o ro "/dev/$VG/$SNAP_LV" "$SNAP_MOUNT"

echo '[3] Archiving to backup destination...'
sudo mkdir -p "$BACKUP_DEST"
sudo tar -czf "$BACKUP_DEST/appdata_${DATESTAMP}.tar.gz" -C "$SNAP_MOUNT" .

echo '[4] Cleaning up snapshot...'
sudo umount "$SNAP_MOUNT"
sudo lvremove -f "/dev/$VG/$SNAP_LV"

echo "Backup complete: $BACKUP_DEST/appdata_${DATESTAMP}.tar.gz"

지식 확인: 안전한 fstab 및 마운트 자동화

이 과에서 다룬 안전한 디스크, 파일 시스템 및 마운트 자동화 방법에 대한 이해도를 확인해 보세요.

과정 요약: 디스크, 파일 시스템 및 마운트 자동화

이 과에서는 Linux 시스템에서 안전하고 스크립트로 실행할 수 있는 디스크 및 스토리지 관리를 위한 완전한 도구 모음을 구축했습니다. 핵심 내용은 다음과 같습니다.

  • 먼저 검사하기: lsblk, blkid, df, du를 사용하면 변경하기 전에 필요한 정보를 얻을 수 있습니다.
  • fstab 원칙: 항상 UUID를 사용하고, 항상 nofail을 포함하며, 편집하기 전에 항상 백업하고, findmnt --verify로 검증합니다.
  • 안전한 마운트: 마운트하기 전에 mountpoint -q로 확인하고, logger로 기록하며, 사용 중인 장치 오류를 lsof로 처리합니다.
  • LVM의 강점: PV → VG → LV 파이프라인을 사용하면 서비스 중단 없이 온라인 확장과 스냅샷 기반 백업을 수행할 수 있습니다.
  • 파일 시스템 선택의 중요성: 성능에는 xfs(확장만 가능), 유연성에는 ext4(오프라인에서 축소 가능), 스냅샷 중심 작업에는 btrfs를 사용합니다.
  • 필요할 때 NFS 사용: autofs는 네트워크 공유에 접근할 때만 마운트하여 부팅 지연을 방지합니다.
  • 스냅샷 백업: LVM 스냅샷은 일관된 온라인 백업을 제공하지만, 항상 snap_percent를 모니터링하고 백업 후 즉시 스냅샷을 제거해야 합니다.

이러한 패턴을 결합하면 검색, 프로비저닝, 마운트, 크기 조정 및 백업에 이르는 전체 스토리지 수명 주기를 안정적으로 자동화할 수 있습니다.

자주 묻는 질문

“디스크, 파일 시스템 및 마운트 자동화” 강의는 무료인가요?

네 — “디스크, 파일 시스템 및 마운트 자동화” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

“디스크, 파일 시스템 및 마운트 자동화”에서 뭘 배우나요?

블록 장치를 검사하고 fstab 항목을 관리하며 LVM 및 마운트 작업을 안전하게 스크립트로 처리합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“디스크, 파일 시스템 및 마운트 자동화” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 사용자 및 그룹 프로비저닝 자동화
  2. systemd 서비스 제어 및 유닛 파일 작성
  3. 디스크, 파일 시스템 및 마운트 자동화
  4. 시스템 상태 점검 및 알림 스크립트 구축
← DevOps Bootcamp(으)로 돌아가기