728x90
반응형

7z 파일 압축 해제 방법 

  • 압축 해제 방벙 
#7z 파일 압축 해제
7z x 파일명.7z

#특정 폴더에 압축 해제
7z x 파일명.7z -o/경로/디렉토리

#압축 해제 시 기존 파일 덮어쓰기 없이 진행
7z x 파일명.7z -o/경로/디렉토리 -aos

#암호가 걸린 7z 파일 압축 해제방법
7z x 파일명.7z -p비밀번호

# 압축된 파일 내부 목록 확인
7z l 파일명.7z
  • 에러발생시 팩키지 설치 필요 
Last metadata expiration check: 3:26:19 ago on Mon Feb 24 17:53:46 2025.
No match for argument: p7zip
No match for argument: p7zip-plugins Error: Unable to find a match: p7zip p7zip-plugins
#EPEL 저장소를 활성화
sudo dnf install -y epel-release

#설치
sudo dnf install -y p7zip p7zip-plugins

 

7z 파일 압축  방법 

  • 압축 방법 
#기본 7z 압축 방법
#7z a 압축파일명.7z 파일명

7z a archive.7z myfile.txt

#여러 개의 파일을 압축
#7z a archive.7z 파일1 파일2 디렉토리
7z a mydata.7z file1.txt file2.txt folder1/

#특정 확장자의 파일만 압축
7z a archive.7z *.txt

#암호 설정  압축
#7z a -p비밀번호 archive.7z 파일명
7z a -p1234 secret.7z confidential.txt

 

 

 

728x90
반응형
728x90
반응형
  • 리눅스환경 에서 날짜를 변경하는 방법에 대해 설명 합니다. 
  • Rocky Linux 환경에서는 Centos 에서 지원하는 rdate 를 더이상 지원하지 않는다 
  • Rokcy Lunux 에서 시간을 변경하는 방법으로 timedatectl  명령을 사용하여 시간을 변경할수 있다 
  • timedatectl 명령을 통해 현재 서버의 날짜와 시간을 변경하는 방법에 대해 알아보겠습니다. 

timedatectl  설명

  • 현재시간을 확인하고 임으로 날짜 및 변경하는 방법은 아래 작성한 내용과 같다. 
  • 단  임으로 시간 병경후 NTP  동기화 설정시 바로 현재 시간으로 동기화 되지 않는 이유는 
  • NTP 가 시간이 일정 간격으로 서서히 조정되도록 설계 되어 있어 바로 현재 시간이 적용 되지 않는다고 한다. 
  • 바로 현재 시간으로 동기화를 하기 위해서는 chrony 나 ntpd(Rocky Linux 에서는 지원하지 않음) 를 이용해서 현재 시간으로 업데이트 할수 있다 . 

timedatectl  기능 

#현재 시간 확인 하기
timedatectl


#시간대 설정방법 (ex: 서울):
timedatectl set-timezone Asia/Seoul


#직접 날짜와 시간 설정  하기
#timedatectl set-time 'YYYY-MM-DD HH:MM:SS'
timedatectl set-time '2024-11-10 15:30:00'

#NTP(Network Time Protocol) 동기화 활성화
timedatectl set-ntp true
#timedatectl set-ntp false

 

chrony 사용법 

  • 설치 및 서비스 시작 방법
#설치
dnf install chrony

#서비스 시작
systemctl enable --now chronyd

#서버시간 즉시 시간 동기화 
chronyc -a makestep

 

 

시간 변경 방법

  • ntp 동기화 설정이 되어있다면 임으로 시간 변경을 할수 없다 .
    • Failed to set time: Automatic time synchronization is enabled 발생
  • timedatectl set-ntp false 를 통해  ntp 동기화 설정을 꺼두고 시간 변경이 완료 된후 현재 시간으로 
  • 시간으로 동기화 하고 싶다면 timedatectl set-ntp true 이후 chronyc 서비스를 활성화 시키면 된다. 
