본문 바로가기
컴퓨터과학[3-2]/U.N.I.X

UNIX - [제7강] 기본 명령

by boolean 2016. 7. 19.
728x90

UNIX - [제7강] 기본 명령

● 파일의 압축 및 백업 ● 파일 시스템 개요와 종류

UNIX 용어정리

  • tar 아카이브
    tar는 ‘tape archive’의 약자로, 다수의 파일 또는 디렉터리를 하나의 어카이브 파일로 묶거나 반대로 어카이브 파일의 묶음을 풀기 위한 유틸리티이다. 디바이스에 어카이브를 만들 수도 있다.
  • dump 수준
    dump 명령에서 변경 분 백업(incremental backup)을 위한 덤프 수준을 의미한다. 레벨 0은 완전 백업을 의미하고, 레벨 N은 ‘N보다 작은 수준의 최근 백업’ 이후에 변경된 파일을 백업한다. 보통 0~9 사이의 정수이다.
  • 리눅스 파일 시스템
    리눅스 시스템은 하나의 루트 파일 시스템을 가지고, 많은 경우 루트 아래에 마운트되는 다른 파일 시스템도 가진다. 파일 시스템의 기본 구성단위는 블록이며, 전체적으로 슈퍼블록, inode 테이블 및 데이터 블록으로 이루어져 있다.
  • ext4
    ext3의 확장형으로 최근 리눅스 배포판에서 기본 파일 시스템으로 사용된다. 1EB 크기의 파일 시스템과 16TB 크기의 개별 파일을 지원한다. 파일 시스템의 압축과 암호화, extents 및 블록 선할당 기능을 지원한다.

요점정리

  1. 파일의 아카이브 및 압축 파일을 관리하는 방법을 설명하시오.
    • 아카이브 생성 및 풀기
      만들기 : tar cvf 아카이브명 묶을파일명...
      풀기 : tar xvf 아카이브명
      내용보기 : tar tvf 아카이브명
    • 압축 및 압축 풀기
      gzip 파일명...
      gunzip 압축파일명...
  2. 단순 백업과 수준별(다단계) 백업에 대하여 설명하시오.
    • 단순 백업
      • 처음에 완전 백업(모든 파일과 프로그램을 백업)을 수행
      • 이후 변경된 부분에 대하여 변경 분 백업(이전의 백업 후에 변경된 파일만을 백업)을 수행
    • 수준별(다단계) 백업
      • 처음에 level 0의 완전 백업을 수행
      • 이후 변경 분을 수행하는데 백업의 여러 level이 있어 level이 0보다 큰 경우 더 낮은 level의 백업 이후에 추가, 변경된 내용만 백업
      • 단순 백업은 level 0과 level 1만 있는 수준별 백업과 동일
  3. 리눅스의 백업 명령 사용법을 설명하시오.
    • cpio 명령 : 특정 디렉터리 아래 모든 파일을 지정한 백업장치로 백업
      find 디렉터리명 -print | cpio -o > 백업장치명
    • cpio 명령 : 특정 파일보다 나중에 변경된 파일만 백업
      find 디렉터리명 -newer 기준파일명 -print | cpio -o > 백업장치명
    • dump 명령
      dump -수준 -f 백업파일명_or_장치명 백업할파일시스템장치명_or_마운트지점
      dump -수준 -f 백업파일명_or_장치명 백업할파일명
  4. 리눅스 파일의 종류를 나열하고 설명하시오.
    • 정규 파일 : 일반적인 텍스트 파일이나 이진 파일
    • 디렉터리 파일 : 디렉터리 정보를 나타내는 파일
      ls -l 명령을 수행했을 때 가장 앞에 d로 표시되는 파일
      ls -al 명령을 수행하면 . (현재 디렉터리)과 ..(상위 디렉터리) 파일이 표시되는 것을 볼 수 있음
    • 특수 파일 : 주변 장치나 프로세스 간 통신에 이용되는 파일
      /dev 디렉터리 아래의 파일, 프로세스 간 pipe 등
  5. 리눅스의 ext3 파일 시스템의 특징을 ext2와 비교하여 설명하시오.
    • ext3는 저널링 기능이 추가되었다.
      저널링은 변경을 기록하는 로그를 두어 시스템이 비정상 종료했을 때 파일 시스템 복구를 쉽게 할 수 있게 해주는 메카니즘이다.
      ext3는 ext2 파일 시스템으로부터 바로 업그레이드가 가능하다는 장점을 가지고 있다.
      ext3는 ext4, ReiserFS, XFS 등에 비하여 비교적 간단하고 많은 사용자에 의해 테스트되었으므로 신뢰성이 높다.


