330 likes | 515 Views
Linux 9.X 기초에서 활용까지. Chapter 07 프로세스 관리. Content. Tar, gzip, bzip2 의 활용 백업의 개요와 방법 리눅스 시스템에서의 백업. tar, gzip, bzip2 의 활용. tar (Tape ARchive) 여러 개의 파일들을 아카이브라고 부르는 하나의 파일로 만들거나 , 하나의 아카이브 파일에 집적되어 있는 여러 개의 파일을 원래의 형태대로 추출해 내는 명령 일반적으로 .tar 라는 파일이름 확장자를 붙인다 .
E N D
Linux 9.X 기초에서 활용까지 Chapter 07 프로세스 관리
Content • Tar, gzip, bzip2의 활용 • 백업의 개요와 방법 • 리눅스 시스템에서의 백업
tar, gzip, bzip2의 활용 • tar (Tape ARchive) • 여러 개의 파일들을 아카이브라고 부르는 하나의 파일로 만들거나, 하나의 아카이브 파일에 집적되어 있는 여러 개의 파일을 원래의 형태대로 추출해 내는 명령 • 일반적으로 .tar 라는 파일이름 확장자를 붙인다. • 파일의 크기가 압축되어 줄어드는 것이 아니라 하나의 파일로 모으는 역할 수행 • tar 라는 이름은 자기테이프에 백업되고, 이따금씩 검색되기도 하던 때로부터 유래 되었음 # tar [옵션][만들 파일이름][묶을 파일이름]
tar, gzip, bzip2의 활용 • gzip과 gunzip • gzip은 사용자가 보유하고 있는 저장 공간을 절약하거나 백업을 할 때, 또는 데이터 전송시 시간을 줄이기 위하여 데이터의 크기를 줄여주는 역할을 한다. • tar와의 차이점은 단순하게 파일을 묶어주는 기능 이외에 파일의 사이즈를 줄여주는 장점을 가지고 있다. • 일반적으로 .gz 이라는 확장자를 가지게 된다. • 파일들을 풀 경우는 gunzip 명령을 사용하면 된다. • gunzip을 사용하지 않고 gzip을 이용하여 파일의 압축을 풀 경우에는 -d 옵션을 함께 사용하면 된다. # gzip / gunzip [옵션][파일이름]
tar, gzip, bzip2의 활용 • bzip2와 bunzip2 • bzip2는 자료를 압축하기 위하여 버로우스-윌러(Berrows-Wheeler)블록 정렬 텍스트 압축 알고리즘(Block-sorting text compression algorithm)과 허프만 코딩(Huffman coding)을 사용하고 있으며, 일반적으로 gzip으로 압축을 한 것보다 60-70% 이상의 높은 압축률을 보인다. • 그러나 압축의 해제 속도는 상당히 느린 단점을 가지고 있다. • 일반적으로 .bz2 라는 확장자를 갖게 된다. • bzip2로 압축 된 파일을 풀 경우에는 gzip과 마찬가지로 bunzip2를 거의 사용하지 않으며 bzip2에 –d 옵션을 이용한다. # bzip / bunzip [옵션][파일이름]
백업의 개요와 방법 • 시스템 백업의 정의 • 시스템의 장애 또는 데이터의 손실 및 손상이 발생했을 때, 신속한 데이터의 복구를 통하여 업무 흐름을 원활하게 만드는 것이 목적 • 테이프, 제거 가능한 드라이브, 기록 가능한 CD 등 분리된 매체에 기록하여 따로 보관하는 방법을 사용하거나 경우에 따라 외장 백업 시스템을 사용 • cpio, dump, tar 등의 방법과 taper, Kdat 등의 유틸리티를 사용할 수 있다. • 백업 솔루션을 결정할 때의 고려 사항 • 이식성 : 서로 다른 시스템 간의 이식성이 좋아야 한다. • 자동백업 : 정기적으로 자동화된 백업을 수행할 수 있는지의 여부 판단 • 사용의 편의성 : 텍스트 기반의 백업 도구 보다는 GUI 환경을 지원하는 것이 편리 • 원격 백업 : 원격지의 터미널에서 백업을 시작하거나 복구할 수 있도록 하기 위해서는 텍스트 기반의 유틸리티를 선택하는 것이 좋다. • 네트워크 백업 : 네트워크 액세스를 지원하는지 고려한다. • 매체의 종류 : 테이프, 하드 드라이브, ZIP 드라이브 등 가격 대 안정성, 저장 용량, 전송 속도 등을 고려 한다.
백업의 개요와 방법 • 시스템 백업의 종류 • A Day-zero Backup • 시스템을 설치한 후 사용자들이 시스템을 사용해보기 전에 시스템의 모든 파일들과 프로그램들을 백업하는 것을 말한다. • A Full Backup • 어떤 일반적인 기준에 의하여 주기적으로 시스템의 모든 파일들과 프로그램들을 백업하는 것을 말한다. • An Inceremental Backup • 응용 프로그램을 새로 추가하거나 패치한 것과 같은 특정한 이벤트 후나 주기적인 날짜 간격으로 이전의 백업 후 변경된 파일들만을 백업하는 것을 말한다. • 단순백업 • 모든 것을 한꺼번에 백업을 하는 Full Backup을 수행한 후에 변경된 부분만을 골라서 백업하는 것을 말한다. • 다단계백업 • 큰 규모의 백업에 적합하며, 값싸게 백업 보장기간을 늘릴 수 있다.
백업의 개요와 방법 • 백업의 요령 • 자료 가치에 따라 다른 백업 전략을 취하라 • 루트 파일시스템이나 /etc 디렉토리와 같은 자료는 자료가 바뀔 때 마다 풀 백업을 하는 것이 좋으며, 사용자들의 자료는 정기적으로 변경분 백업을 하는 식으로 자료의 가치에 따라 각기 다른 전략을 취한다. • 백업 테이프는 번갈아가며 사용하라 • 하나의 파티션 마다 두개 이상의 백업 테이프를 사용하여 그 백업 테이프를 번갈아가며 사용하도록 하는 것이 좋다. • 오랫동안 보관하기 위한 백업 테이프를 준비하자 • 일년이나 이년에 한번씩 백업한 테이프를 영구적으로 보관하는 것이 필요하다. • 가끔씩 백업 테이프의 상태를 확인하자. • 너무 장기간 보관하던 백업 테이프는 가끔씩 테이프의 상태를 확인한다. • 백업을 한 후에는 쓰기 방지를 해 둔다 • 실수로 덮어쓰기를 행하는 것을 방지하기 위해 백업 테이프에 쓰기 방지를 한다. • 중요한 백업 자료에는 암호화를 해두자. • 백업한 자료를 다른 사람에게 노출시키지 않기 위해 백업 할 때 암호화를 한다.
리눅스 시스템에서의 백업 • 백업 관련 명령어 • cpio • 증분 백업 기능을 제외하고 tar와 비슷하며, 리눅스 파일을 테이프에 저장하기 위한 명령 • 바이트 – 스와핑이 가능하고 다른 아카이브 형태로 기록할 수 있다. • 디렉토리를 다루지 못하기 때문에 파일 목록이 STDIN으로 제공되고, find 프로그램으로부터 파일 이름을 파이핑하여 사용해야만 한다. # cpio -i [옵션][복사할 파일이름][옵션][복사될 파일이름] # cpio -o [옵션] 또는 cpio [옵션] [디렉토리명]
리눅스 시스템에서의 백업 • 백업 관련 명령어 • cpio 명령의 옵션
리눅스 시스템에서의 백업 • 백업 관련 명령어 • taper • 테이프의 백업과 복구 프로그램을 포함 • 테이프 드라이브에 파일 백업 및 복구 기능을 제공하는 친숙한 사용자 인터페이스를 제공 • 디렉토리 사이를 쉽게 이동할 수 있으며, 순환하는 디렉토리 선택 기능도 제공되고, 증가 백업과 자동화된 가장 최근 복구는 기본값으로 설정되어 있다. • dump • 백업을 하는데 있어서 가장 일반화된 명령으로 오래전부터 UNIX의 한 부분으로 제공되고 있으며, tar 나 cpio 와 완전히 다른 프로그램이다. • 파일들이 아닌, 파일 시스템 전체를 백업하며, 파일시스템이 하드 드라이브에 있거나, 심지어 그 파일시스템 안에 있는 파일이라도 상관하지 않는다. • 어떠한 파일이 백업되어야 하는가를 알기 위해 파일시스템의 i-node 테이블을 참조한다.
리눅스 시스템에서의 백업 • 백업 관련 명령어 • dump의 사용 • dump는 0~9 단계의 증분 백업을 지원하며, 한 파일시스템을 한번에, 신속하게, 그리고 효율적으로 옮겨 쓴다. # dump [옵션][파일시스템]
리눅스 시스템에서의 백업 • 백업 관련 명령어 • rmt • rmt는 dump 또는 tar와 유사한 프로그램에서 테이프 장치에 원격 접근을 할 수 있는 기능을 제공한다. • rmt는 내부에서 처리하는 통신 연결을 통해 마그네틱 테이프 드라이브를 운영하여 원격으로 dump와 restore를 할 때 사용되는 프로그램이다. • rexec 또는 rcmd 호출로 시작 • 마그네틱 테이프를 운영하는 특정한 요청을 받고, 명령어를 수행하면 상태를 표시하여 응답한다. # rmt –마그네틱 테이프 원격 접근 모듈
리눅스 시스템에서의 백업 • 서버별 백업 정책 • 웹 서버의 백업 정책 • 호스팅 관련 서버일 경우 웹 서비스를 제공할 수 있는 home 디렉토리에 대한 백업이 제일 중요하다. • 최근 mysql 또는 Oracle과 같은 DB와 연동해서 구축되는 경우가 많기 때문에 백업할 때 항상 고려해야 한다. • 자주 변경되는 웹 페이지의 특성상 백업 주기를 적절하게 결정한다. • DB 서버의 백업 정책 • 웹이나 파일서버의 경우보다 조금 더 세심하게 다루어져야 할 부분이다. • DB엣 자체적으로 지원하는 백업 방법에 맞게 백업을 수행한다. • 메일 서버의 백업 정책 • 주기적으로 백업을 수행하며, /var/spool/mail 과 같은 사용자의 메일 박스를 백업하도록 한다.
파일시스템의 구조 • 파일 시스템의 정의 • 해당 파일에 파일명을 부여하고 저장이나 검색을 위해 논리적으로 어디에 위치시켜야 하는지 등을 나타내는 방법을 의미 • 리눅스에서의 파일시스템의 기본적인 기능은 디스크나 테이프 등의 저장 공간을 파일과 디렉토리 개념으로 구성하여 관리하는 것을 말한다.
파일시스템의 구조 • 파일 시스템의 구조
파일시스템의 구조 • 파일 시스템의 구조 • 파일시스템은 계층적 구조를 가지고 있지만, 실제로는 선형적으로 연속되어 있는 구조를 가지고 있다. • 첫번째 부트스트랩은 여러 개의 블록으로 나누어질 수 있으며, 부팅에 사용되는 파일시스템에 짧은 로더 프로그램을 가지고, 시스템이 시작하기 전에 리눅스 파일시스템을 로드하기 위해 사용된다. • 두번째 수퍼블럭은 파일시스템이 가지고 있는 중요한 정보인 블록의 총 수, 자유 블록 수, i-node 리스트의 크기 등을 포함하고 있다. • 세번째는 파일에 대한 디스크의 배치에 대한 기술과 파일의 소유자, 접근 허가, 접근 시간 등의 정보를 포함하고 있다. • 마지막 데이터 블록은 부트스트랩, 슈퍼블럭, i-node에 사용 된 공간을 제외 한 파일을 저장하기 위한 파일시스템 상의 나머지 블록을 의미한다.
파일시스템의 종류 • 파일 시스템의 종류(1) • ext • Extended File System의 첫 글자를 딴 파일시스템으로 minix의 제한을 벗어나고자 고안된 파일 시스템이다. • 리눅스 초기에 사용되었으며, 시스템 호환성이 없던 ext2의 구버전이다. • ext3 • 현재 가장 많이 사용하는 파일시스템으로 리눅스 파일시스템의 대부분의 기능을 제공하는 파일시스템이다. • 뛰어난 안정성과 속도로 현재 가장 유명한 파일시스템으로 알려져 있다. • minix • 가장 오래되고 기본이 되는 파일시스템이다. • 몇몇 Time Stamp가 유실되고 파일 이름은 30문자로 제한된다. • 파일시스템마다 최대 64MB 성능 제한이 있다.
파일시스템의 종류 • 파일 시스템의 종류(2) • xiafs • Minix의 제한이었던 파일 이름과 파일시스템에 대한 제한을 보완한 minix 파일시스템의 수정 버전 • 한때 ext2와 함께 많이 사용되더 파일시스템이었으나 현재는 거의 사용되지 않는다. • msdos • MS-DOS의 FAT 파일시스템과의 호환을 지원하는 파일시스템 • OS/2와 윈도우 NT의 FAT 파일시스템과도 호환된다. • HPFS • High Performance File System의 약자로 IBM이 만들어낸 OS/2의 기본 파일 시스템이다. • FAT과 호환성이 있으며 파일명의 제한도 FAT에 비해 대폭 완화 되었다. • 보안기능, 톨러런트 기능을 가지고 있다.
파일시스템의 종류 • 파일 시스템의 종류(3) • isofs CD-ROM • ISO 기준을 따르는 표준 CD-ROM의 파일시스템으로 CD-ROM에 좀더 긴 파일명을 사용할 수 있도록 확장된 록 브릿지가 기본으로 지원 된다. • Umsdos • MS-DOS 파일시스템을 리눅스상에서도 긴 파일명과 소유자, 접근 허가, 링크와 장치 파일등을 사용할 수 있도록 확장한 파일시스템 • NFS • Network File System으로 네트워크상의 많은 컴퓨터들이 각각의 파일시스템으로 이루어진 파일들을 서로 쉽게 공유하기 위해 제공되는 상호간의 공유 파일 시스템이다. • Sysv • SystemV/Coherent 실행 시스템이다. 이것은 모든 Xenix FS, SystemV/386 FS, Coherent FS을 실행한다.
ext3 파일시스템 • ext3의 신뢰성 • ext2는 ext2와 호환되며, ext2의 메타데이터 포맷을 공유함으로써 ext2가 가지고 있는 다른 장점들을 상속 받는다. • fsck 툴에 액세스 할 수 있다. • 메타데이터 전용 저널링 • 저널링 : 시스템이 비정상적인 종료를 하게 되는 경우 데이터를 디스크에 쓰기 전에 로그에 해당 데이터를 남겨 빠르고 안정적인 복구 기능을 제공 • 메타데이터 저널로 인하여 파일시스템 메타데이터를 쉽게 복구할 수 있다. • ext3의 저널링 구현 방식 • ext3에서 저널링 코드는 JBD(Journaling Block Device layer)라고 하는 특별한 API를 사용한다. • JBD에 hook-in 함으로써 저널링을 구현한다.
파일시스템 관련 명령 • mount • 각 장치에 구성된 파일시스템을 전체 파일 트리 구조에 붙이는데 사용 • 즉, 운영 시스템이 지정된 위치에서 파일시스템을 사용할 수 있게 만들어 준다. # mount [-hV] # mount -a [-fnrvw] [-t 파일시스템유형] # mount [-fnrvw] [-o 옵션 [,...]] 장치 | 디렉토리 # mount [-fnrvw] [-t 파일시스템유형 ][-o 옵션 ]장치 디렉토리 mount -h : 도움말을 보여준다 mount -V : 버전을 보여준다 mount [-t type ] : 마운트 된 모든 시스템을 보여준다
파일시스템 관련 명령 • mount의 기본 옵션(1)
파일시스템 관련 명령 • mount의 기본 옵션(2)
파일시스템 관련 명령 • unmount • 마운트한 파일시스템, 디렉토리 또는 파일을 언마운트하는데 사용 # umount [-hV] # umount -a [-nv] [-t 파일시스템유형] # umount [-nv] 장치 | 디렉토리 [...]
파일시스템 관련 명령 • mkfs • 하나의 하드디스크 파티션을 리눅스 파일시스템으로 만드는데 사용 • 블록 인자는 그 파일시스템을 위해 사용되는 블록의 개수이며, 성공적으로 끝나면 0, 실패하면 1을 리턴한다. # mkfs [ -V ] [ -t 형태 ] [ fs-options ] 장치이름 [ 블럭 ]
파일시스템 관련 명령 • fsck • 파일시스템의 일관성을 검사하고 대화식으로 파일시스템을 복원하는데 사용 # fsck [ -AVRTNP ] [ -s ] [ -t 파일시스템유형 ][ 파일시스템옵션] 파일시스템 [....]
파일시스템 관련 명령 • fsck
디스크 관련 명령 • fdisk • 리눅스 설치시 파티션을 구성할 수 있는 명령어로 한번에 한 디스크에 대해서만 작업을 수행한다. # fdisk [옵션] [디바이스]
디스크 관련 명령 • mkswap • 지정한 특정 장치나, 파일을 리눅스용 스왑 영역으로 지정한다. • 장치 이름 인자로 사용될 수 있는 장치 이름은 다음과 같다. • 블록 크기 인자는 파일시스템의 원하는 블록 단위의 크기이다. • 블록의 크기는 해당 시스템의 CPU에서 처리할 수 있는 페이지 크기에 따라 정해진다. /dev/hda[1-8] /dev/hdb[1-8] /dev/sda[1-8] /dev/sdb[1-8] MINCOUNT = 10 * PAGE_SIZE / 1024 MAXCOUNT = (PAGE_SIZE - 10) * 8 * PAGE_SIZE / 1024
디스크 관련 명령 • du • 파일에 사용되는 블록 수를 표시한다. # du [옵션] [File...]
디스크 관련 명령 • df • 지정한 파일이 있는 파일시스템의 사용가능한 디스크 공간 정보를 보여준다. # df [옵션] [File...]
디스크 관련 명령 • quota • 자신의 시스템을 이용하는 사용자의 디스크 사용량을 제한하여 시스템의 디스크 공간을 무제한적으로 사용하지 못하게 한다. • (1) quota가 작동하는 파티션을 결정하고 /etc/fstab을 수정한다. • (2) quota 기록파일인 ‘quota.user’를 quota를 주려는 파티션의 최상위 디렉토리에 생성한다. (root에게만 권한을 부여한다.) • (3) quota를 재시동 한다. # df [옵션] user | group # quotaon -avug