Presentation is loading. Please wait.

Presentation is loading. Please wait.

Itbank solaris Pm 4:00 class 김 정 훈

Similar presentations


Presentation on theme: "Itbank solaris Pm 4:00 class 김 정 훈"— Presentation transcript:

1 Itbank solaris Pm 4:00 class 김 정 훈
TAR (create tape archives and add or extract files) 기록들을 묶고, 파일을 빼내거나 추가하는 작업 안녕하세요. tar 명령어 발표를 맡은 김정훈 입니다. 다음페이지 Itbank solaris Pm 4:00 class 김 정 훈

2 발표 진행 방식 특징 옵션 기능 살펴보기 상황 별 대처방법 기본 문법 옵션
먼저 간단하게 발표 진행 방식에 대해서 알려드리겠습니다. 제일 먼저 tar 의 특징, 기본 문법, 옵션 에 대해서 알아볼 것이고요. 이3가지를 통해서 중요 옵션이 어떤 기능을 하는 것인지, telnet 캡쳐 파일들을 통해서 알아볼것입니다. 저같은 경우에는 manual page 아무리 쳐다보고, 네이버 지식검색 뒤져도 잘 모르겠더라고요. 역시 명령어를 익히는데에는 간단한 기능 10%에 90%의 삽질이 큰 역할을 하는것 같습니다. 그래서 tar manual page의 각 예제들을 현실에 맞게 바꿔 ‘각 상황별 대처방법’에 대해서 설명 드리겠습니다. 다음페이지 옵션 기능 살펴보기 상황 별 대처방법 기본 문법 옵션

3 Tar 의 특징 일반적으로 마그네틱 테잎에 사용됨 파일 시스템이 무관하게 사용되기 때문에 대부분의 운영체제에서 사용가능
tar 특징에 대해서 간단히 말씀 드리겠습니다. 1. 마그네틱 테잎에 사용된다. 2. 대부분 운영체제에서 사용 가능하다. 3. 파일들을 하나로 묶어주는 압축효과가 있다 4. 옵션 사용시 – 기호를 사용하지 않는다. 이런 특징들이 있는데요. 여러분께서는 tar 의 제일 중요한 2가지 기능, 마그네틱 테잎에 사용하고! 파일들을 하나로 묶어준다는거 이것에 초점을 두고 tar 를 이해하시면 될것 같습니다. 다음페이지 일반적으로 마그네틱 테잎에 사용됨 파일 시스템이 무관하게 사용되기 때문에 대부분의 운영체제에서 사용가능 자체적 압축기능이 없으나 파일들을 하나로 묶어주는 압축효과가 있음 옵션 사용시에 기호(-)를 사용하지 않고, 영문자 사용 예) tar –cvf → tar cvf

4 Tar 명령어의 기본문법 [ ] : 생략 가능 { } : 필 수 | : 선 택 tar 기본 문법입니다. tar manual page의 앞부분을 복사했는데 지금 쳐다봐도 무슨말인지 잘 모르겠습니다. 여러분께서는 명령어 manual page를 보실때, 오르쪽 위의 간단한 방법을 통해서 보시면 더 쉬울것 같습니다. 대괄호는 생략이 가능하고요! 중괄호는 필수적으로 사용해야하고! 파이프는 선택 가능하다는 방법을 통해서 보시면 좀 더 쉽게 느껴지지 않을까 생각됩니다. 그럼 오른쪽 위의 방법을 통해서 옵션 문법들을 정리해볼까요? 다음페이지 tar [block] [tarfile] [exclude-file] {-I include-file | -C directory | file | file} ... tar [block] {-I include-file | -C directory | file | file} ... tar t[BefFhiklnqvX[0-7]] [tarfile] [exclude-file] {- I include-file | file} ... tar [block] [tarfile] file... tar x[BefFhiklmnopqvwX[0-7]] [tarfile] [exclude-file] [file...]