연습문제

  • 연습문제1
    파일의 아카이브 생성과 압축을 동시에 할 수 있는 명령어는?
    답을 체크하세요
    정답 :
    해설 : tar 명령으로 아카이브 생성과 압축을 동시에 할 수 있다.
  • 연습문제2
    다음 중 백업 정책으로 적절하지 않은 것은?
    답을 체크하세요
    정답 :
    해설 : 가장 최근의 백업만 유지한다면 자료가 손상된 것을 모르고 백업한 경우 손상된 자료를 백업하였으므로 자료를 복구할 방법이 없다. 따라서 가장 최근 백업 이외에도 이전의 백업을 보관하여야 한다.
  • 연습문제3
    다음 중 파일 시스템을 백업할 수 있는 명령어는?
    답을 체크하세요
    정답 :
    해설 : dump가 파일 시스템을 백업할 수 있는 명령어이다.
  • 연습문제4
    리눅스의 파일로 취급되지 않는 것은?
    답을 체크하세요
    정답 :
    해설 : i-node는 파일 시스템의 중요한 정보를 나타내는 블록이지만 그 자체가 파일로 취급되는 것은 아니다.
  • 연습문제5
    변경을 기록하는 로그를 두어 시스템 비정상 종료 시 파일 시스템의 복구를 쉽게 하는 방법은 무엇인가?
    답을 체크하세요
    정답 :
    해설 : 리눅스 기본 파일 시스템 중에서 ext2는 저널링 기능이 없으며, ext3와 ext4가 저널링 기능을 지원한다.

pratical centos 리눅스 활용 교재 연습문제 풀이

7강. 기본 명령

l 파일의 압축

Ÿ 아카이브

백업 등의 목적을 위해 여러 파일과 디렉터리를 묶은 것

Ÿ tar(Tape ARchive) 명령

여러 개의 파일을 하나의 아카이브 파일로 만들거나 아카이브 파일에서 파일들을 추출

-만들기 : tar cvf 아카이브명 묶을파일명...

-풀기 : tar xvf 아카이브명

-내용보기 : tar tvf 아카이브명

l tar 명령 사용 예

∘ tar cvf abc.tar a.txt b.txt c.txt

현재 디렉터리에 있는 a.txt, b.txt, c.txt 파일을 abc.tar 파일로 묶음

∘ tar tvf abc.tar

abc.tar에 포함된 파일 및 디렉터리의 목록을 보여줌

∘ tar xvf abc.tar

현재 디렉터리에 abc.tar 파일을 풀어놓음

∘ tar cvf backup.tar backup

backup이 디렉터리인 경우 디렉터리의 내용을 backup.tar로 묶음

l gzip과 gunzip 명령을 이용한 파일의 압축

Ÿ 파일을 압축 / 압축 파일을 해제하는 명령

Ÿ gzip [옵션] [파일명]...

∘ -n : n은 1~9 사이의 숫자, 압축률 (1:속도 빠름 ~ 9:압축률 높음, 기본 값은 6)

∘ -d : 압축 해제, gunzip과 같음

Ÿ gzip으로 압축하면 원래 파일명에 .gz 확장자가 추가됨

Ÿ gunzip [옵션] [압축파일명]...

