티스토리 뷰

반응형

 

 

 

 

 



 

 

 

 

리눅스간 파일, 폴더를 복사할때 scp 를 이용해 통째로 복사를 수행한적이 있다.

 

최초로 데이터를 복사할때는 scp 를 써도 무방하지만

기존에 데이터가 있는 상태에서 scp 를 사용하면 전체 파일을 전부 복사해서 

중복된 자료는 덮어쓰기가 된다.

 

즉, 불필요한 전송 리소스를 사용하게 되는 것.

 

 

 

[Linux] scp - 리눅스간 파일/폴더 전송.

서로 다른 리눅스 서버간 파일을 통째로 옮겨야 해서 scp (secure copy) 를 써보기로 했다.(얘 없었으면 ftp로 내컴에 옮긴담에 목적지 서버에 밀어 넣는 짓을 하고 있었겠지...? ㅋ)      scp 대상파

jong-bae.tistory.com

 

 

 

이번에는 rsync 를 사용하여 없는 파일 또는 업데이트 되어질 파일만 전송해보려고 한다.

 

 

 

 

 

 


rsync

 

 

사용법은 간단한 옵션을 부여하여  중복, 업데이트 만 체크할 수 있다.

 

rsync -avz /home/test/ user@127.0.0.1:/home/test2

 

 

 

옵션 설명:

  • -a : 권한, 시간, 심볼릭 링크 등 보존 (archive 모드)
  • -v : verbose (상세 출력)
  • -z : 전송 시 압축
  • -n : 전송은 하지 않고 실행결과만 출력 (시뮬레이션 모드)
  • --ignore-existing : 대상에 이미 존재하는 파일은 덮어쓰지 않음
  • --update : 수정 시간이 더 최신인 경우에만 덮어씀

 

 

데이터 전송전에 복사될 파일들을 체크하기 위해 -n 을 붙여주면 실제 전송은 수행하지 않는다.

같은 서버내에서 복사시에는 -z 압축 전송 옵션은 굳이 필요 없어보인다. (타 서버에 옮길때는 좋음)

 

 

 

 

# 새로운 파일만 추가 (기존 파일은 절대 덮어쓰지 않음)
rsync -avz --ignore-existing /home/test/ user@127.0.0.1:/home/test2

# 기존 파일보다 새로운 게 있으면 업데이트
rsync -avz --update /home/test/ user@127.0.0.1:/home/test2

# 시뮬레이션만 (어떤 파일이 이동될지 확인)
rsync -avzn --update /home/test/ user@127.0.0.1:/home/test2
rsync -avzn --ignore-existing /home/test/ user@127.0.0.1:/home/test2

 

 

 

-avzn 옵션으로 중복, 업데이트 시뮬레이션 해보면 어떤 파일들이 추가되고 변경되었는지 확인 할 수 있고

-n 옵션을 제거하고 수행하면 시뮬레이션 대로 파일 전송을 수행한다.

 

 

 

 

 

 

* 최상위 폴더에서 시뮬레이션 돌려보면 파일 외에도 기존에 있는 폴더들도 다 조회되는데  파일들만 따로 보고 싶다면 아래와 같이 grep 하여 파일만 따로 확인 하는게 좋겠다.

 

 

rsync -avzn --ignore-existing /home/test/ user@127.0.0.1:/home/test2 | grep -v '/$'
rsync -avzn --update /home/test/ user@127.0.0.1:/home/test2 | grep -v '/$'

 

 

 

 

 

 

 



 

 

 

반응형
댓글
반응형
최근에 올라온 글
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Total
Today
Yesterday