[root@rocky9.4:/root]$ date
Tue Nov 12 13:43:48 KST 2024
[root@rocky9.4:/root]$ timedatectl set-time '2023-11-10 15:30:00'
Failed to set time: Automatic time synchronization is enabled
[root@rocky9.4:/root]$  timedatectl set-ntp false
[root@rocky9.4:/root]$ timedatectl set-time '2023-11-10 15:30:00'
[root@rocky9.4:/root]$ date
Fri Nov 10 15:30:01 KST 2023
[root@rocky9.4:/root]$ timedatectl set-ntp true
[root@rocky9.4:/root]$ date
Fri Nov 10 15:30:06 KST 2023
[root@rocky9.4:/root]$ chronyc -a makestep
200 OK
[root@rocky9.4:/root]$ date
Fri Nov 10 15:30:10 KST 2023
[root@rocky9.4:/root]$ systemctl enable --now chronyd
[root@rocky9.4:/root]$ date
Tue Nov 12 13:44:20 KST 2024
[root@rocky9.4:/root]$ 

 

 

 

728x90
반응형
728x90
반응형

Rocky  리눅스 호스트 네임 변경 방법 

현재 Hostname 정보를 확인 합니다.

hostnamectl

 

[root@localhost.localdomain:/root]$ hostnamectl
   Static hostname: (unset)                           
Transient hostname: localhost
         Icon name: computer-desktop
           Chassis: desktop 🖥️
        Machine ID: 3e35814fabc440c3b52a0d066c4cb597
           Boot ID: 3cbdfef1a6dc4dbfb22d2356fd23fce8
  Operating System: Rocky Linux 9.4 (Blue Onyx)       
       CPE OS Name: cpe:/o:rocky:rocky:9::baseos
            Kernel: Linux 5.14.0-427.13.1.el9_4.x86_64
      Architecture: x86-64
   Hardware Vendor: Gigabyte Technology Co., Ltd.
    Hardware Model: B360M-D3H
  Firmware Version: F11
[root@localhost.localdomain:/root]$ 

 

변경할 Hostname 을 설정 합니다. 

 

# hostname [변경할 hostname]
hostname rocky9

 

Hostname 영구적으로 변경 

# hostnamectl set-hostname [new-hostname]
hostnamectl set-hostname rocky9.4

 

/etc/hostname 변경 

[root@rocky9.4:/root]$ vi /etc/hostname
rocky9.4

 

Rocky  리눅스 방화벽 해제 

#방화벽 중지 
systemctl stop firewalld.service 

#방화벽 영구 비활성화
systemctl disable firewalld.service 

#방화벽 상태 확인 
status firewalld

#방화벽 활성화
#systemctl start firewalld.service

 

[root@rocky9.4:/root]$ systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:firewalld(1)

Nov 05 09:33:36 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 05 09:33:36 localhost systemd[1]: Started firewalld - dynamic firewall daemon.
Nov 06 19:27:56 rocky9.4 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Nov 06 19:27:56 rocky9.4 systemd[1]: firewalld.service: Deactivated successfully.
Nov 06 19:27:56 rocky9.4 systemd[1]: Stopped firewalld - dynamic firewall daemon.

 

SSH Root 로그인하는 접속허용방법

  • Rocky 리눅스에서는 ssh 접속시  기본적으로 ROOT 접속을 허용 하지 않는다.
  • root 로 ssh 접속하기 위해서는 아래의 수정 사항이 필요하다.
  • /etc/ssh/sshd_config 파일을 수정 하여 PermitRootLogin yes 를 추가한다. 
  • 이후 ssh 를 재시작 한다. 
#vi /etc/ssh/sshd_config
# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes

#ssh 데몬 재시작
systemctl restart sshd

 

728x90
반응형

'06.OS > Linux' 카테고리의 다른 글