.gz, .Z, .tgz, .taz 등의 확장자를 가진 압축파일을 풀어 확장자를 제거 (tgz은 tar.gz, taz는

tar.Z을 의미)

l tar 명령을 이용한 압축과 압축 해제

Ÿ 아카이브와 압축을 동시에 실행

∘ tar cvfz 압축아카이브명 파일명...

Ÿ 압축해제와 아카이브에서 추출을 동시에 실행

∘ tar xvfz 압축아카이브명

l bzip2와 bunzip2 명령

Ÿ 일반적으로 gzip보다 60~70% 이상의 높은 압축률, 압축 해제 속도는 느림

Ÿ 사용방법은 gzip / gunzip과 같음 (확장자는 .bz2)

l 백업 개요

Ÿ 백업의 목적

시스템의 장애 또는 여러 가지 이유로 데이터가 손실 또는 손상되었을 때 데이터를 복구하기

위하여 백업을 수행

Ÿ 안전한 백업

-정기적으로 백업을 수행

-최근 백업한 내용만 보관하는 것은 위험

이미 손상된 데이터를 최근에 백업하였을 가능성이 있음

Ÿ 백업을 수행하는 방법

cpio, dump, tar 등의 명령어를 사용

l 백업 솔루션 결정 시 고려 사항

Ÿ 이식성 : 널리 사용되는 dump, cpio, tar 등 사용

Ÿ 자동 백업 : 자동으로 정기적 백업

Ÿ 사용의 편의성

Ÿ 원격 백업 : 원격 터미널에서 작업하려면 텍스트 기반 명령 사용

Ÿ 네트워크 백업 : 네트워크로 연결된 백업 장치에 백업

Ÿ 매체의 종류 : 안정성, 용량, 전송속도 등

l 시스템 백업의 종류

Ÿ 시초 백업(Day-zero Backup)

시스템 설치 후 사용자가 시스템을 사용하기 전에 모든 파일과 프로그램을 백업

Ÿ 완전 백업(Full Backup)

주기적으로 시스템의 모든 파일을 백업

Ÿ 변경 분 백업(Incremental Backup)

-이전의 백업 후에 변경된 파일만을 백업

-주기적인 백업 또는 프로그램의 추가나 패치 같은 특정한 이벤트 후 수행

l 시스템 백업의 수준

Ÿ 단순 백업

-먼저 완전 백업을 수행하고 이후 변경된 부분만을 백업

-개인적인 용도나 작은 규모의 사이트에서 사용하기 적합

Ÿ 수준별 백업

-중요한 업무를 다루고 있고 큰 규모의 사이트를 운영할 때 효과적

-완전 백업과 변경 분 백업(수준을 달리함) 두 가지를 사용

-적은 비용으로 백업 보장기간(backup history)을 길게 연장

-파일 시스템을 복원하는 데 드는 시간을 최소화

l 백업의 전략

Ÿ 자료 가치에 따라 다른 백업 종류 사용

Ÿ 백업 저장 매체는 번갈아 가며 사용

Ÿ 영구 보관을 위한 백업 저장 매체를 준비

Ÿ 수시로 백업 저장 매체의 상태를 확인

Ÿ 백업 저장 매체는 컴퓨터로부터 떨어진 곳에서 보관

Ÿ 백업 후에는 백업 저장 매체에 쓰기 방지 설정

Ÿ 중요한 백업 자료는 암호화

l 백업 관련 명령어

Ÿ cpio 명령

-파일을 테이프에 저장하기 위한 유틸리티

-디렉터리를 다루지 못하기 때문에 파일 목록은 find 등을 사용

Ÿ cpio 명령의 사용 방법

-생성 : cpio -o < 파일목록을 가진 파일 > 아카이브명

-추출 : cpio -i < 아카이브명

l cpio 명령 사용 예

Ÿ find 명령의 결과를 cpio의 표준 입력으로 사용

Ÿ /home 디렉터리 아래 모든 파일을 테이프 드라이브(/dev/st0)로 백업

∘ find /home -print | cpio -o > /dev/st0