5 Tar 명령어의 기본문법 [ ] : 생략 가능 { } : 필 수 | : 선 택 네~ 정리 하면 이렇게 간단하게 펼쳐집니다. f 의 경우는 거의 필수적으로 사용하신다고 생각하시 됩니다. 그래서 생략 가능 옵션인데도 제 판단하에 생략하지 않았습니다. 그럼, 이 페이지를 보시면 tar 의 기능들이 대충 5가지 정리되는데요. 여러분께서는 3가지 기능을 제일 많이 사용하실테니까요, c,t,x 3가지 기능에 집중해서 보시면 됩니다. tar [block] [tarfile] [exclude-file] {-I include-file | -C directory | file | file} ... tar [block] {-I include-file | -C directory | file | file} ... tar t[BefFhiklnqvX[0-7]] [tarfile] [exclude-file] {- I include-file | file} ... tar [block] [tarfile] file... tar x[BefFhiklmnopqvwX[0-7]] [tarfile] [exclude-file] [file...]

6 Tar 의 기본 옵션 c - tar file/tape 생성 r - 기존의 tar 파일 끝에 새로운파일 추가
네. 그럼 일단 5가지로 함축된 기본 옵션들에 대해서 알아보겠습니다. c(크리에이트) 만든다! t(table) 리스트를 나열한다! x(익스큐트) 해제한다. 복구한다. 이3가지가 제일 중요하고요. 나머지 2가지는 그냥 저런 기능이 있구나 라고만 이해하시고요. 그렇게 크게 고려 안하셔도 될것 같습니다. 다음페이지 c - tar file/tape 생성 r - 기존의 tar 파일 끝에 새로운파일 추가 t - tar file/tape의 내용 리스트 출력 u - tar 파일의 추가 또는 수정 x - tar file/tape에서 내용들을 복구

7 Tar 의 추가 옵션 b - 테이프를 이용할 때 블록 크기 지정 e - 예상치 않은 에러발생시 정상종료상태를 반환하며 종료
tar 에 기본 옵션 말고도 아까 생략 가능했던 옵션들이 있었는데요. 지금 보시는 7페이지와 8페이지로 이렇게 2페이지가 있는데요. 여러분들께서 외우셔야할것은 그렇게 많지 않습니다. 지금 보시는 7페이지의 경우에는 f 옵션과 h옵션 정도만 외우셔도 될것 같습니다. (각 옵션 한번씩 읽어주기) 다음페이지 b - 테이프를 이용할 때 블록 크기 지정 e - 예상치 않은 에러발생시 정상종료상태를 반환하며 종료 f - 매개변수를 tar 파일로 지정. 지정하지 않을 경우 환경변수 tape를 기본적으로 이용 h - 심볼릭 링크인 경우 실제의 파일내용을 이용 i - 디렉터리의 checksum에러 무시

8 Tar 의 추가 옵션 m - tar파일을 풀 때 각 파일의 수정시간을 tar 파일 푸는 현재 시간으로 설정
여기 8페이지에서는요 p 옵션과 v 옵션에 이 2가지만 확실히 알고 있으시면 될것입니다. 리눅스나 솔라리스나 그나마 참 다행인것이 왠만한 옵션들이 비슷비슷하다는것입니다. p옵션이라던가 v 옵션의 경우에는 다른명령어들에서도 비슷한 기능으로 쓰다보니 tar 에서도 금방 외우기 쉬우실 것이라고 생각합니다. 다음페이지 m - tar파일을 풀 때 각 파일의 수정시간을 tar 파일 푸는 현재 시간으로 설정 p - tar파일을 복구할때 umask 값을 무시하고, 원래의 파일접근권한을 이용. 슈퍼유저의 경우 setuid, sticky bit 값도 복구 v - tar의 작업진행 상황을 보여준다 w - 작업 수행시 각각의 작업을 수행할지의 여부를 물어본다

9 주의사항 여기서 주의사항! tar 명령어를 사용하실때 되도록이면 상대경로를 이용해서 압축을 해주어야 한다는 사실입니다. 간단히 결론부터 말씀 드리자면 절대 경로로 묶었으면 절대 경로 그대로 풀리고, 상대경로로 묶으면 상대 경로로 풀린다는 것인데요, 다음페이지의 예를 보시면서 확인하시겠습니다. 다음페이지 Tar 명령어는 file, directory 를 묶을때 지정한 경로명을 그대로 사용하여 묶고, tar file을 푸는 경우에는 tar file에 명시된 대로 file, directory를 푼다 절대 경로로 묶었으면 절대 경로 그대로 풀리고, 상대경로 묶었으면 상대 경로로 풀린다

