관리 메뉴

제뉴어리의 모든것

2023-12-06 새로운 지식 본문

Linux

2023-12-06 새로운 지식

제뉴어리맨 2023. 12. 6. 16:41

디스크 쿼터

사용자나 그룹별로 디스크의 사용량을 제한하는 기능

 

  • 사용 목적
    • 특정 사용자, 그룹이 메모리를 과도하게 독점하는것을 방지 
    • 과도하게 사용되는 메모리를 절약 가능
  • 방법
    • 블록 단위나 아이노드의 개수를 제한
    • 사용자별 혹은 시스템별로 제한
  • 디스크 쿼터 현황 확인
    • cat /etc/fstab
  • 명령어
    • quotaon [옵션] [사용자/그룹명]
      쿼터 활성화 명령어
      • 옵션
        • -a 모든 파일시스템에 쿼터 활성화
        • -g 그룹 쿼터 활성화
        • -u 사용자 쿼터 활성화
        • -v 쿼터 적용된 시스템의 정보 출력
    • quotaoff [옵션] [사용자/그룹명]
      파일시스템에 적용된 쿼터 비활성화 명령
      • 옵션
        • -a 모든 파일시스템에 쿼터 비활성화
        • -g 그룹 쿼터 비활성화
        • -u 사용자 쿼터 비활성화
        • -v 쿼터 중지된 시스템의 정보 출력
      • quotacheck [옵션]
        모든 파일 시스템을 점검하고, 쿼터 설정 및 기록 파일 갱신하는 명령
        • 옵션
          • -a 모든 파일시스템을 검사
          • -f 디스크쿼터 파일을 강제로 갱신
          • -p 점검 결과를 출력
      • equota [옵션] [사용자/그룹명]
        사용자와 그룹에 대해 쿼터를 설정하고 변경하는 명령어
        • 옵션
          • -g 그룹 쿼터 설정
          • -u 사용자 쿼터 설정
          • -p 기존 사용자의 할당량 설정을 그대로 복사해서 적용
          • -t 유예 기간 설정 및 확인
      • setquota [옵션] [사용자/그룹명] [block soft limit] [block hard limit] [inode soft limit] [inode harad limit] [파티션 명]
        터미널에서 직접 사용자나 그룹에 쿼터를 적용하는 명령어
        • 옵션
          • -g
          • -u
          • -a
      • requota [옵션] [사용자/그룹명/파일시스템명]
        터미널에서 직접, 사용자나 그룹에 적용된 쿼터 내용을 출력 
        • 옵션
          • -g
          • -u
          • -a
      • xfs_quota [-V] [-x] [-p prog] [-c cm]...[-d project]...[path]
        eXtended File System 에서 quota를 설정하기 위한 명령어
        • 상황별 명령어
          • usrquota : 사용자 쿼터 설정
          • grpquota : 그룹 쿼터 설정
          • pquota : 특정 폴더에 대한 쿼터 설정
        • 옵션
          • -V 버전 출력
          • -x 전문가 모드
          • -p 프로젝트명 지정
          • -c 설정할 인수 설정
          • -d 프로젝트명 또는 숫자 식별자 지정

파일 시스템

  • 계층적 구조
  • 디스크의 파티션별로 하나씩 존재
  • HD나 CD-ROM 같은 물리적 저장공간을 관리하는 체계

 

  • EXT 파일 시스템 구조
    • SUPER BLOCK 
      • 파일 시스템의 정보 저장
      • 블록의 갯수, 블록 그룹 갯수, 아이노드 갯수 저장
    • Group Description Table
      • 모든 블록 그룹 정보 저장
    • Block/I-Node Bitmap 
      • 블록/아이노드 현황을 Bit를 이용하여 Map 형태로 나타낸것
    • I-Node Table 
      • 아이노드 관련 정보 저장
  • EXT 파일 시스템 종류
    • ext
      • 리눅스 초기 파일 시스템
      • 호환성 X
      • 아이노드 수정 불가
    • ext2
      • 부트 섹터, 블록 그룹 으로 구성
      • 파일 시스템 테이블 정의를 위해 아이노드란 자료구조가 쓰임
      • 파일의 데이터는 데이터 블록에 저장 됨. (각 블록의 크기는 동일)
    • ext3
      • 커널 2.4버전 부터 지원
      • 사용자가 직접 데이터 보호 유형과 보호 수준 결정 가능
      • 저널링 기능 추가 
    • ext4
      • 64비트 기억공간 제한 없앰
      • 1EB 이상 볼륜과 16TB 이상의 파일 지원
      • 지연된 할당 기능 지원
  • 파일 시스템 관련 명령어
    • fdisk [옵션] [장치명]
      파티션 생성, 수정, 제거 및 파일 시스템의 유형을 지정하는 명령어
      • 옵션
        • -l 파티션 정보와 파일 시스템 정보 출력
        • -s 특정 파일 시스템의 크기를 블록 단위로 출력

    • mkfs [옵션] [파일시스템 유형] [장치명]
      파일 시스템 생성
    • mke2fs [옵션] [파일 시스템 유형] [자치명] [블록갯수]
      mkfs 명령어의 확장 버전
      • -b 블록 크기 지정
      • -c 불량 블록 검사
      • -f 플래그먼트 크기 지정
      • -i i노드 크기 지정
      • -j ext3 파일 시스템 이상에서 저널링 기술 적용하여 생성
      • -S 슈퍼블록 복구 시 사용
      • -t 파일 시스템 타입 지정
    • fsck [옵션] [장치명]
      파일 시스템 무결성 점검과 오류 복구 명령
      • 옵션
        • -A /etc/fstab 파일에 지정된 파일 시스템 검사
        • -a 검사 후 복구 여부 묻지 않고 자동 복구
        • -P 다른 파일 시스템과 루트 파일 시스템을 병렬처리 검사
        • -R -A 옵션과 같이 사용하면 루트 파일 시스템을 제외한 모든 파일 시스템 검사
        • -r 검사 후 복구 여부 질의
        • -s fsck 동작을 시리얼화
        • -t 파일 시스템 지정
    • e2fsck
      fsck의 확장 버전 명령

    • xfs_repair
      eXtended File System을 검사 및 복구하는 명령

 