[Rocky] 파일 압축 /해제 방법  (0) 2025.02.24
[Linux]Rocky 9.4 시간 변경  (0) 2024.11.13
[Rocky]Linux FileSystem Mount 정보 확인하기  (0) 2024.11.09
[문자열 검색] 문자열 찾기 방법  (0) 2024.11.08
[Linux]Curl 사용 방법  (1) 2024.09.26
728x90
반응형
  • 리눅스에 추가된 디스크가  Mount 되었는지 확인하는 방법에 대해 설명 합니다. 
  • mount -l 명령을 통해 확인을 해볼수 있지만 확인하는게 불편하고 가독성도 떨어집니다. 
  • findmnt 는 mount 명령보다 사용자가 보기쉽게 마운트된 디스크 정보를 가독성 있게 출력 해줍니다. 

findmnt 사용 방법 

  • findmnt 명령은  mount, /etc/fstab, /proc/mounts  정보를 트리 형태로 한번에 제공하는 명령입니다. 
  • 아랯 추가된 디스크 정보에 대해 현재 Mount 된 디스크 정보를 확인하는 방법에 대해 설명 합니다. 
fdisk -l
lsblk
mount -l 
df -Th

 

 

기본 사용법

#마운트된 모든 파일 시스템이 트리 구조로 표시 함.
findmnt

 

특정 파일 시스템 조회

findmnt -t ext2,xfs

마운트된 디렉토리 디스크 정보 조회

findmnt /home
findmnt /data

디스크 마운트 정보 확인 

findmnt /dev/nvme0n1 

findmnt /dev/sdc1

출력 헤더 지정 

findmnt -o TARGET,SOURCE,FSTYPE

 

추가 ) 마운트 안된 디스크 마운트 하기 

#디스크 포멧
mkfs.ext2 /dev/sda    
mkfs.ext2 /dev/sdb    

#마운트할 디렉토리 생성 
mkdir /ssd
mkdir /hdd

#mount 
mount -t ext2 /dev/sda /ssd
mount -t ext2 /dev/sdb /hdd

#/etc/fstab 적용 (디스크 마운트 영구 적용) 
/dev/sda              /ssd                  ext2    defaults        0 0
/dev/sdb              /hdd                  ext2    defaults        0 0

 

추가 증설한 Disk 에대해 파티셔닝 하는 방법은 아래 글을 확인 하세요 

https://growupcoding.tistory.com/84

 

[Linux] 하드 디스크 추가(mount) 하기

리눅스 하드 디스크 추가 방법 리눅스에 새로운 하드디스크 추가시 마운트 하는 방법에 대해 알아 보겠습니다. umount umount /dev/sda1 하드디스크 마운트 정보 확인 (fdisk -l ) [root@centos7:/root]$ fdisk -l D

growupcoding.tistory.com

 

728x90
반응형
728x90
반응형
  • 문자열을 찾는 방법에 대해 작성 합니다. 

Grep 을 사용한 문자열 찾기 

  • 아래 테스트 로그를 이용해 문자열을 찾는 방법을 알아본다 .
  • test.log 파일 내용
--- 0 Error in 17 cases - ._130_line_3729_case
--- 0 Warning in 18 cases - ._143_line_7455_case
--- 0 Error in 19 cases - ._147_line_7455_case
--- 0 fails in 17 cases - ._130_line_3729_case
--- 0 Warning in 18 cases - ._143_line_7455_case
--- 0 Info in 19 cases - ._147_line_7455_case
--- 0 Info in 19 cases - ._148_line_7455_case
--- 0 Info in 19 cases - ._149_line_7459_case
--- 0 Info in 19 cases - ._150_line_7459_case
--- 0 Info in 19 cases - ._151_line_7459_case
--- 0 Info in 19 cases - ._152_line_7459_case

 

대소문자 구분없이 문자열 라인 찾기

# test.log 파일 에서 Error 또는 Warning 문자를 포함한 라인을 출력 하는 예제이다.
grep -in -E "Error|Warning" test.log

 

 위 예제에서 사용한 옵션은 아래와 같다. 

  • -i: 대소문자 구분 없이 검색
  • -n: 라인 번호 출력
  • -E: 확장된 정규 표현식 사용 
  • "Error|Warning": Error 또는 Warning 을 의미하는 정규 표현식 (둘 중 하나가 포함된 라인을 찾음)
  • test.log: 검색할 파일명

