리눅스 NFS 디렉토리 공유 설정
/* 리눅스 NFS 디렉토리 공유 설정 */
1. 서버설정 스크립트( nfs_server.sh)
#!/bin/bash
# 공유할 디렉토리 경로
SHARE_DIR="/data"
# NFS 패키지 설치
dnf install -y nfs-utils
# 공유 디렉토리 생성 및 권한 설정
mkdir -p $SHARE_DIR
chown nobody:nobody $SHARE_DIR
chmod 777 $SHARE_DIR
# NFS 설정 파일 수정
echo "$SHARE_DIR *(rw,sync,no_root_squash,no_subtree_check)" | tee -a /etc/exports
# rw: 읽기/쓰기 가능
# sync: 데이터 쓰기 요청을 디스크에 동기화
# no_root_squash: 클라이언트의 root 계정을 서버에서도 root로 인정
# no_subtree_check: 하위 디렉토리 경로 검사 생략
# NFS 서비스 시작 및 활성화
systemctl enable --now nfs-server
# 방화벽 설정
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --permanent --add-service=rpc-bind
# firewall-cmd --reload
# 서버에서 공유목록 확인
# exportfs -v
=======================================================
2. 클라이언트 설정 스크립트 (nfs_client.sh)
#!/bin/bash
# 서버 IP 및 공유 경로
SERVER_IP="172.17.0.2"
SERVER_SHARE="/data"
MOUNT_POINT="/data"
# NFS 패키지 설치
dnf install -y nfs-utils
# 마운트 디렉토리 생성
mkdir -p $MOUNT_POINT
# fstab 파일에 자동 마운트 설정 추가
echo "$SERVER_IP:$SERVER_SHARE $MOUNT_POINT nfs defaults 0 0" | tee -a /etc/fstab
# 디렉토리 마운트(서버아이피)
# mount -t nfs $SERVER_IP:$SERVER_SHARE $MOUNT_POINT
mount -a
echo "NFS 클라이언트 설정 완료: $MOUNT_POINT"
# 클라이언트에서 마운트 확인
mount | grep nfs
/* 서버쪽 스크립트 실행 */
chmod +x nfs_server.sh
./nfs_server.sh
======================================================================
/* 클라이언트 스크립트 실행 */
chmod +x nfs_client.sh
./nfs_client.sh
==========================================
/* 서버쪽에서 nfs서버가 정상 기동되는지 확인 */
1. 로그확인
journalctl -u nfs-server
2. 필요한 커널 모듈 로드 확인
modprobe nfs
3. NFS 서비스 재시작
systemctl restart nfs-server
/* ifconfig 명령어 없을때 설치 */
dnf install net-tools
/* 방화벽 끄기 */
systemctl stop firewalld
/* 방화벽 영구 끄기 */
systemctl disable firewalld