10 Example 01. 현재디렉터리 - /example
A를 보시면 /EXAMPLE/ 디렉토리의 2개의 파일(TEST01, TEST02)을 절대경로로 압축을 해준것이고요. B를 보시면 /EXAMPLE 디렉토리에서 2개의 파일(상동)을 상대경로로 압축을 해주었습니다. 그 파일이 각각 C, D 파일이 되는데요. 그럼 이 2개 파일이 어떤 차이를 가지고 있는지 확인 시켜드리겠습니다. 다음페이지 절대적 B 상대적 C D

11 Example 01. 현재디렉터리 - /abc/def
예, 이제 파일과 디텍토리를 /ABC/DEF 로 옮긴후 이 2개의 TAR 파일을 TVF 옵션으로 내용이 어떤지 보겠습니다. A,B 를 보면 다른건 다 같은데 파일명이 적혀 있는부분이 다르게 보입니다. A의 경우에는 절대 경로로 지정이 되어 있고요, B의 경우에는 그냥 파일명만 적혀 있습니다. 그렇다면 이 2개의 TAR 파일을 압축을 해제하고 FIND 명령어로 TEST01과 TEST02을 확인해보면, 각각 파일의 위치가 다르다는것을 알수 있습니다. 절대경로로 압축했던 파일의 경우에는 원래 압축을 실행했던곳. 즉, 절대경로로 지정했던 위치에 압축이 해제 되었고요. 상대경로로 압축했던 파일의 경우에는 현재 디렉토리에 압축해제 된것을 확인할수 있었습니다. 똑! TAR 명령어를 사용하실때는 절대경로/상대경로에 대해서 유의하시면 좋을것 같습니다. 이제 몇몇 중요한 옵션에 대해서 알아보겠습니다. 다음페이지 A 절대적 B 상대적

12 Tar cvhf – 심볼릭 링크를 원래파일로 기본적으로 cvf옵션을 이미 아실것 같아서 따로 설명하지 않고요. 추가 옵션을 섞어서 설명하겠습니다. cvhf 는 말 그대로 심볼릭 링크를 원래 파일로 대체해서 압축을 하는것입니다. 예를 보겠습니다. A가 원본파일이고요. B가 링크파일입니다. A원본의경우에는 약 1메가 정도 되고요. B심볼릭링크 파일의 경우에는 24바이트가 됩니다. 여기서 C의 CVHF 옵션을 사용해서 압축을 해주고. D로 확인을 해주면, A의 원본파일이 첨부가 된것을 확인할수 있을것입니다. 다음페이지 A B C D

13 Tar tvf – tar 파일의 내용 목록 출력 A
예, 다음은 TVF 옵션에 대해서 알아보겠는데요. TVF 옵션을. TAR 파일의 내용을 리스트를 출력하는것입니다. 그럼 TVF로 출력된 목록들이 파일의 어떤 내용들을 담고 있는지 보시겠습니다. 거의 LS 로 본 내용과 비슷한데요. 여기서 확인할점은 A 필드부분인데요. 저부분은 LS로 출력했을때 나오는 사용자와 그룹 속성을 ID값으로 담았다고 보시면 됩니다. 다음페이지 파일권한 User-id/ Group-id File-size File 마지막 수정일자 File-name

14 Tar xvmf – 각 파일 수정시간을 현재 파일 푸는 시간으로
xvmf 의 m 옵션은 tar 압축 해제시 현재 파일 푸는 시간으로 설정하는것입니다. A를 보시면 현재 파일의 마지막 수정날짜가 1970년 이렇게 되어있습니다. 그냥 XVF 옵션으로 압축을 해제해줄경우에는 B에서 보시는것처럼 원래 시간이 나옵니다. 그럼 XVMF 는 어떻게 나오는지 다음페이지를 보면서 확인해 보죠. B

15 Tar xvmf – 각 파일 수정시간을 현재 파일 푸는 시간으로
아까와 똑같은 파일인데 XVMF로 압축을 해제해줄경우에는 B의 보시는바와 같이 C에서 나온현재 날짜로 수정이 되서 압축이 해제됩니다. 다음페이지 C B