찾은 문자열을 분리해서 특정 숫만 출력 하기 

  • 정규식 과 sed 사용 
grep -o 'line_[0-9]\+_case' test.log | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g'
$ grep -o 'line_[0-9]\+_case' test.log | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g'
3729
7455
7455
3729
7455
7455
7455
7459
7459
7459
7459

 

찾은 문자열을 중복 제거하고 정렬 하기 

  • 정규식 과 sed 사용 + sort (정렬) + uniq(중복 제거) 
grep -o 'line_[0-9]\+_case'  test.log  | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g' | sort -n | uniq
$ grep -o 'line_[0-9]\+_case'  test.log  | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/g' | sort -n | uniq
3729
7455
7459

 

 

Grep 옵션 

옵션설명예제

-r 하위 디렉토리까지 포함하여 검색 (재귀 검색) grep -r "error" /var/log
-i 대소문자 구분 없이 검색 grep -i "error" logfile.txt
-H 검색 결과에 파일명을 출력 grep -H "error" logfile.txt
-n 검색된 문자열의 행 번호를 출력 grep -n "error" logfile.txt
-c 해당 문자열이 포함된 라인의 개수 출력 grep -c "error" logfile.txt
-l 해당 문자열이 포함된 파일의 이름만 출력 grep -l "error" *.log
-v 특정 문자열이 포함되지 않은 라인 출력 (반대 검색) grep -v "debug" logfile.txt
-w 단어 단위로 검색 (부분 일치 방지) grep -w "error" logfile.txt

 

 

 

728x90
반응형
728x90
반응형

Curl (client url) 이란?

curl은 Linux, Unix, Windows 등 다양한 운영 체제에서 사용 가능한 명령줄 도구로, URL을 통해 데이터를 전송하거나 다운로드하는 데 사용됩니다. HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, POP3, IMAP, SMTP 등 다양한 프로토콜을 지원 한다. 

 

 

Crul 주요 기능 

  • 웹 요청 및 응답 처리: 웹 서버에 요청을 보내고 응답 테스트를 진행 할때 사용 한다.
  • 파일 다운로드 및 업로드: curl을 사용해 원격 서버에서 파일을 다운로드하거나, 서버로 파일을 Upload 시킬수 있다.
  • API 테스트: REST API 또는 기타 HTTP 기반 API를 테스트를 할수 있다. 

Crul 설치

# Ubuntu
sudo apt update
sudo apt install curl

# Rocky Linux
dnf install curl 

#CentOS
yum install curl

curl 정보 확인 

#버전 정보 확인 
crul -v 

# 테스트사용 방법 확인 
crul --manaul

#사용 옵션 확인 
crul -help

 

curl 기본 사용 방법

  • curl [옵션] [URL]

리모트 서버 포트 통신 확인 (방화벽 상태 확인)

  • ssh 22번 포트 정상 접속 확인
 curl -v telnet 192.168.116.210:22

  • 방화벽에 포트가 막혀 있거나 접속이 불가 할경우 아래 처럼 연결이 거부 된다.

 

웹 페이지  호출

curl http://google.com

파일 다운로드

  • -O 옵션은 URL에서 파일을 다운로드하고, 원래 파일 이름으로 저장
curl -O https://example.com/file.txt

 

파일 업로드 (POST 요청)

  • -X는 HTTP 메서드를 지정하며, -F는 파일을 전송하는 옵션 이다.
curl -X POST -F "file=@/path/to/file" https://example.com/upload

 

 

주요 옵션들

  • -o [파일명]: 출력 내용을 지정한 파일로 저장.
  • -O: URL에서 추출한 이름으로 파일을 저장.
  • -I: 헤더 정보만 출력.
  • -X: HTTP 메서드를 지정 (GET, POST, PUT, DELETE 등).
  • -d: 데이터를 전송 (POST 요청).
  • -H: 헤더 정보 추가.
  • -F: 파일 전송에 사용.
  • -u: 사용자 이름과 비밀번호로 인증.
  • --proxy: 프록시 서버를 통해 요청.
  • -k: SSL 인증서 오류 무시.

 

