Azure Linux VM에서 tar과 ssh를 이용한 파일 전송

best couple에 대한 이미지 검색결과 tar가 여잘까, ssh가 남잘까? 정답은 그냥 와인이 아닐까...(는 개소리)


문제의 발생

Azure VM과의 ftp파일 전송에서부터 시작된다.
ssh통신을 기본으로 하고 있는 Azure 서비스에 파일을 전송하는 가장 쉬운 방법은 ssh방식의 ftp이용 전송이다. 한두개의 파일은 문제없이 전송하게 되지만 파일이 많을 경우에는 암호화를 진행해야하는 특성상 파일 전송 전과 후 과정이 파일 전송시간보다 더 많이 소비될 수 있다는 점이 문제였다.

문제의 해결

그에 해결방법으로 tar과 ssh를 이용한 압축과 전송 그리고 현지서버에서의 해제를 동시에 진행하는 방법이다.

자세하고 명쾌한 해결방법은 아래 블로그를 참고하면 답이있다.
시스템 엔지니어 공동관리 구역의 'tar와 ssh를 이용한 파일 원격 전송 속도 향상 하기"

명령어는 아래와 같다.
'|' 의 구분자 앞은 파일전송 전 처리, 뒤는 파일 전송과 함께 이후 진행되는 명령어다.
$tar cz - [작업지 폴더 또는 작업파일] | ssh [user id]@[where-host-computer-is] -p 22 tar xz -C [원격지 폴더]

tar는 압축 프로그램이고,
tar 전송 전 option 인 cz는 압축을 생성하고,
tar 전송 후 option 인 xz는 압축을 푸는 것이다.

자세한 tar 명령어에 대해서는 다음팁: '리눅스 tar 압축프로그램의 사용법을 알려주세요.' 을 확인하자.

추가 문제발생 및 해결

** 경로 설정관련 **
 : 전송하려는 파일이 있는 폴더로 이동한 후, 명령어를 실행해야 한다. 왜냐하면 파일 혹은 폴더가 위치해 있는 폴더까지 모두 압축하여 전송되기 때문이다.
예를 들어. 'newFolder'라는 상위의 폴더에서 '$tar cz - /newFolder | ssh [user id]@[where-host-computer-is] -p 22 tar xz -C /var/www/html'를 실행할 경우, 'newFolder'자체가 압축되어 '/var/www/html/newFolder'가 생성되게 된다.
혹은 'newFolder'안에 있는 'new.file'을 'newFolder'의 상위 폴더에서 전송하게 된다면 'newFolder'를 포함하여 폴더안에 파일이 생성되게 된다.

전송하고자하는 파일의 위치에 해당되는 작업지폴더와 전송하는 원격지폴더를 어떻게 지정하느냐이다. 절대경로와 상대경로에 대한 개념은 잭크와 콩나무: '리눅스(1), 상대경로, 그리고 절대경로'를 확인하자.

댓글

가장 많이 본 글