2009년 01월 03일
럭키스타 피규어들...
(먼지도 모르고... 그냥 줏어오신게...
내가 부타그렸던 럭키스타.. ㅋㅋ)



# by | 2009/01/03 13:32 | 트랙백 | 덧글(0)



# by | 2009/01/03 13:32 | 트랙백 | 덧글(0)











# by | 2009/01/03 13:31 | 만화/놀이/도피 | 트랙백 | 덧글(2)
# by | 2008/11/19 11:11 | 트랙백 | 덧글(0)
MySQL 서버를 사용하다보면 예기치 못한 문제가 발생하여 데이터가 손상되는 경우가 생길 수 있다. 만약 테이블 타입이 InnoDB 라면 트랜잭션이 적용되기 때문에 그러한 경우 자동으로 데이터를 복구하지만 테이블 타입이 MyISAM 이라면 데이터가 손상될 확률이 좀 더 높다. 그런 경우 myisamchk 유틸리티를 사용하면 손상된 데이터를 수동으로나마 복구할 수 있다. 테이블을 체크하고 복구하는 SQL 로 CHECK TABLE 과 REPAIR TABLE 이 있으나 myisamchk 에 비해 속도는 느리다. ( 또한 테이블이 날아갈 확률도 높다. )
myisamchk 유틸리티는 데이터 파일의 상태를 체크하거나 손상된 데이터 파일을 복구하는 데 사용되는 유틸리티이다. 테이블을 안전하게 유지, 보수하고 싶다면 주기적으로 myisamchk 를 실행하여 상태를 검사해보는 것이 좋을 것이다.
myisamchk 유틸리티를 이용하여 데이터 파일의 상태를 보거나 체크할 때는 상관없지만 데이터 파일을 복구하려 할 때는 반드시 MySQL 서버를 종료한 상태에서 실행해야 한다.
만약 MySQL 서버를 종요할 수 없는 피치못할 상황이라면 테이블에 Lock 를 건 다음 myisamchk 유틸리티를 실행하도록 한다.
myisamchk 유틸리티의 사용 형식은 다음과 같다.
myisamchk [옵션] <테이블명>
이 때 <테이블명> 에는 테이블명만 써서 해당 테이블을 검사할 수도 있고, *.MYI 라고 패턴문자를 사용하여 해당 디렉토리 내의 모든 테이블을 검사할 수도 있다.
다음은 myisamchk 를 이용하는 예제인데 orders 테이블의 정보를 출력하는 모습을 보여주고 있다.
C:\windows\system32>
myisamchk -d c:\APM_Setup\Server\MySQL\data\shopsample\orders
MyISAM file: c:\APM_Setup\Server\MySQL\data\shopsample\orders
Record format: Fixed length
Character set: latin1 (8)
Data records: 8 Deleted blocks: 0
Recordlength: 17
table description:
Key Start Len Index Type
1 2 4 unique long
myisamchk 유틸리티에서 사용할 수 있는 옵션은 크게 Global 옵션, 체크 옵션, 복구 옵션 그리고 그 밖의 옵션으로 나눌 수 있다. Global 옵션은 유틸리티에서 전반적으로 사용되는 일반적인 옵션이고, 체크 옵션은 테이블의 상태를 체크하는데 사용하는 옵션이며, 복구 옵션은 테이블을 복구할 때 사용하는 옵션이다. 먼저 Global 옵션은 다음과 같다.
+--------------------+-----------------------------------------------------------------+
| Global 옵션 | 설명 |
+--------------------+-----------------------------------------------------------------+
| -#, --debug=... | Debug 로그를 출력한다.
| -?, --help | 도움말을 출력한다.
| -t, --tmpdir=<경로> | 임시 파일의 경로를 설정한다.
| -s, --silent | 침묵 모드로 작동한다. 검사도중 에러가 발생했을 때만 출력한다.
| -v, --verbose | 상세 정보를 출력한다.
|-V, --version | 버전을 출력한다.
| -w, --wait | 테이블에 Lock 이 걸려있으면 기다린다.
+--------------------+-----------------------------------------------------------------+
다음은 -d 와 -v 옵션을 이용하여 테이블의 정보를 상세하게 출력한 모습이다.
C:\windows\system32>
myisamchk -d -v c:\APM_Setup\Server\MySQL\data\shopsample\orders
MyISAM file: c:\APM_Setup\Server\MySQL\data\shopsample\orders
Record format: Fixed length
Character set: latin1 (8)
File-version: 1
Creation time: 2006-10-20 23:51:37
Status: changed
Auto increment key: 1 Last value: 17
Data records: 8 Deleted blocks: 0
Datafile parts: 8 Deleted data: 0
Datafile pointer (bytes): 4 Keyfile pointer (bytes): 3
Datafile length: 136 Keyfile length: 2048
Max datafile length: 73014444030 Max keyfile length: 17179868159
Recordlength: 17
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 2 4 unique long 1 1024 1024
- 체크 옵션은 다음과 같다.
+---------------------------+----------------------------------------------------------+
| 체크 옵션 | 설명 |
+---------------------------+----------------------------------------------------------+
| -c, --check | 테이블에 오류가 없는지 체크한다.
| -e, --extend-check | 테이블에 오류가 없는지 좀 더 세밀하게 검사한다.
| | 오류를 수정했음에도 불구하고 계속해서 오류가 발생할때
| | 이 옵션을 부여한다. 대신 체크 속도는 느리다.
| -F, --fast | 테이블이 제대로 닫혀있는지 체크한다.
| -C, --check-only-changed | 마지막으로 체크한 이후로 변경된 테이블만 체크한다.
| -f, --force | 체크중 에러가 발견되면 에러 테이블을 표시해놓고
| | 바로 복구를 시작한다.
| -i, --information | 체크된 테이블의 정보를 출력한다.
| -m, --medium-check | --extend-check 체크보다 빠르게 체크한다.
| | 일반적으로 많이 사용한다.
| -U, --update-state | 에러가 발견된 테이블을 표시해둔다.
| -T, --read-only | 에러가 발견되어도 테이블에 표시해두지 않는다.
+---------------------------+----------------------------------------------------------+
다음은 -eis 옵션을 주고 테이블을 체크한 모습이다.
C:\windows\system32>
myisamchk -eis -v c:\APM_Setup\Server\MySQL\data\shopsample\orders
Checking MyISAM file: c:\APM_Setup\Server\MySQL\data\shopsample\orders
No recordlinks
block_size 1024:
Key: 1: Keyblocks used: 6% Packed: 0% Max levels: 1
Total: Keyblocks used: 6% Packed: 0%
Records: 8 M.recordlength: 17 Packed: 0%
Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00
Record blocks: 8 Delete blocks: 0
Record data: 136 Deleted data: 0
Lost space: 0 Linkdata: 0
다음으로 복구 옵션과 그 밖의 옵션은 다음과 같다.
+-------------------------------+------------------------------------------------------+
| 복구 옵션 | 설명
+-------------------------------+------------------------------------------------------+
| -B, --backup | .MYD 파일의 백업 파일을 '<파일명>-<생성시간>.BAK' 라는
| | 이름으로 만든다.
| --correct-checksum | 테이블의 checksum 정보를 바로 잡는다.
| -D, --data-file-length=<크기> | 복구후 다시 생성할 데이터 파일의 최대 크기를 지정한다.
| -e, --extend-check | 로우 단위로 세밀하게 복구한다. 따라서 많을 쓰레기 값들이
| | 생길 수 있다. 파일이 완전히 손상된 경우에만 이 옵션을
| | 사용하도록 한다.
| -f, --force | 기존의 임시 파일을 덮어쓴다.
| -r, --recover | 거의 모든 것을 복구한다.
| -n, --sort-recover | 임시 파일이 매우 크더라도 강제적으로 정렬해서 복구한다.
| -o, --safe-recover | 예전 버전의 복구 방법을 사용하여 복구한다. -r 보다는
| | 느리지만 -r 옵션에서 복구할 수 없는 몇가지 것들을
| | 복구할 수 있다.
| --character-sets-dir=... | 문자셋 디렉토리를 지정한다.
| --set-characater-set=<문자셋> | 문자셋을 지정한다.
| -q, --quick | 데이터 파일(.MYD) 를 제외하고 빠르게 복구한다.
+------------------------------+-------------------------------------------------------+
+------------------+-------------------------------------------------------------------+
| 그 밖의 옵션 | 설명 |
+------------------+-------------------------------------------------------------------+
| -a, --analyze | 키의 분포를 분석한다. 몇몇 JOIN 을 빠르게 할 것이다.
| -d, --description | 테이블의 정보를 출력한다.
| -S, --sort-index | 인덱스 블록을 정렬한다. 다음 값 읽기(read-next) 의 속도를 향상시킨다.
| -R, --sort-records | 인덱에 따라 로우를 정렬한다. SELECT 와 ORDER BY 속도를 향상 시킬
| =<인덱스 번호> | 수 있다. <인덱스 번호> 는 SHOW INDEX FROM <테이블명> 으로
| | 알 수 있다.
+------------------+-------------------------------------------------------------------+
테이블의 데이터 파일은 시스템이 전원이 나가서 MySQL 서버가 비정상 종료된 경우나 하드웨어의 결함 등으로 손상될 수 있다.
테이블이 손상된 경우에는 다음과 같은 에러가 출력될 수 있다.
<테이블명>.frm' is locked against change
Can't find file <테이블명>.MYI' (Errcode: <에러코드>)
Unexpected end of file
Record file is crashed
테이블이 손상되면 myisamchk 를 이용하여 복구를 실행하게 되는데, 손상된 부분을 찾아 복구 하는 과정을 알아보자.
그전에 먼저 테이블의 데이터 파일에 대해 알아야 할 필요가 있다. 앞서 설명한 바가 있지만 하나의 테이블에 대해 기본적으로 3 개의 파일이 생성된다. 각각의 파일은 다음과 같다.
+------------------+-------------------------------------------------------------------+
| 파일 | 설명 |
+------------------+-------------------------------------------------------------------+
| <테이블명>.MYI | 인덱스 파일이다.
| <테이블명>.frm | 테이블의 구조를 정의하는 파일이다.
| <테이블명>.MYD | 데이터 파일이다.
+------------------+-------------------------------------------------------------------+
에러 코드에 대한 에러 메세지를 보는 방법
MySQL 의 bin 디렉토리를 보면 perror 라는 유틸리티를 찾을 수 있다. 이 유틸리티는 MySQL 의 에러 코드에 대한 메시지를 확인할 때 사용할 수 있는 유틸리티이다. 사용 방법은 다음과 같다.
perror [옵션] [<에러코드1> [<에러모드2>...]]
perror 을 이용하여 몇 개의 에러 코드에 대한 메시지를 출력한 예이다.
C:\windows\system32>perror 126 127 132
MySQL error: 126 = Index file is crashed
MySQL error: 127 = Record-file is crashed
MySQL error: 132 = Old database file
테이블의 복구 과정은 다음과 같이 진행된다.
1 단계 : 테이블 체크
먼저 myisamchk *.MYI 를 실행하거나 시간이 더 있다면 myisamchk -e *.MYI 를 실행하여 어떤 테이블에 오류가 있는지 체크한다. 테이블의 오류가 체크되면 2 단계로 넘어가고, 체크가 되지 않거나 체크 도중 에러가 발생하면 3 단계로 넘어간다.
2 단계 : 쉬우면서 안전한 복구
오류가 있는 테이블을 발견하였으므로 myisamchk -r -q <테이블명> 을 실행하여 빠른 복구를 실행한다. -q 옵션을 부여하였기 때문에 데이터 파일(.MYD) 은 건드리지 않고 인덱스 파일을 복구할 것이다. 이런 식으로 계속해서 다음 테이블을 복구한다.
그래도 복구가 되지 않으면 다음과 같이 시도한다.
1. 데이터 파일을 백업해둔다.
2. myisamchk -r <테이블명> 을 실행하여 복구 모드로 복구를 실행한다. 오류가 있는 로우를 삭제하면서 새로운 인덱스 파일을 생성할 것이다.
3. 그래도 안되면 myisamchk --safe-recover <테이블명> 을 실행한다. 예전 버전의 복구 방법이지만 이 옵션으로 복구될 수도 있다.
복구 도중 에러가 발생하면 3 단계로 넘어간다.
3 단계 : 어려운 복구
이 단계는 인덱스 파일의 처음 16K 가 손상되거나 잘못된 정보를 가지고 있을 때 혹은 인덱스 파일이 없을 때 실시하게 된다. 이러한 경우 필요에 따라 다음과 같이 인덱스 파일을 생성하도록 한다.
1. 데이터 파일(.MYD) 을 다른 장소로 이동한다. 복사가 아니라 이동이다.
2. mysql> 에 접속하여 해당 테이블을 삭제한다. TRUNCATE TABLE 문장을 사용할 것을 권장한다.
3. 앞서 이동시켜둔 데이터 파일을 원래 위치로 복사하자. 이 때는 이동이 아니라 복사를 시켜서 만약의 사태를 대비한다.
4. myisamchk -r -q <테이블명> 을 실행하여 복구한다. .frm 파일과 .MYD 파일을 이용하여 인덱스 파일(.MYI) 이 복구될 것이다.
4 단계 : 매우 어려운 복구
이 단계는 .frm 파일마저 심하게 손상되었을 때 실행한다. 사실 최초 테이블을 생성항 이후 .frm 파일은 변경될 일이 없기 때문에 .frm 파일이 손상되는 일은 거의 발생하지 않는다. 이러한 경우 다음과 같은 방법으로 복구를 실시한다.
1. 백업해둔 파일이 있다면 백업해둔 .frm 파일을 원래 자리로 복사시키고 3 단계를 실시한다.
그리고 백업해둔 .MYI 파일을 원래 자리로 복사시키고 2 단계를 실시한다. 그리고 나서 마지막으로 myisamchk -r 을 실행한다.
2. 백업해둔 파일은 없지만 테이블의 구조를 알고 있다면 .frm 파일과 .MYI 파일은 복구할 수 있다. 먼저 다른 곳에서 새로 테이블을 생성하여 .frm 과 .MYI 파일을 만들 수 있다. 물론 .MYD 파일은 새로 만들 수는 없을 것이다. 2 단계로 가서 기존의 .MYD 파일을 이용하여 .MYI 파일을 재구성한다.
출처 : 네이버 블로그 어딘가.. -_-;; 예전에 받아서 보고 정리해놓은... 거라...
출처: http://smiletw.myscan.org/myarticle/TarBackup.txt
=====================================================================================
제 5회 데비안유저스 세미나
날 짜 : 2002년 5월 11일
작성자 : 엄태욱(smiletw)
=====================================================================================
백업 용어 정리
- 풀 백업 (full backup)
파일 셋 안의 모든 파일을 포함해서 모두 복사하는 방법
하나의 컴퓨터 시스템이나 하나의 디스크 파티션에서 사용
새로운 커널을 만든다거나 새로운 어플리케이션 팩키지를 추가한다든지 또는
새로운 버젼의 운영체제를 설치하는 등의 시스템에 중요한 변화를 주었을 경우
- 증분 백업 (incremental backup)
시스템이 이전에 백업한 이후로 변경된 파일만을 복사
풀 백업이 너무 방대하고 자료 변경이 별로 없을 때
- 백업 단계 (backup level)
단계(level) 0 : 풀 백업
단계(level) 1 : 마지막 풀 백업(단계 0) 이후에 변경된 모든 파일 저장
단계(level) 2 : 마지막 단계 1 백업 이후에 변경된 모든 파일 저장
- 무인 백업 (unattended backup)
cron을 사용해 백업 명령어가 자동으로 수행
보안이 확실히 보장될 때가 아니면 무인 백업은 사용하지 않는것이 좋다.
tar
테이프 생성을 위한 유틸리티로서 바이너리 데이터를 처리할 수 있다. 또한 여러 디렉토리를
아카이브로 묶을 수 있으며 링크를 포함하는 디렉토리들을 전송할 수 있으면서도
파일의 소유권과 액세스 퍼미션 등도 그대로 보존할 수 있는 장점이 있다.
간단한 tar의 사용법
tar의 플래그
c : 아카이브 생성
x : 아카이브로 부터 파일 추출
t : 목차 테이블 보기
v : 상세한 정보 출력
$ cd /
$ tar -cf backup.tar home
/home 의 하위디렉토리를 포함하여 backup.tar로 저장
$ gzip backup.tar
backup.tar.gz 이라는 파일을 생성하여 원래의 tar 아카이브보다 훨씬 더 작게 압축
$ cd /
$ tar -cf - home | gzip > backup.tar.gz
$ tar -cvf - home | gzip > backup.tar.gz 을 하였을때는 tar에 따라서 v(verbose)
옵션을 stderr로 처리하지 않고 stdout으로 처리하여 문제를 일으키는 경우가 있다
따라서 아카이브를 만들때는 v옵션을 빼는 것이 좋고, 아카이브를 풀 때는 v 옵션과
관계가 없다.
$ gunzip backup.tar.gz
$ tar -xf backup.tar
$ zcat backup.tar.gz | tar -xf -
GNU tar의 경우 gzip 처리를 내장하고 있다. 따라서 다음과 같이 처리할 수 있다.
$ cd /
$ tar -czf backup.tar.gz home
$ tar -xzf backup.tar.gz
$ tar -tf backup.tar
아카이브를 풀기전에 항상 파일들의 이름을 먼저 검사한다
만일 아카이브 소그이 파일들이 현재 디렉토리에 풀리도록 묶여 있다면,
임시 디렉토리를 새로 하나 만들고, 그곳으로 이동(cd)하여 파일들을 풀어낸다.
일부 파일들만 뽑아내기
$ tar -xvf backup.tar filename
여기서 filename은 tar의 t옵션으로 파일의 경로명까지 알아야 한다.
filename과 ./filename은 서로 다르므로 정확한 파일명을 지정해야 한다.
$ tar -xvf backup.tar `tar -tf backup.tar|grep filename`
의 방법을 쓰는 것도 좋다.
절대 경로 문제
절대경로를 갖는 디렉토리 또는 파일을 복구할때 문제가 발생한다.
tar는 아카이브에 지정되어 있는 경로명으로 파일을 복구하기 때문에
파일이 복구될 곳을 변경할 수가 없다. 따라서 이미 존재하는 파일을 덮어쓰거나
퍼미션 문제가 발생할 수 있다.
GNU tar의 경우, 기본적으로 모든 절대 경로명을 상대경로 변경하여 아카이브를 만든다.
--absolute-names 옵션을 사용하면 절대 경로로 아카이브를 만든다.
가장 좋은 방법은 아카이브를 만들때 디렉토리가 슬래시(/)나 틸드(~)로 시작하지
않도록 조심하는 것이다.
또는
$ cd /
$ tar -cf backup.tar .
를 줄여서
$ tar -cf backup.tar -C / .
-C 옵션은 아카이브를 생성하기 전에 /로 이동하도록 한다. 여러 개의 디렉토리들을
아카이브로 만들려면 -C옵션을 여러번 사용한다.
$ tar -cf backup.tar -C /home/smiletw . -C /home/woody ./test
아카이브에 추가하기
4 tar -uvf backup.tar home
새로운 파일들만 업데이트 한다.
동일한 파일이 업데이트 되면 아카이브 마지막에 추가한다.
(테입장치에서는 중간에 넣을 수 없는 것을 감안)
GNU tar를 이용한 풀백업 및 증분 백업
일반적으로 tar를 이용해서 아카이브를 만들면 풀백업이 된다. 그러나 사용자 홈디렉토리
또는 한 파티션 전체를 백업할때는 풀 백업을 자주 사용하기 힘들다. 이럴경우 풀 백업과
함께 증분 백업을 해 주는 것이 좋다. GNU tar는 옵션 처리만으로 손쉽게 풀백업과
증분 백업이 가능하게 해준다.
먼저 GNU tar의 풀 백업 및 증분 백업에 쓰이는 옵션이 2가지 있다. -G (--incremental)
옵션과 -g snapshot-file (--listed-incremental) 이 그것이다.
-G 옵션은 예전 증분 백업 포맷으로 아카이브를 생성해 준다. 이 옵션으로 생성된
아카이브에는 아카이브 내에 포함되어 있는 파일이나 디렉토리의 정보가 들어가므로
비표준 아카이브로 생성된다. 따라서 GNU버젼이 아닌 tar로도 내용을 볼 수가 없게 된다.
-g snapshot-file 옵션은 표준 아카이브로 생성되면서, 파일이나 디렉토리 등의 정보를
snapshot-file에 따로 저장함으로써, 표준 아카이브를 생성하게 만들어 준다. 따라서
GNU tar를 이용한 풀 백업 및 증분 백업에서는 -G 옵션이 아닌 -g snapshot-file 옵션을
사용하는 것이 좋다.
풀 백업
$ tar -g list -czvf backup.tar.gz home/
list 라는 snap-shot 파일이 생성된다. 그리고 backup.tar.gz이라는 백업된
아카이브가 생성된다.
증분 백업
$ tar -g list -czvf backup-1.tar.gz home/
기존의 list 파일에서 이미 풀 백업된 내용을 확인하고, 그 이후에 변경되거나 추가되거나
삭제된 파일들을 backup-1.tar.gz에 백업한다.
GNU tar를 이용한 복구
먼저 풀 백업된 아카이브를 복구한다.
$ tar -g list -xzvf backup.tar.gz
다음으로 증분 백업된 아카이브들 중 가장 최근에 백업한 것만 복구하면 된다.
$ tar -g list -xzvf backup-10.tar.gz
백업 및 복구의 유용한 옵션
-W (--verify) 검증
백업을 하는 도중 변경되는 파일이 있을 경우가 있다. 특히 풀 백업과 같이 시간이
오래 걸리는 백업의 경우 아카이브가 생성되는 동안 변경될 가능성이 높다. 따라서
풀 백업의 경우 검증해주는 것이 좋다.
$ tar -g list -cvf backup.tar home/
이 경우 아카이브 생성 후, 아카이브의 내용과 실제 디렉토리의 내용과 같은지 확인한다.
그러나 gzip으로 압축하는 -z 옵션과 같이 사용할 수 없다. 따라서 검증 옵션을 사용해서
아카이브를 생성할 경우 gzip압축은 따로 해주어야 한다.
백업 정책
GNU tar의 경우 앞서 말한 level 1 백업까지만을 지원해 준다. snapshot-file이 없을
경우 풀 백업(level 0)을 하고, snapshot-file이 이미 존재할 경우 증분 백업(level 1)을
하게 된다. 따라서 어느 시점에 풀 백업을 해야 하는지가 백업 정책에서 중요하다.
백업할 파일들이 자주 변경될 경우, 풀 백업의 주기도 짧아진다. 또한 변화될 데이터가
매우 중요할 경우, 백업도 자주 해야한다.
일반적으로 level 1 백업만을 지원해 주는 GNU tar를 이용한다면, 1주일에 한번 풀 백업
을 실행하고 매일 증분 백업을 한다. 백업하는 시간은 파일의 변화가 적은 새벽이 좋다.
따라서 일요일 새벽12시를 전 후해서 풀 백업을 하고, 매일 새벽에 증분 백업을 하는 것이
좋다.
또한 풀 백업의 경우, 검증 옵션 (-W)을 사용하여, 아카이브를 검증해주는 것이 좋다.
그리고 아카이브의 크기를 줄이기 위해서 -z 옵션을 사용하여 압축해 주는 것이 좋다.
아카이브를 만들 때는 아카이브의 이름에 신경을 써주어야 백업을 할 때, 혼란이 적다.
풀 백업을 할 경우 다음과 같이 snapshot-file의 이름도 백업 날짜를 써주는 것이 좋다.
$ tar -g 2002-05-11.list -W -cvf 2002-05-11-full.tar home/
증분백업 때도 마찬가지로 날짜를 써 주는 것이 좋다.
$ tar -g 2002-05-11.list -czvf 2002-05-12.tar.gz home/
그리고 -g 옵션에 쓰이는 snapshot-file의 보관 또한 중요하다. snapshot-file이 없으면
증분 백업된 아카이브는 수정된 부분만 저장되어 있는 일반 아카이브와 같아진다. 즉,
풀 백업 이후 삭제된 파일이 있음에도 불구하고, 증분 백업된 아카이브를 복구할 때,
풀 백업된 아카이브의 복구때 생성된 파일이 삭제되지 않는다. 따라서 용량이 작은
snapshot-file은 꼭 따로 안전한 곳에 보관해 주어야 한다.
참고문헌
--------
유닉스 파워툴 (한빛 미디어)
시스템 관리의 핵심 (한빛 미디어)
GNU tar manual : http://www.gnu.org/manual/tar-1.12/html_mono/tar.html
이 문서는 GNU GPL를 따릅니다.
# by | 2007/12/21 03:42 | LINUX | 트랙백 | 덧글(0)
tar - GNU 버전 tar 저장 도우미
이 설명서는 tarfile 이라고 알려진 저장 파일을 묶거나 풀 수 있도록 만들어 진 GNU 버전 tar 저장 프로그램에 대한 설명이다. tarfile 은 테이프 드라이브에 저장할 수도 있고, tarfile 을 일반적인 보통 파일로 쓸 수도 있다. tar 의 첫번째 인수로는 반드시 Acdrtux 중 하나의 옵션이 들어가야 하고, 다른 선택적인 기능이 덧붙여진다. tar 의 마지막 인수로는 압축될 파일이나 디렉토리의 이름이 오게된다. 디렉토리 이름이 사용될 경우 언제나 하위 디렉토리가 함께 저장된다.
가장 많이 사용하는 일반적인 옵션
[압축할 때] tar cvzf 파일명.tar.gz <디렉토리> 또는 파일
[압축 해제] tar xvzf 파일명.tar.gz
[예제]
tar -xvvf foo.tar : foo.tar 파일을 푼다.
tar -xvvzf foo.tar.gz : gzip으로 압축된 foo.tar.gz 파일을 푼다.
tar -cvvf foo.tar foo/ : foo 디렉토리에 있는 내용물을 foo.tar 파일로 묶는다.
기능 옵션
반드시 아래 옵션들 중 하나가 들어가야 한다.
-A, --catenate, --concatenate : 저장 파일에 tar 파일을 추가한다.
-c, --create : 새 저장 파일을 만든다.
-d, --diff, --compare : 저장 파일 혹은 파일 시스템 간의 다른 점을 찾는다.
--delete : 저장 파일에서 지운다. (자기 테이프에는 쓰면 안됨!)
-r, --append : 저장 파일의 끝에 파일을 덧붙인다.
-t, --list : 저장 파일의 내용 목록을 보여준다.
-u, --update : 저장 파일에 저장된 사본보다 새로운 파일만을 덧붙인다.
-x, --extract, --get : 저장된 것에서 풀어낸다.
부가적인 옵션
--atime-preserve : 덤프된 파일의 접근 시간을 바꾸지 않는다.
-b, --block-size N : 블럭 크기를 N x 512 바이트로 정한다. (기본값 N = 20)
-B, --read-full-blocks : 읽은 만큼 블럭을 재지정한다. (4.2BSD 파이프를 읽기 위함)
-C, --directory DIR : DIR 디렉토리로 바꾸고 작업을 한다.
--checkpoint : 저장 파일을 읽는 동안 디렉토리 이름을 출력한다.
-f, --file [HOSTNAME:]F : 저장 파일 혹은 장치 파일 F에 저장한다.
(기본 "-", 표준입/출력을 나타낸다.)
--force-local : colon 문자가 있더라도 저장 파일을 지역 파일로 처리한다.
-F, --info-script F --new-volume-script F : run script at end of each tape (implies -M)
테이프의 끝에 도달하면 스크립트를 실행한다. (-M 이 포함된다.)
-G, --incremental : 이전 GNU 형식으로 incremental 백업을 만들거나 목록을 보거나 풀어낸다.
-g, --listed-incremental F : 새로운 GNU 형식으로 incremental 백업을 만들거나 목록을 보거나
풀어낸다.
-h, --dereference : 심볼릭 링크를 묶지 않는다. 그것이 가리키는 파일을 묶는다.
-i, --ignore-zeros : 크기가 0인 것은 무시한다. (보통 EOF를 의미한다.)
-j, --bzip2 : bzip2 필터를 사용하여 .bz2 파일을 푼다.
--ignore-failed-read : 읽을 수 없는 파일이 있더라도 종료 코드 0을 출력하지 않는다.
-k, --keep-old-files : 기존에 있는 파일을 유지한다. 파일이 있으면 덮어쓰지 않는다.
-K, --starting-file F : 저장 파일에 있는 파일 F에서부터 시작한다.
-l, --one-file-system : 저장 파일을 만들 때 로컬 파일 시스템 안의 놓는다.
-L, --tape-length N : N * 1024 바이트를 쓴 다음 테이프를 바꾼다.
-m, --modification-time : 파일의 변경 시간 정보를 유지하지 않는다.
-M, --multi-volume : 여러 개로 나눠진 저장 파일로 만들거나 목록을 보거나 풀어낸다.
-N, --after-date DATE, --newer DATE : 주어진 DATE 보다 새로운 파일만 저장한다.
-o, --old-archive, --portability : ANSI 형식 대신 V7 형식으로 저장한다.
-O, --to-stdout : 표준 출력으로 파일들을 풀어낸다.
-p, --same-permissions, --preserve-permissions : 모든 퍼미션 정보를 유지한다.
-P, --absolute-paths : 파일 이름의 맨 앞 `/' 문자를 버리지 않는다.
--preserve : -p 옵션과 -s 옵션을 함께 사용한 것과 같다.
-R, --record-number : 저장 파일의 레코드 번호를 각각의 메시지로 보여준다.
--remove-files : 파일을 저장 파일에 덧붙인 다음 파일을 지운다.
-s, --same-order, --preserve-order : 저장 파일 목록과 똑같은 순서로 풀어낸다.
--same-owner : 같은 사용자 소유권으로 파일들을 풀어낸다.
--numeric-owner : user/group 이름으로 항상 숫자를 사용한다.
-S, --sparse : 듬성한 파일을 효율적으로 다룬다.
-T, --files-from F : 파일 F에서 목록을 읽어 추출하거나 만든다.
--null : -T reads null-terminated names, disable -C -C를 비활성화하고, -T로 읽을 때 null로 끝
나는 이름을 읽는다.
--totals : --create로 만들어진 바이트 총합을 출력한다.
-v, --verbose : 처리중인 파일을 자세하게 보여준다.
-V, --label NAME : 저장 파일의 볼륨 이름을 NAME으로 한다.
--version : tar 프로그램의 버전 정보를 출력한다.
-w, --interactive, --confirmation : 각각을 처리할 때 마다 물어본다.
-W, --verify : attempt to verify the archive after writing it 저장 파일을 쓴 후에 저장 파일을
점검한다.
--exclude=FILE : FILE을 제외한다.
-X, --exclude-from FILE : FILE 목록에 있는 것을 제외한다.
-Z, --compress, --uncompress
compress로 압축하거나 푼다.
-z, --gzip, --ungzip : gzip으로 압축하거나 푼다.
--use-compress-program PROG : PROG로 저장 파일을 다시 처리한다. (PROG은 반드시 -d를 처리해야 한다.)
--block-compress : 테이프에 저장할 때 압축 프로그램의 출력을 막는다.
--rsh-command=CMD : `rsh' 대신 원격 COMMAND를 사용한다. 이 옵션은 표준 `rsh' 대신 원격 장치에 접근
할 수 있는 다른 것(예를 들어, Kerberized `rsh')을 사용하는 사람들을 위해 필요하다.
-[0-7][lmh] : 드라이브와 밀도를 지정한다.
출처 : 네이버 지식인 ( http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10202&eid=SCUcWoZoEKga3XgZVrEauQF3LeNP8lj7&qb=dGFyIGZvcmNl )
# by | 2007/12/20 23:18 | LINUX | 트랙백 | 덧글(0)
# by | 2007/12/13 13:09 | 일/작업/무저갱.. | 트랙백 | 덧글(0)
# by | 2007/12/13 10:54 | LINUX | 트랙백 | 덧글(0)
# by | 2007/12/09 00:48 | MySQL | 트랙백 | 덧글(0)
◀ 이전 페이지 다음 페이지 ▶