728x90
반응형
728x90
반응형

리눅스 웹 콘솔 

  • 웹 콘솔 기능은 Red Hat Enterprise Linux (RHEL) 웹 콘솔은 RHEL 8부터 기본 기능으로 포함되었습니다. 이 웹 콘솔은 Cockpit 프로젝트에 기반을 두고 있으며, 이를 통해 웹 기반의 시스템 관리 인터페이스를 제공하고 있습니다.

접근 방법 및 설치 

dnf install cockpit
systemctl enable --now cockpit.socket

firewall-cmd --add-service=cockpit --permanent
firewall-cmd --reload

 

 

WebConsole Root 접속 방법 

vi /etc/cockpit/disallowed-users 파일 편집 -> root 주석 

[root@my-rocky9 ~]# vi /etc/cockpit/disallowed-users
# List of users which are not allowed to login to Cockpit
#root

 

WebConsole  기능 확인 

  • https://<서버의 IP 주소 또는 호스트 이름>:9090 접속 

 

녹화_2024_02_01_16_31_00_690.mp4
4.04MB

 

 

  • 포트 변경 필요시 vi /etc/systemd/system/sockets.target.wants/cockpit.socket  파일을 열어 ListenStream 포트를 변경 합니다. 
vi /etc/systemd/system/sockets.target.wants/cockpit.socket

 

728x90
반응형
728x90
반응형

리눅스 SELinux 변경 이후  리눅스 재부팅시 에러 해결 방법 

  • 부팅시 Failed to load SELinux policy, freezing. 에러 발생 

 

/etc/selinux/config   파일을 수정이후 부팅이 실패 할 경우 

[root@centos7:/root]$ cat  /etc/selinux/config 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted
[root@centos7:/root]$

 

  • 부팅 화면에서 키보드 e 를 누르고 

  • selinux=0 추가 후 재부팅
  • Ctrl + x  를 누르면 다시 부팅이 된다. 

 

 

SELinux 란? 

SELinux(보안 강화 리눅스)는 리눅스 운영 체제의 보안 기능 중 하나로, 프로세스, 파일 및 네트워크에 대한 접근을 제어하는 매커니즘입니다. SELinux는 NSA(미국 국가 안보국)와 레드햇이 공동으로 개발한 프로젝트로, 리눅스 커널에 포함되어 있습니다.

 

  • /etc/selinux/config 파라미터 설명 
    • enforcing 모드: 모든 SELinux 정책이 적용되고 보안 위반이 감지되면 해당 작업이 차단됩니다.
    • permissive 모드: SELinux는 로그를 기록하지만 작업을 차단하지는 않습니다.
    • disabled 모드: SELinux가 완전히 비활성화됩니다.
728x90
반응형

'06.OS > Linux' 카테고리의 다른 글

[Linux]Curl 사용 방법  (1) 2024.09.26
[Rocky] Rocky Linux 웹 콘솔  (0) 2024.06.07
[Linux] Centos7.9 NFS 설치  (0) 2024.03.12
[CentOS7] LVM으로 구성된 ROOT 디스크 증설  (1) 2024.01.30
[Linux] 하드 디스크 추가(mount) 하기  (0) 2022.05.04
728x90
반응형

NFS 란? 

NFS(Network File System)는 여러 컴퓨터 간에 파일을 공유하기 위한 분산 파일 시스템 프로토콜입니다. NFS는 클라이언트-서버 모델을 기반으로 하며, 클라이언트는 네트워크를 통해 NFS 서버의 파일 시스템에 액세스할 수 있습니다. 이를 통해 여러 사용자가 동일한 파일이나 디렉터리를 공유하고, 파일 시스템 자원을 효율적으로 활용할 수 있습니다.

 