Ÿ find 명령의 -mtime, -newer 옵션을 사용하여 변경분 백업

∘ find . -mtime –1 -name '*.bak' -print | cpio -o > /dev/st0

∘ find . -newer timefile -print | cpio -o > /dev/st0

l dump 명령

Ÿ 파일 시스템 전체를 백업 가능, 복구는 restore 명령 사용

Ÿ 수준별 백업 기능 제공

∘ 0 은 모든 파일을 백업

∘ n 수준 백업은 더 낮은 수준의 이전 백업 이후에 생성, 변경된 파일만 백업

Ÿ dump 명령의 사용 방법

∘ dump [옵션] 파일시스템 (파일시스템이 mount된 디렉터리)

∘ dump [옵션] 파일명

Ÿ dump 명령의 옵션

∘ -n : n이 0이면 전체 백업, 0보다 크면 더 낮은 수준의 백업 이후에 추가, 변경된 내용만

백업

∘ -f file: 지정한 파일(아카이브) 또는 디바이스(/dev의 디렉터리 파일)에 백업

∘ -u : 백업 정보를 기록함

Ÿ 예 1 : mydir 디렉터리를 mydump 파일로 백업

∘ dump -0f mydump mydir

Ÿ 예 2 : /work에 마운트된 파일 시스템을 5 수준에서 테이프 드라이로 백업

∘ dump -5u -f /dev/st0 /work

l dump 명령의 특징

Ÿ dump 명령의 장점

-수준별 백업을 제공

-여러 개의 테이프에 백업 가능, 어떤 타입의 파일도 백업 및 복구 가능

-파일의 접근 권한, 소유자, 수정시간 등의 사항도 복구됨

Ÿ dump 명령의 단점

-각 파일 시스템은 개별적으로 dump 되어야 함 (파티션마다 별도)

-NFS 파일 시스템은 dump 불가 (로컬 파일 시스템만 dump 가능)

-활동 중인 파일 시스템은 제대로 백업이 되지 않을 수 있음

l 파일 시스템

Ÿ 정보를 저장하기 위해 저장 공간에 어떻게 구성할 것인가에 관한 규칙

파일에 파일명과 경로를 부여하고 저장이나 검색을 위해 어디에 위치시켜야 하는지 등을 나타

내는 방법

Ÿ 리눅스 파일 시스템의 기본적 기능

-파일과 디렉터리 개념으로 구성된 트리를 관리

-모든 것을 파일로 취급

Ÿ 파일의 종류

-정규 파일 : 일반적인 텍스트 파일이나 이진 파일

-디렉터리 파일 : 디렉터리 정보를 나타내는 파일

-특수 파일 : 주변 장치나 프로세스 간 통신에 이용되는 파일

l 파일 시스템 유형

Ÿ minix : Minix의 파일 시스템, 기본적인 파일 시스템

Ÿ xiafs : minix의 제한을 보완한 수정 버전

Ÿ msdos : FAT(File Allocation Table) 파일 시스템

Ÿ hpfs : OS/2의 파일 시스템

Ÿ isofs : ISO 기준을 따르는 표준 CD-ROM의 파일 시스템

Ÿ umsdos : msdos를 긴 파일명, 소유자, 접근 권한, 링크와 장치 파일 등을 사용할 수 있

도록 확장

Ÿ nfs : 네트워크 상 컴퓨터의 파일 시스템을 공유

Ÿ sysv : System V/386, Xenix 등의 파일 시스템

l 리눅스 파일 시스템

Ÿ ext2 파일 시스템 특징

-파일 시스템 생성 시 블록 크기를 선택 가능. 1,024~4,096byte

-파일 시스템 생성 시 i-node 개수 결정 가능. 주어진 크기의 파티션에 얼마나 많은 파일을

저장할 수 있는가에 따라 결정됨

-디스크 블록을 그룹으로 분할

-정규 파일이 저장되기 전에 데이터 블록을 미리 할당 가능

-고속의 심볼릭 링크를 지원