16 Tar xvpf – 원래의 파일 접근 권한에 맞추어 풀어줌
이번에 보실 옵션은 P 옵션인데요. A에서 보시는 TEST.TAR 파일은 루트 777 권한으로 만들어진 파일입니다. 그 안의 내용들을 살펴보면 4777, 2777, 1777 이런 속성들을 가지고 있습니다. 이것들을 일반 SUER 로 그냥 XVF 로 압축 해재 해주실 경우에는 B의 경우처럼 755 속성으로 원본과는 다른 속성으로 해제가 됩니다. 그런 XVPF 옵션을 사용해서 해제하면 어떻게 되는지 다음페이지를 보시고 확인하시겠습니다. B

17 Tar xvpf – 원래의 파일 접근 권한에 맞추어 풀어줌
아까와 같은 상황에서 XVPF로 압축해제해 주었습니다. 이번에 B를 확인해보면 4777, 2777,777 권한으로 압축이 해제된것을 확인할수 있습니다. A를 보면 TEST03의 경우에는 스티키비트 속성이 포함이 되어있는데 B에서는 안되어 있죠? 이거는 그냥777권한으로 해제가 되었죠? 이부분은 저도 잘 이해가 안가는 부분이더라고요. ROOT의 경우에는 잘 되던데.. 이부분은 선생님께서 보강해주실거라 생각됩니다. 그럼 다음페이지 B

18 상황1. /etc의 환경설정파일을 복구하라 지금까지 각종 옵션들을 써 먹었는데요. 사실 네이버나 다른 여러곳을 뒤지면 옵션에 대한 설명들은 잘 나와있어도, 어떻게 써먹는지는 잘 모르겠더라고요. 그래서 TAR MANUAL 페이지의 예제들을 이용해서 최대한 현실에 맞는 상황설정을 해서 해결하는 방식으로 진행을 해볼까 합니다. (문제읽고) 이 상황은 환경설정 파일을 복구하라는 것입니다. 그냥 무작정 ETC.TAR 파일을 XVF 옵션으로 풀어주는 방법도 있지만, 시간을 아껴야 하기때문에 좀더 효율적인 방법을 사용해보기로 하겠습니다. 다음페이지 평소 /etc 디렉터리의 환경설정파일의 잦은 실습으로 인해 sun02가 자주 죽는 사태가 발생하자, Y선생님은 매일 /etc 디렉터리를 /etc/etc.tar 파일로 백업을 해 놓고, 매일 밤 복구를 했는데 그날은 유독 감기 때문에 피곤해서 P학생에게 환경설정파일 복구를 부탁했다. 과연, P학생은 어떻게 해야하는가?

19 ------------------- 중 략 -------------------
/ETC 디렉토리로 이동을 한후 ETC.TAR 가 있는지 확인을 해보니 파일이 존재하고 있습니다. 아까 환경 설정 파일을 복구해주라고 했으니까, 대부분 환경설정 파일이 CONF 가 들어가는것을 감안하며 그 파일들만 골라서 압축 해제해주면 시간도 적게들고 더 좋겠죠? 그럼 그 명령어가 무엇이냐! (다음) 약간은 어려워 보일수 있는데 간단합니다. ETC.TAR의 리스트를 출력하는데, 거기서 CONF 파일만 뽑아서 압축해제해라. 입니다. 너무 길어서 생략했는데 대충 CONF 에 있는 파일들은 다 압축해제가 되죠? 이것을 응용해서 TAB 이라던가 다른 단어들을 넣어서 사용해도 될것 같습니다. 다음페이지

20 상황2. $HOME 안에 파일들을 다 백업해라 예. 이번문제는요 (문제읽고) 이건데요. 자신의 홈디렉토리에 있는 내용들을 테이프에 넣으란것입니다. 테이프부분은 오늘 다른분께서 강의를 하시기에 깊게 다루지는 않을테고요 FILE 대신에 /DEV/RMT/0 을 써주시면 TAPE 가 지정된다는것입니다. 다음페이지 학원에서 수업 들으면서 수업내용을 갈무리를 해 놓았다. 나름대로 솔라리스 수업을 들었으니 갈무리 파일들을 TAPE에 보관하고 싶어 선생님 몰래 TAPE 를 껴놓았다. 근데, 갈무리할 때 귀찮아서 파일 이름을 대충 012fdsd, 39gfjksd, dsg3ekdf 이렇식으로 만든 파일이 해논게 15개 정도는 된다. 키보드 치기도 힘들고 귀찮고, 몰래 빨리 해야 하는데 이거 어떻게 해야 할까?

