UNIX - [제7강] 기본 명령
● 파일의 압축 및 백업 ● 파일 시스템 개요와 종류
UNIX 용어정리
- tar 아카이브
- tar는 ‘tape archive’의 약자로, 다수의 파일 또는 디렉터리를 하나의 어카이브 파일로 묶거나 반대로 어카이브 파일의 묶음을 풀기 위한 유틸리티이다. 디바이스에 어카이브를 만들 수도 있다.
- dump 수준
- dump 명령에서 변경 분 백업(incremental backup)을 위한 덤프 수준을 의미한다. 레벨 0은 완전 백업을 의미하고, 레벨 N은 ‘N보다 작은 수준의 최근 백업’ 이후에 변경된 파일을 백업한다. 보통 0~9 사이의 정수이다.
- 리눅스 파일 시스템
- 리눅스 시스템은 하나의 루트 파일 시스템을 가지고, 많은 경우 루트 아래에 마운트되는 다른 파일 시스템도 가진다. 파일 시스템의 기본 구성단위는 블록이며, 전체적으로 슈퍼블록, inode 테이블 및 데이터 블록으로 이루어져 있다.
- ext4
- ext3의 확장형으로 최근 리눅스 배포판에서 기본 파일 시스템으로 사용된다. 1EB 크기의 파일 시스템과 16TB 크기의 개별 파일을 지원한다. 파일 시스템의 압축과 암호화, extents 및 블록 선할당 기능을 지원한다.
요점정리
- 파일의 아카이브 및 압축 파일을 관리하는 방법을 설명하시오.
- 아카이브 생성 및 풀기
만들기 : tar cvf 아카이브명 묶을파일명...
풀기 : tar xvf 아카이브명
내용보기 : tar tvf 아카이브명 - 압축 및 압축 풀기
gzip 파일명...
gunzip 압축파일명...
- 아카이브 생성 및 풀기
- 단순 백업과 수준별(다단계) 백업에 대하여 설명하시오.
- 단순 백업
- 처음에 완전 백업(모든 파일과 프로그램을 백업)을 수행
- 이후 변경된 부분에 대하여 변경 분 백업(이전의 백업 후에 변경된 파일만을 백업)을 수행
- 수준별(다단계) 백업
- 처음에 level 0의 완전 백업을 수행
- 이후 변경 분을 수행하는데 백업의 여러 level이 있어 level이 0보다 큰 경우 더 낮은 level의 백업 이후에 추가, 변경된 내용만 백업
- 단순 백업은 level 0과 level 1만 있는 수준별 백업과 동일
- 단순 백업
- 리눅스의 백업 명령 사용법을 설명하시오.
- cpio 명령 : 특정 디렉터리 아래 모든 파일을 지정한 백업장치로 백업
find 디렉터리명 -print | cpio -o > 백업장치명 - cpio 명령 : 특정 파일보다 나중에 변경된 파일만 백업
find 디렉터리명 -newer 기준파일명 -print | cpio -o > 백업장치명 - dump 명령
dump -수준 -f 백업파일명_or_장치명 백업할파일시스템장치명_or_마운트지점
dump -수준 -f 백업파일명_or_장치명 백업할파일명
- cpio 명령 : 특정 디렉터리 아래 모든 파일을 지정한 백업장치로 백업
- 리눅스 파일의 종류를 나열하고 설명하시오.
- 정규 파일 : 일반적인 텍스트 파일이나 이진 파일
- 디렉터리 파일 : 디렉터리 정보를 나타내는 파일
ls -l 명령을 수행했을 때 가장 앞에 d로 표시되는 파일
ls -al 명령을 수행하면 . (현재 디렉터리)과 ..(상위 디렉터리) 파일이 표시되는 것을 볼 수 있음 - 특수 파일 : 주변 장치나 프로세스 간 통신에 이용되는 파일
/dev 디렉터리 아래의 파일, 프로세스 간 pipe 등
- 리눅스의 ext3 파일 시스템의 특징을 ext2와 비교하여 설명하시오.
- ext3는 저널링 기능이 추가되었다.
저널링은 변경을 기록하는 로그를 두어 시스템이 비정상 종료했을 때 파일 시스템 복구를 쉽게 할 수 있게 해주는 메카니즘이다.
ext3는 ext2 파일 시스템으로부터 바로 업그레이드가 가능하다는 장점을 가지고 있다.
ext3는 ext4, ReiserFS, XFS 등에 비하여 비교적 간단하고 많은 사용자에 의해 테스트되었으므로 신뢰성이 높다.
- ext3는 저널링 기능이 추가되었다.
연습문제
- 파일의 아카이브 생성과 압축을 동시에 할 수 있는 명령어는?
- 정답 :
-
④
- 해설 : tar 명령으로 아카이브 생성과 압축을 동시에 할 수 있다.
- 다음 중 백업 정책으로 적절하지 않은 것은?
- 정답 :
-
②
- 해설 : 가장 최근의 백업만 유지한다면 자료가 손상된 것을 모르고 백업한 경우 손상된 자료를 백업하였으므로 자료를 복구할 방법이 없다. 따라서 가장 최근 백업 이외에도 이전의 백업을 보관하여야 한다.
- 다음 중 파일 시스템을 백업할 수 있는 명령어는?
- 정답 :
-
②
- 해설 : dump가 파일 시스템을 백업할 수 있는 명령어이다.
- 리눅스의 파일로 취급되지 않는 것은?
- 정답 :
-
①
- 해설 : i-node는 파일 시스템의 중요한 정보를 나타내는 블록이지만 그 자체가 파일로 취급되는 것은 아니다.
- 변경을 기록하는 로그를 두어 시스템 비정상 종료 시 파일 시스템의 복구를 쉽게 하는 방법은 무엇인가?
- 정답 :
-
②
- 해설 : 리눅스 기본 파일 시스템 중에서 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’라는 확장자를 갖게 된다.
'컴퓨터과학[3-2] > U.N.I.X' 카테고리의 다른 글
UNIX - [제9강] 프로세스 관리 명령(2) & 쉘 (0) | 2016.07.19 |
---|---|
UNIX - [제8강] 프로세스 관리 명령 01 (0) | 2016.07.19 |
UNIX - [제6강] vi 편집기 (0) | 2016.07.19 |
UNIX - [제5강] 기본 운영02 (0) | 2016.07.19 |
UNIX - [제4강] 기본 운영01 (0) | 2016.07.19 |
댓글