IT/Unix & Linux

ssh를 이용하여 파일시스템, 파일 copy 하기

슈다루냥 2019. 7. 3.
728x90

 

안녕하세요. 슈다 입니다.

 

ssh를 이용하여 파일시스템 혹은 파일을 로컬이나 클라이언트에 copy 하려면 크게 2가지 방법이 있습니다.

 

1. root 권한이 없을 때 - 명령을 수행하는 계정이 대상 디렉토리와 파일에 접근 및 읽을 수 있는 권한이 필요

2. root 권한이 있을 때 - sudo 로 root 권한을 취득할 수 있다면 sudo 를 포함하여 명령어 실행

 

root 권한이 없을 때

일반 계정으로 ssh를 이용하여 서버 to 서버로 파일을 copy하는 방법 입니다.

# (ssh 계정명@서버명 "tar cfp - /파일or디렉토리_경로" | tar xvfp - ) > task.log  2> task.err

해석 : 해당 서버의 경로에서 해당 경로의 파일을 tar 로 압축하여 로컬 서버의 동일한 경로에 풀어줍니다.

 

root 권한이 있을 때

root를 사용한다면 위의 root권한 없을때 방법으로 root를 계정명으로 사용하면 되지만, root계정이 원격로그인이 허용된다면 보안에 취약하므로 일반적으로 일반 계정으로 sudo를 이용해 root권한을 획득하는 방식을 사용합니다.

# (ssh 계정명@서버명 "sudo tar cfp - /파일or디렉토리_경로" | sudo tar xvfp - ) > task.log  2> task.err

해석 : 해당 서버의 경로에서 해당 경로의 파일을 tar 로 압축하여 로컬 서버의 동일한 경로에 풀어줍니다.

 

두 명령의 차이점은 로컬과 클라이언트 명령 수행 부분에 sudo 를 추가한 것입니다.

다만 sudo 로 tar 의 실행권한을 획득할 수 없는 계정이라면 해당 명령은 사용이 불가능 하겠죠.

 

파일or디렉토리 경로를 파일시스템으로 지정하고 sudo 명령을 추가한다면 기존 rsh 을 이용하여 파일시스템을 copy하던 것을 대체할 수 있을것으로 보입니다.

rsh을 이용한파일시스템 copy : https://syuda.tistory.com/1

728x90
반응형