기타

  • mkfs와 mke2fs 의 차이
    mkfs 는  ext2, ext3, ext4, vfat, ntfs, xfs 과 같이 다양한 타입의 파일시스템을 지원, 그렇지만 기능은 단순
    mke2fs는 ex2, ext3, ext4 파일 시스템만 지원 하지만 보다 세밀하게 설정이 가능.    
  • fsck 명령어는 root만 사용 가능
  • fsck 명령어로 파일시스템의 점검 및 복구를 하기 위해서는 해당 저장장치를 언마이트 한 상태여야 한다.
  • /lost+found : fsck 명령어 실행시에 발생 된 오류 파일들이 저장 됨
  • nfs : 공유된 원격 호스트 파일을 로컬에서 사용할 수 있는 파일 시스템
  • cifs : 인터넷의 표준 프로토콜
  • ntfs : 윈도 NT 운영체계가 하드디스크 상에 파일을 저장하고 검색하는 사용하는 파일 시스템
  • udf : 광디스크에서 사용 되는 파일 시스템 포맷 규격
  • mount -o 옵션의 loop : CD-ROM의 이미지 파일을 마운트한다
  • history 관련 환경변수인 HISTSIZE 와 HISTFILESIZE 의 차이
    • HISTSIZE : 메모리상에 저장되는 명령어의 갯수
    • HISTFILESIZE : .bash_history 와 같은 history 내역이 저장되는 파일에 저장될 명령어의 갯수
    • 셸에 로그인 된 사용자가 명령어를 입력 하는 동안에는 메모리상에 명령어 히스토리가 남게 된다. 그리고 해당 셸의 세션이 로그아웃 된 이후 메모리상의 명령어 히스토리는 .bash_history와 같은 명령어 기록 파일에 기록되게 된다.

 

  • 셸의 명령줄이 긴 경우에 \을 이용하여 명령행 연장 가능
  • PS1 : 일반적으로 사용하는 프롬프트 (#, $)
  • PS2 : 명령이 완전히 끝나지 않을 경우 출력되는 프롬프트 (>>) 
  • 셸 프롬프트 옵션
    • \u : 사용자 명
    • \t : 24시간 단위로 시간 출력
    • \W : 현재 작업 디렉토리 출력
    • \h : 호스트명 출력
  • [ihd@09:30:21 ~] $ 프롬프트의 세팅 내역 PS1="[\u@\t \W]\$"
  • 사용자의 로그인 쉘이 무엇인지 확인 하는 명령어는?
    • echo $SHELL
    • cat /etc/passwd
    • finger -l 
  • 쉘도 프로세스이다. 그러므로 ps 로 출력되는 프로세스들 중에 쉘이 존재
  • chsh -l : 시스템에서 사용할 수 있는 쉘을 출력할때 사용하는 명령어 
  • env : 쉘의 환경변수를 확인하는 명령어
  • set : 쉘의 환경변수를 선언하는 명령어
  • chsh : 쉘을 변경하는 명령
  • /etc/shells : 리눅스에서 사용 가능한 쉘들이 정의 되어 있다
  • 명령행 편집 기능 제공하는 쉘 : bash ksh
  • 배시 쉘은 ksh와 csh 쉘의 특징이 결합되어 있다
  • bash shell은 브라이언 폭스가 개발했다
  • bourne shell 스티븐 본이 개발했
  • bash shell은 bourne shell의 기능을 개선한 것이다.
  • .bashrc : 홈디렉토리에 존재하는 해당 파일은 bash 쉘이 시작될때마다 자동으로 시작되는 스크립트이다.
    해당 파일에는 쉘의 환경설정, alias, 함수, 명령어 스크립트 등 쉘과 관련된 정보들이 저장되어 있다
  • csh 쉘 : 버클리 대학의 빌조이가 개발함
  • 명령어 자동완성 키 : Tab