NFS 동작 원리

  1. 서버 설정: 먼저 파일을 공유할 서버에서 NFS를 설정해야 합니다. 서버의 파일 시스템 중 NFS로 공유하고자 하는 디렉터리를 선택하고, 이 디렉터리를 /etc/exports와 같은 설정 파일에 등록합니다. 이 설정 파일은 클라이언트에게 공유 디렉터리의 경로와 액세스 권한을 제공합니다.
  2. 클라이언트 마운트: NFS 클라이언트에서는 NFS 서버의 공유 디렉터리를 마운트하여 사용할 수 있습니다. 클라이언트에서는 NFS 마운트 포인트를 생성하고, 이를 통해 서버의 공유된 디렉터리에 액세스할 수 있습니다.

 

NFS 동작 원리

  1. 파일 공유: NFS는 여러 사용자가 동일한 파일이나 디렉터리를 공유할 수 있도록 합니다. 이를 통해 여러 사용자가 동일한 파일에 접근하여 작업할 수 있습니다.
  2. 중앙 관리: NFS를 사용하면 파일이 중앙 서버에 저장되므로 관리 및 유지 보수가 간단해집니다. 파일의 한 복사본을 유지하므로 데이터 일관성도 쉽게 유지할 수 있습니다.
  3. 데이터 백업: NFS를 사용하여 클라이언트에서 중앙 서버로 데이터를 백업할 수 있습니다. 이를 통해 중앙화된 백업 시스템을 유지하고, 데이터를 보호할 수 있습니다.
  4. 클라우드 스토리지: 클라우드 환경에서도 NFS는 파일 공유 및 저장에 널리 사용됩니다. 클라우드에서 NFS를 사용하면 여러 가상 머신 간에 데이터를 공유하고, 파일 시스템을 유연하게 확장할 수 있습니다.

 

NFS  서버 설치 

centos 7.9 환경에서 NFS 설치 하는 방법에 대해 알아보겠습습니다. 

 

nfs 패키지 설치 

#설치 유무 확인
rpm -qa | grep nfs-utils

#nfs 팩키지 설치 
yum install nfs-utils

 

서비스 시작 

systemctl enable nfs-server
systemctl start nfs-server

 

서비스 상태 확인 

[root@mysvr:/root]$ systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since 화 2024-03-12 16:20:39 KST; 23s ago
  Process: 2523 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 2506 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 2504 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 2506 (code=exited, status=0/SUCCESS)
    Tasks: 0
   CGroup: /system.slice/nfs-server.service

 3월 12 16:20:39 mysvr systemd[1]: Starting NFS server and services...
 3월 12 16:20:39 mysvr systemd[1]: Started NFS server and services.

 

마운트 디렉토리 생성 

mkdir share_disk

chmod 777 /share_disk

 

마운트 설정

  • /etc/exports 파일 수정 및 적용 
  • 수정된 파일 내용 적용: exportfs -r 
/share_disk 192.168.116.*(rw,no_root_squash,sync)

 

  • /share_disk: 공유할 디렉터리의 경로입니다.
  • *: 모든 클라이언트에게 액세스를 허용함을 나타냅니다.
  • rw: 읽기 및 쓰기 액세스를 허용하는 옵션입니다.
  • sync: 변경 사항을 디스크에 즉시 동기화하는 옵션입니다.
  • no_root_squash: 클라이언트의 root 사용자가 파일에 액세스할 때 해당 사용자를 시스템의 root로 매핑하지 않음을 나타내는 옵션입니다.
  • async: 변경 사항을 비동기적으로 디스크에 동기화합니다.
  • no_root_squash: 클라이언트의 root 사용자를 서버의 root 사용자로 매핑하지 않습니다.
  • root_squash: 클라이언트의 root 사용자를 서버의 nfsnobody 사용자로 매핑합니다.
  • all_squash: 모든 사용자를 서버의 nfsnobody 사용자로 매핑합니다.

적용된 마운트 설정 확인

showmount -e
exportfs -v

NFS 클라이언트 설정

 

마운트 디렉토리 생성 

 mkdir nfs_share_disk
 chmod 777 nfs_share_disk

 

NFS 설치 

#설치 유무 확인
rpm -qa | grep nfs-utils

