리눅스 cpio
더 많은 작업
- 파일을 복사하고 압축한다. (주로 백업용)
- 유닉스와 리눅스 모두에서 명령어와 옵션이 같음
- 경로 : /bin/cpio
cpio [옵션] [대상디렉터리]
| 모드 | 옵션 | 하는 일 |
|---|---|---|
| 복사 출력(copy-out) | -o | 표준 입력으로 받은 파일 목록을 묶어 아카이브를 만든다(백업) |
| 복사 입력(copy-in) | -i | 아카이브에서 파일을 꺼낸다(복원). -t 를 함께 주면 꺼내지 않고 목록만 보여 준다 |
| 복사 통과(pass-through) | -p | 아카이브를 만들지 않고 파일을 다른 디렉터리로 바로 복사한다 |
- -F 파일 : 표준 입출력 대신 지정한 아카이브 파일을 쓴다. -O 파일(-o 에서), -I 파일(-i 에서)도 같은 일을 한다
- -0, --null : 파일명의 끝이 줄 바꿈 문자가 아니라 NULL로 끝난다.
- -a, --reset-access-time : 파일 접근 시간을 재설정한다.
- -A, --append : 압축된 파일에 파일을 추가한다. -o 옵션에만 작동한다.
- -B : I/O 블록을 5,120바이트로 지정한다. 초기치는 512바이트이다.
- --block-size=BLOCK-SIZE : I/O 블록사이즈를 BLOCK-SIZE * 512바이트로 지정한다.
-c : ASCII문자로 파일의 헤더 정보를 작성한다
-C bufsize : 입출력은 bufsize바이트로 레코드를 블록화한다
-d : 디렉토리가 필요하면 자동적으로 생성한다
-f : patterns과 일치하는 것을 제외한 모든 파일을 복사
-k : 파일의 헤더가 망가졌거나 입출력 오류 시 작업을 종료 하지 않고 다음 현재 파일은skip하고 다음 파일을 읽는다. ( -i 에서만 사용) 가능하면 파일을 복사하지 않고 링크 시킨다 (-p 에서만 사용)
-m : 파일의 최종 수정 시간을 현재 파일이 가지고 있는 시간을 그대로 유지한다
-M message : 백업 미디어 매체 교환이 필요할 때 사용자가 그 메시지를 정의 하여 사용할 수 있도록 한다
-O file : cpio의 출력을 file에 지정한다 (-o 에서만 사용)
-r : 대화식으로 파일명을 변경 한다(-p 에서는 사용불가능)
-b : 각 단어 내의 바이트 순서를 바꾼다(-i에서만 사용)
-s : 각 half word의 두 바이트를 서로 교환한다(-i에서만 사용)
-S : 각 word의 두half word를 서로 교환한다(-i에서만 사용)
-t : 입력파일 목록을 출력하고 파일은 생성하지 않는다
-u : restore시에 기존의 디렉토리에 그 파일이 존재하더라도 무조건 복사한다. 이 값을 설정하지 않으면 두 개의 수정 날짜를 비교하여 더 최근의 파일을 보존한다
-v : 현재 작업이 진행되고 있는 파일 목록을 표준 출력으로 출력 한다
-V : 현재 작업이 진행되고 있는 각 파일을 한 개의'.'으로 출력 한다.
ex) 텍스트파일 백업
# find . -name *.text -print | cpio -o > text.backup
ex) 텍스트파일 복원
# cpio -i < text.backup
ex) 백업 내용만 확인 (파일을 만들지 않는다)
# cpio -icvt < text.backup
- -i 는 복사 입력, -c 는 ASCII 헤더(-oc 로 만든 아카이브), -v 는 자세히, -t 는 목록만 출력이다
- -icdv 는 필요한 디렉터리를 만들며 실제로 복원하고, -ocvF 파일 은 아카이브를 만드는(백업) 쪽이다
- 표준 입력으로 파일 목록을 받으므로 find·ls 와 파이프로 묶어 원하는 파일만 고를 수 있고, 많은 양의 데이터를 백업할 때 유리하다
- 일반 파일뿐 아니라 장치 파일 같은 특수 파일도 아카이브에 담는다
- 아카이브 일부가 손상되어도 손상된 부분을 건너뛰고 나머지를 복구할 수 있다(-k)
- 자체 증분 백업 기능은 없다. 바뀐 파일만 백업하려면 find -newer 로 목록을 골라 넘긴다
# 현재 디렉터리의 .conf 파일을 posein.cpio 로 백업 # ls *.conf | cpio -ocv > posein.cpio # 복원 # cpio -icv < posein.cpio
- 파일 목록은 파이프(|) 로 넘기고, 만든 아카이브는 리다이렉션(>) 으로 파일에 쓴다. 만들 때는 -o, 풀 때는 -i 다
| 도구 | 단위 | 증분 백업 | 특징 |
|---|---|---|---|
| cpio | 파일 목록 | 없음 | 특수 파일 백업, 손상 부분을 건너뛰고 복구 |
| dd | 블록(디스크·파티션 통째) | 없음 | 파일을 골라 담을 수 없다. MBR·디스크 이미지 |
| dump | 파일 시스템 | 있음(0~9 레벨) | EXT 계열 파일 시스템 전체 백업 |
| rsync | 파일·디렉터리 동기화 | 바뀐 부분만 전송 | 원격지 미러링 |