21 A A를 보시면 백업하고 싶은 파일들의 이름입니다. 아무리 타자연습을 한다지만 저런 거를 15개를 직접치는것도 귀찮고. 참 난감하시죠.? 그럴때는 이렇게 하시면 됩니다, B를 보시면 명령어가 있습니다. 그냥 일반 TAR 파일 만드는것과 별반 다를바가 없는데요. FILE 이 위치하는 자리에 /DEV/RMT/0N 만 넣어주시면 됩니다. N을 넣는것과 안넣는것의 차이는.. TAPE 관련 발표이신 미선씨께서 설명해 주실것입니다. 그리고 뒤에 . 은 현재 디렉토리를 가르키겠죠? 이렇게 하시면 TAPE로의 백업이 가능합니다. 다음페이지 B

22 A 파일이 백업이 잘 되었는지 보고싶은데, 어떻게 볼까요? 이것또한 크게 어렵지 않습니다. TAR 파일의 위치에 간단하게 /DEV/RMT/0 테이프 드라이브를 지정해 주시면 됩니다. 다음페이지

23 상황3. 몇몇 디렉터리를 TAPE에 백업해라 (문제읽고) 이 상황은 간단히 말씀 드리면 디렉토리를 골라서 백업하면 되는것인데요. 시간이 남으면 밥 먹고 명령어 누르고, 뭐 하고 누르고 그러면 되는데, 빨랑 명령어 하나로 끝내고 나가야하니까 그게 문제인것입니다. 그럼 어떻게 해야할까요? (다음페이지) 어느 정도 SUN02가 굴러가다 보니 어느새 80%에 가까운 용량이 사용되고 있었다. 학생들이 이것저것 올린 영화들도 다 못 봤는데, 파일 정리를 하자니 아깝고, tape에 백업하기로 했다. 그런데 지금 당장 나가봐야 하는데 디렉터리가 2~3개는 되는데, 계속 컴퓨터 앞에서 tar 명령어 실행시키고 기다렸다 실행시키고 이럴 시간이 없다. 당장 명령어 때리고 나가야 하는데… 어쩌면 좋을까?

24 A 먼저 A를 보시면, 영화가 있을만한곳을 찾아봅니다. DU 명령어로 있을만한 디렉토리의 싸이즈를 체크해 봅니다. 그랬더니 DATA1 에도 있을것 같고 SBS 에도 있을것 같네요. 그래서 이 2개 디렉토리를 테이프에 백업하기로 결심하고 TAR 명령어를 이용해서 압축을 합니다. 여기서 –C 옵션을 사용해주면 디렉토리를 지정할수 있고요. 역시 TAR 파일이 들어갈 위치에 /DEV/RMT/0을 써주면 저 테이프 장치에 백업을 시킬수 있습니다. 나름대로 시나리오 짜서 만들었는데.. 막상 리스트를 보니.. 영화파일이 아니더라고요. 이점은 양해바랍니다. 다음페이지

25 상황4. sun03도 TAPE에 백업해라 네.. 네번째 상황인데요. (문제읽고) 이번에 우리가 상황 3까지 통해서 TAPE 에 백헙하는것까지는 알겠는데. SUN03 에는 테이프드라이브가 없잖아요. 이거 SUN02 에서 뜯어오는 무식한 짓은 하고 싶지 않고, 어떻게 해야할까요? 다음페이지 이런.. sun02에만 영화가 있는 줄 알았는데, sun03에도 있었다. 이왕 한 김에, tape 용량도 남았겠다. sun03에 있는 영화 디렉터리도 백업을 해주고 싶은데, tape 드라이브는 sun02에 있고, 이를 어쩌나..