#nfs 팩키지 설치 
yum install nfs-utils

#서비스 시작 
systemctl enable nfs-server
systemctl start nfs-server

 

마운트

mount -t nfs 192.168.116.10:/share_disk /nfs_share_disk

 

[root@mysvr:/root]$ df -Th
Filesystem                 Type      Size  Used Avail Use% Mounted on
devtmpfs                   devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                      tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                      tmpfs     1.9G   13M  1.9G   1% /run
tmpfs                      tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root    xfs        26G  6.3G   20G  25% /
/dev/sda1                  xfs      1014M  185M  830M  19% /boot
/dev/mapper/centos-home    ext2       25G   15G  9.3G  61% /home
tmpfs                      tmpfs     378M   12K  378M   1% /run/user/42
tmpfs                      tmpfs     378M     0  378M   0% /run/user/0
192.168.116.10:/share_disk nfs4       26G  6.5G   20G  25% /nfs_share_disk

 

마운트 영구 적용 (/etc/fstab)

192.168.116.10:/share_disk /nfs_share_disk nfs rw,noatime,sync 0 0

 

  • 마운트 사용 정의는 아래와 같습니다. 
<device> <mount_point> <filesystem_type> <mount_options> <dump> <pass>

 

  • <device>: 마운트할 디바이스의 경로 또는 UUID입니다. 이것은 보통 디스크 파티션 또는 네트워크 파일 시스템의 주소입니다.
  • <mount_point>: 디바이스가 마운트될 디렉터리의 경로입니다.
  • <filesystem_type>: 파일 시스템의 종류를 나타냅니다. 예를 들어, ext4, nfs, ntfs 등이 있습니다.
  • <mount_options>: 마운트 옵션을 나타냅니다. 읽기 전용으로 마운트할지 읽기/쓰기로 마운트할지 등을 정의할 수 있습니다. 
      1. rw / ro:
        • rw: 읽기/쓰기 모드로 파일 시스템을 마운트합니다.
        • ro: 읽기 전용 모드로 파일 시스템을 마운트합니다.
      2. auto / noauto:
        • auto: 부팅 시 자동으로 마운트됩니다.
        • noauto: 수동으로 마운트해야 합니다. 부팅 시 자동으로 마운트되지 않습니다.
      3. exec / noexec:
        • exec: 이 파일 시스템에서 바이너리 실행 파일을 실행할 수 있습니다.
        • noexec: 이 파일 시스템에서 바이너리 실행 파일을 실행할 수 없습니다.
      4. user / nouser:
        • user: 일반 사용자도 마운트 및 언마운트를 할 수 있습니다.
        • nouser: 일반 사용자는 마운트 및 언마운트를 할 수 없습니다. 관리자 권한이 필요합니다.
      5. sync / async:
        • sync: 변경 사항을 디스크에 즉시 동기화합니다. 안정성을 높이지만 성능이 저하될 수 있습니다.
        • async: 변경 사항을 비동기적으로 디스크에 동기화합니다. 성능을 높이지만 안정성이 낮아질 수 있습니다.
      6. defaults: 기본 마운트 옵션을 사용합니다. 일반적으로 rw, suid, dev, exec, auto, nouser, async와 같은 옵션을 포함합니다.
      7. uid, gid: 특정 사용자 ID 또는 그룹 ID에 속하는 사용자 또는 그룹에 대해 마운트된 파일 시스템을 마운트합니다.
      8. umask, dmask, fmask: 마운트된 디렉터리 또는 파일에 대한 권한 마스크를 설정합니다.
      9. noatime, relatime, strictatime: 파일 시스템에 대한 액세스 시간을 변경하는 옵션입니다. 성능을 높이기 위해 noatime을 사용할 수 있습니다.
      10. noacl, acl: Access Control Lists (ACL)를 사용할지 여부를 지정합니다.
  • <dump>: 백업 프로그램이 시스템을 백업할 때 이 파일 시스템을 백업해야 하는지 여부를 나타냅니다. 일반적으로 0으로 설정되어 있습니다.
  • <pass>: 시스템 부팅 시 파일 시스템을 체크해야 하는 순서를 나타냅니다. 일반적으로 1로 설정되어 있습니다.

 

