리눅스

[리눅스] 다른 서버로 파일전송하기(scp,rsync)

홍또~ 2020. 8. 8. 14:40

리눅스에서는 방화벽이 열려있다면 명령어로 한 서버에서 다른 서버로 파일전송이 가능하다다.

여러 방법중에 두가지 방법을 소개한다

1. Scp 명령(local → remote)

문법은 scp 보낼서버파일명(경로포함) 보낼서버계정@보낼서버ip:보낼서버의 경로 이다

만약 내가 /from 아래의 test.txt 파일을 10.10.100.10 서버의 /to 로 전송하려고한다면(계정은 admin) 다음과 같다

scp /from/test.txt admin@10.10.100.10:/to

+ 만약 연결에 키 파일이 필요하다면 키파일이 있는폴더로 가서 -i "key_name" 을 scp 옆에 추가한다.

(ex: scp -i "key_name" /from/test.txt admin@10.10.100.10:/to)

2. rsync 명령(local → remote)

rsync는 말그대로 싱크 맞추기 이다.

문법은 rsync 로컬파일(경로포함) 싱크맞출서버계정@싱크맞출서버ip:싱크맞출서버의 경로이다.

예를들어 local서버의 /test 폴더 아래에 test1.txt , test2.txt가 있고 동기화 할 서버의 /test 아래에는 test3.txt가 있다고 가정하면

명령어는 다음과 같다(동기화할 서버의 ip는 10.10.100.10 , 계정은 admin)

rsync /test/* admin@10.10.100.10:/test

위 명령어를 수행하면 10.10.100.10 서버의 test폴더 아래에는

test1.txt , test2.txt , text3.txt 가 있게 된다.(로컬서버의 파일이 그대로 동기화 되었다)

주의할 점은 로컬서버에는 test1.txt , test2.txt 밖에 없으므로 위와 똑같은작업을 10.10.100.10에서 해줘야

두서버가 완벽하게 동기화 될 수 있다.