Ÿ ext3 파일 시스템

-ext2 파일 시스템과 같은 구조

-리눅스에서 사용 가능한 파일 시스템 중 가장 신뢰할 수 있는 저널링 파일 시스템 중 하나

-저널링 : 변경을 기록하는 로그를 두어 시스템 비정상 종료 시 파일 시스템 복구를 쉽게 하

는 방법

Ÿ ext4 파일 시스템

-현재 리눅스의 기본 파일 시스템

-Extents와 Online Defragmentation 지원

-1EB 파일 시스템 사이즈, 16TB 사이즈의 파일 가능

Ÿ reiser 파일 시스템

-처음으로 저널링을 지원한 리눅스 파일 시스템

-사용 중에 파일시스템의 크기 확장이 가능

-B*Tree에 기반으로 모든 파일 시스템의 객체가 하나의 B*Tree 안에 존재

l 다음 문제에 대한 정답을 고르시오.

13. 다음은 어떠한 백업 명령을 설명하는 것인가?

파일을 백업하는 것이 아니라, 파일 시스템 전체를 백업하며, 이전에 파일 시스템을 백업한

이후에 변경된 파일의 목록을 작성하여, 그 목록에 있는 파일을 새로운 백업 파일로 백업 받

을 수 있는 점진적인 백업 기능을 제공한다.

① cpio ② taper

③ dump ④ rmt

14. tar 파일로 묶여 있는 sensor.tar 파일의 리스트를 보고자 할 때 사용하는 것은?

① tar cvf sensor.tar ② tar xvf sensor.tar

③ tar tvf sensor.tar ④ tar rvf sensor.tar

15. gzip 명령어에서 압축률을 높이기 위한 옵션은?

① -h ② -9

③ -t ④ -1

l 다음문제에 대한 정답을 서술하시오.

16. 시스템을 이용하면서 백업은 굉장히 중요한 작업이다. 이러한 백업 작업을 할 때 알아두

어야 할 수칙들을 작성하시오.

① 자료 가치에 따라 다른 백업 전략을 취하라.

② 백업 저장 매체는 번갈아가며 사용하라.

③ 오랫동안 보관하기 위한 백업 저장 매체를 준비하자.

④ 가끔 백업 저장 매체의 상태를 확인하자.

⑤ 백업 저장 매체는 될 수 있으면 컴퓨터로부터 떨어진 곳에서 보관하자.

⑥ 백업을 한 후에는 백업 저장 매체에 쓰기 방지를 해두자.

⑦ 중요한 백업 자료에는 암호화를 해두자.

17. gzip이 bzip2와 가장 크게 다른 점을 설명하고, 그 특징을 살펴보시오.

(답) gzip은 사용자가 보유한 저장 공간을 절약하거나 백업을 할 때, 또는 데이터 전송시간을

줄이려고 데이터의 크기를 압축하는 역할을 하는 리눅스의 표준 압축(해제) 유틸리티이다.

gzip을 이용한 압축은 ‘Lempel-Ziv’ 라는 인코딩 방법을 사용하며, 텍스트 파일을 기준으로

60%에서 70% 정도의 압축 효율을 가진다. ‘gzip -d’는 gunzip과 동일하며, 원본 파일의 소

유주와 소유 그룹, 파일 액세스 시간, 파일 변경 시간, 퍼미션은 그대로 유지한 채로 압축

을 풀게 된다.

bzip2는 자료를 압축하기 위하여 버로우스-윌러(Burrows-Wheeler) 블록 정렬 텍스트 압축

알고리즘(Block-sorting text compression algorithm)과 허프만 코딩(Huffman coding)을

사용하고 있으며, 일반적으로 gzip으로 한 것 보다 60-70% 이상의 높은 압축률을 보이며 사

용방법도 동일하지만, 압축 해제 속도는 상당히 느린 단점을 가지고 있다. bzip2로 압축을 하

게 되면 ‘.bz2’라는 확장자를 갖게 된다.

댓글