NFS 연동 테스트 

  • 각 nfs 설치된 서버에서 파일을 생성하면 어떤 노드에서도 생성하더라도 파일을 공유할수 있게된다.

728x90
반응형
728x90
반응형

 

  • cannot create temp file for here-document: 장치에 남은 공간이 없음 에러가 발생할 경우 
  • 리눅스 용량 부족시 디스크 추가하는 방법에 대해 정리합니다. 

 => cannot create temp file for here-document: 장치에 남은 공간이 없음

현재 디스크 사용량 확인 

  • df -Th 명령을 통해 현재 사용중인 디스크 사용량을 확인합니다. 
[root@mysvr:/root]$ df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G   1% /run
tmpfs                   tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       6.0G  6.0G  3.5M 100% /
/dev/sda1               xfs      1014M  185M  830M  19% /boot
/dev/mapper/centos-home ext2       25G  8.9G   15G  38% /home
tmpfs                   tmpfs     378M  8.0K  378M   1% /run/user/42
tmpfs                   tmpfs     378M     0  378M   0% /run/user/0

 

  • lvdisplay 확인 
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                cwMNqw-gJSs-7nDO-GrRU-bgxE-FLB5-7acfhK
  LV Write Access        read/write
  LV Creation host, time localhost, 2023-03-09 07:40:48 +0900
  LV Status              available
  # open                 2
  LV Size                8.00 GiB
  Current LE             2048
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                kRPPw7-Ffr2-Bf20-CsE9-UDkt-aCdO-Y4DvFo
  LV Write Access        read/write
  LV Creation host, time localhost, 2023-03-09 07:40:48 +0900
  LV Status              available
  # open                 1
  LV Size                <6.00 GiB
  Current LE             1535
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

 

디스크 추가 

  • fdisk -l 을 통해 추가한 disk 정보를 확인 합니다. 
  • 용량 증설을 위해 hdd 를 20G 추가 했습니다. 

 

  • 추가한 디스크에 대해 파티션을 생성 합니다. 
  • fdisk /dev/sdb
[root@mysvr:/root]$ fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x8135267e.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): =>엔터
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): =>엔터
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

 

  • 파티셔닝한 디스크 /dev/sdb1 를 Physical Volume 생성 한다.
  • pvscan 이나 pvdisplay 명령을 통해 pysical volume 정보를 확인 한다. 
pvcreate  /dev/sdb1
pvscan
pvdisplay

 

  • vgextend 명령을 통해 centos 볼륨 그룹에 새로 추가한 pysical volume 를 확장 한다.
vgextend centos /dev/sdb1

 

  • lvextend 명령을 통해 부족했던 lvm 을 확장 합니다. 
lvextend /dev/mapper/centos-root -l +100%FREE

 

  • pvscan 명령을 통해 centos 으로 pv 가 추가 되었는지 확인 한다.

 

  • xfs_growfs 명령을 통해 논리 볼륨을 resizing 한다. 
    • ext4  포멧일 경울 resize2fs /dev/mapper/centos-root 수행 합니다. 
    • xfs type 에 대해  resize2fs 명령을 수행 하면 아래 처럼 에러가 발생함.

[root@mysvr:/root]$ resize2fs /dev/mapper/centos-root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-root
Couldn't find valid filesystem superblock.
[root@mysvr:/root]$ blkid /dev/mapper/centos-root
/dev/mapper/centos-root: UUID="f4704f6c-5120-4c0f-b46b-7a0c31f390e5" TYPE="xfs" 

 

  • xfs_growfs 를 수행 하지 않으면 용량 증설이 되지 않는다.
xfs_growfs /dev/mapper/centos-root

 

  • df -Th 명령을 통해 용량이 증설 되었는지 확인 
  • 6G 에서 20G 로 용량이 증설 된것을 확인 할수 있다.

 

 

728x90
반응형

+ Recent posts