26 #rsh sun02 dd if=/dev/rmt/0 | tar xvf -
네 명령어가 아주 기니까 정신이 없죠? 이 명령어도 간단하게 설명해 드리겠습니다. /EXPORT/HOME 디렉토리의 내용들을 묶어서 PIPE 를 통해서 원격 SUN02 를 통해서 테이프드라이브로 날린다고 생각하시면 됩니다. 이부분은 머리로 이해하는것보다는 몸으로 이해하시는게 더 빠르실것 같습니다. 그렇다면 SUN02 TAPE 드라이브에서 현재디렉토리로 압축을 푸는것은 어떻게 할까요? 의외로 간단합니다. 위의 명령어를 몇가지만 바꿔서 거꾸로 써주면 되는데요. (다음) 이렇게 써주시면 됩니다. 선02 테이프드라이브 내용을 파이프를 통해 던져서 여기서 풀어라. 이렇게 생각하시면 됩니다. 그럼! 다음페이지 #rsh sun02 dd if=/dev/rmt/0 | tar xvf -

27 마지막, (-)는 무엇을 뜻하는 것일까? Manual page 에 보면,
네.. 아까부터 계속 이해가 안되실거에요 –가 뭐하는건가. 우리 보통 – 기호가 옵션에 사용할때 쓰는데, 과연 TAR 에서는 어떻게 쓰이는 존재인가 궁금하시죠? (내용읽음) 간단히 매뉴얼 페이지를 번역했는데, 저역시도 저 말만 보고서는 무슨내용인지 모르겠습니다. 역시 삽질이 최고인것 같습니다. 다음페이지 Manual page 에 보면, tar에서 표준 입/출력 (standard input, standard output) 을 의미하며 때에 따라 적절하게 사용된다. tar는 파이프 라인의 앞,뒤에 사용할 수 있다.

28 standard input, output 은 무엇인가?
standard output : 화면에 보이는 출력되는 내용들 A B

29 3가지의 같은 명령어 #cp /aaa/test01 /bbb/test01 #cd /aaa
여기 3가지의 같은 명령어가 있습니다. 이 3개다 똑같은 일을 해주는 명령어 입니다. A를 보시면 아시겠지만. TEST01 을 AAA 디렉토리에서 BBB 디렉토리로 복사하는것입니다. B는 이해가 되시는데 C 는 이해가 안되시죠? 그럼 다음 순서도를 보시고 B와 C명령어의 비교를 통해서 –의 의미를 확인하시겠습니다 다음페이지 B #cd /aaa #tar cf test.tar test01 #mv ./test.tar /bbb/ #cd /bbb #tar xf test.tar C #cd /aaa ; tar cf – test01 | (cd /bbb; tar xf - )

30 tar cf 를 통해 test01을 test.tar로 묶어준다
B #cd /aaa #tar cf test.tar test01 #mv ./test.tar /bbb/ #cd /bbb #tar xf test.tar /aaa 디렉터리 로 이동 tar cf 를 통해 test01을 test.tar로 묶어준다 (그림으로 설명) test.tar를 하드가 받아서 /aaa에 저장한다 mv로 test.tar 를 이동 명령을 내려준다 test01 복사완료 test.tar를 하드가 받아서 /bbb에 저장한다 tar xf 를 통해 test.tar 를 풀어준다.

31 tar cf -를 통해 test01을 로 묶어서 출력한다
#cd /aaa ; tar cf – test01 | (cd /bbb; tar xf - ) /aaa 디렉터리 로 이동 tar cf -를 통해 test01을 로 묶어서 출력한다 (그림으로설명) | (pipe)가 받아서 넘겨준다 test01 복사완료 tar xf –를 통해 입력받은 data를 풀어준다.

32 #cd /aaa ; tar cf – test01 | (cd /bbb; tar xf - )
#tar cf test.tar test01 #mv ./test.tar /bbb/ #cd /bbb #tar xf test.tar 궂이 명령어 자체로 이해를 시켜드리자면 A끼리 묶이고 B끼리 묶인다는것입니다. A B A B #cd /aaa ; tar cf – test01 | (cd /bbb; tar xf - )

33 http://vense.woweb.net/myblog 수고하셨습니다
수고하셨습니다


Download ppt "Itbank solaris Pm 4:00 class 김 정 훈"

Similar presentations


Ads by Google