더북(TheBook)

이 명령을 하나하나 뜯어서 바로 설명하기보다는 조금 더 작은 예를 사용해 부분별로 설명하겠다. 먼저 importantstuff라는 디렉터리의 중요한 파일들로 아카이브를 생성해보자.

$ tar czvf - importantstuff | ssh username@10.0.3.141 \
<linearrow /> "cat > /home/username/myfiles.tar.gz"
importantstuff/filename1
importantstuff/filename2
[...]
username@10.0.3.141's password: ← 원격 호스트 계정의 패스워드를 입력한다

이 명령을 자세히 살펴보자. 명령 인자 뒤에 아카이브 이름을 입력하는 대신(지금까지 해온 방식) 여기에서는 대시(-)를 사용했다. 대시를 사용하면 내용을 표준 출력 장치(화면)에 출력한다. 아카이브에 추가할 파일명을 tar 명령 끝에서 지정한다. 그다음, 이름이 지정되지 않은, 압축된 아카이브를 원격 서버에 로그인하는 ssh 명령과 파이프로 연결한다. 이때 로그인 패스워드를 묻는다. 그러고 나서 큰따옴표 안에 있는 명령이 원격 서버에서 실행되는데, cat 명령은 파이프로 전달받은 데이터 스트림을 원격 서버의 홈 디렉터리에 myfiles.tar.gz이라는 파일의 내용으로 저장한다.

그림 4-4에서 보는 것처럼 이런 방법으로 아카이브를 생성하면 중간 단계에 임시 파일을 로컬 컴퓨터에 생성할 필요가 없다는 장점이 있다. 예를 들어, 120GB가 남아 있는 디스크에 110GB에 달하는 설치 파일을 백업해야 한다고 생각해보자. 이 아카이브 파일을 어디에 저장할 것인가?

▲ 그림 4-4 아카이브를 생성하면서 스트리밍하면 로컬 드라이브에 파일을 먼저 저장할 필요가 없다

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.