본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# Linux

리눅스 아카이빙

by iamlucia 2021. 1. 3.

 

효율적으로 데이터를 백업하는 데 사용되는

아카이브


아카이빙과 압축

압축 Compression : 파일이나 아카이브가 디스크에서 차지하는 공간을 줄여주는 소프트웨어 도구 (알고리즘을 통해)

아카이빙 Archiving : 단일 파일에 파일과 디렉터리들을 넣어 묶기

> 네트워크를 통해 큰 아카이브 파일을 전달할 계획이라면 압축하는 편이 더욱 좋음 

 

아카이빙에 고려할 사항

이미지

 

데이터 백업

 

파티션을 알아야 한다. 

즉, 해당 파티션을 백업하기 위해 이 파티션의 용량이 어느정도인지 어디에 위치하는지 파악이 필요

 

/dev/root  :  / 에 마운트되어있는 루트 파티션

*tmpfs : 임시파일시스템으로 백업할 필요가 없음

*dev : 시스템엔 연결된 모든 장치가 표시되는 파일 형태

 

+

/usr또는 /var 파티션

boot 파티션

 

실습 : tar 

테스트용 디렉토리와 파일을 만들어 tar 파일로 묶어본다.

현재 작업 디렉터리 외부에 있는 파일과 디렉터리도 대상으로 선택할 수 있고, 

tar 명령어를 실행한 디렉토리 아래에 tar파일이 생성된다.

 

원하는 확장자 파일만 아카이브 파일로 만들고 압축까지 한다. (tar czvf ~)

그러면 tar.gz 확장자명의 파일이 생성된다.

 

실습 2 : Split 

아카이브 파일이 아주 큰 경우 여러 개의 작은 파일로 나누어 전송한 다음 새로운 곳에서 원래 파일로 합칠 때 사용

 

1. split 했다가

2. cat 으로 생성한 데이터 스트림한 다음 돌리고자 하는 파일로 리다이렉션

 

 

실습 : 파일 시스템 아카이브 스트리밍

 

> 명령어 한줄씩 분석

 

* -  : 내용을 표준 출력 장치에 출력하게 한다 
* --one-file-system : 현재 파일 시스템 외에 다른 파일 시스템에 있는 ㅔ이터 모두 제외( 즉, tmp 와 같은 파티션이 제외됨) 
* / /usr /var : 아카이브에 추가할 파티션 명시 (또는 파일 목록)
* --exclude= : 현재 파일 시스템에서 제외하고 싶은 데이터 명시 
* |  ssh : 앞의 명령문 실행 결과를 ssh 세션을 통해 다른 서버에 보내고, 
* "cat > ~" : 원격 서버가 파이프로 전달받은 데이터 스트림을 해당 파일의 내용으로 저장 

 

find 명령어

아카이빙하려는 파일이 모두 단일 디렉터리 구조 안에 모여있지 않은 경우에는?

원하는 파일만 쏙쏙 골라 모으기 위해 find 명령어를 사용한다.

 

👍find : 주어진 규칙에 맞는 파일들을 찾아내어 파일의 이름과 위치를 표준 출력으로 출력 

 

tar -r옵션 : 기존 아카이브에 내용을 추가할 수 있다.

find -iname 옵션 : 대문자 소문자 모두 구분없이 ㅣㅐㅊㅁ매칭 

find -name 옵션 : 대소문자 구분하여 매칭 

권한으로 인해 검색이 제한되지 않도록 sudo + 명령어를 실행하는 것이 좋음

 

 

아카이브 추출 

*아카이빙 작업으로 파일 접근 권한소유자 속성이 손상되지 않도록 해야 한다.

 

원본과 똑같이 파일접근권한이나 소유권속성을 보존하며 아카이빙을 하기 위해서는

root 관리자 권한으로 작업을 수행해야 한다. 

 

> 권한 관련 명령어

chmod g+x ~ : 그룹에 실행 권한 추가  

chmod o-r ~ : 나머지 사용자로부터 읽기 권한 삭제

 

> 소유자 속성 설정 명령어

chown username:username ~ 

 

관리자 권한으로 하지 않고, tar 작업을 했을 때

 

소유권 속성이 ubuntu 계정으로 돌아와 버림! 손상이 되었다!

> sudo 권한으로 tar 작업을 했을 때 소유권 속성이 그대로 보존되었다 

 

 

'자기발전소 > # Linux' 카테고리의 다른 글

[Linux] 디스크 관리하기  (1) 2021.01.26
Windows Subsystem for Linux(Windows 10) 설치 기록  (0) 2021.01.05
리눅스 프로세스 관리  (0) 2021.01.03
가상화 : Hypervisor  (0) 2020.11.03
Linux : 리눅스에 대하여  (0) 2020.11.03