반달가면 이글루에서 백업 - http://bahndal.egloos.com/628677 (2019.6.28)
우선 rsync에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로
그 외에 rsync 관련 다른 이전 게시물(자동 원격 백업, 또는 cp로 복사하다가 중단한 경우 rsync로 재개)에서도 공통적으로 유의해야 할 문제다.
rsync에서 -r 옵션으로 디렉토리 구조 전체를 복사(백업)할 때, 복사할 원본 디렉토리(source directory) 뒤에 슬래시(/)를 붙이느냐 마느냐에 따라 동작이 달라진다. 목적지 디렉토리(target directory)는 슬래시 여부가 별 상관이 없다. 예시를 가지고 생각해 보자.
~/my_data 디렉토리를 ~/backup 디렉토리로 옮기는 상황을 생각해 보자. ~/my_data 디렉토리 하위에는 data.txt 파일 하나가 있다고 가정한다. 원본 디렉토리를 지정하는 인자(argument)가 슬래시(/)로 끝나는 경우, 목적지 디렉토리 하위에 원본 디렉토리를 만들지 않는다. 예를 보면 감이 잡힐 것이다.
# 원본 디렉토리 지정에 슬래시 사용(~/my_data/)
rsync -r ~/my_data/ ~/backup
# 결과 확인
ls ~/backup
data.txt
반면에, 원본 디렉토리를 지정하는 인자에 슬래시를 붙이지 않으면, 목적지 디렉토리 하위에 원본 디렉토리와 동일한 명칭의 디렉토리를 만든 후에 복사를 진행한다. 이번에는 ~/my_data 디렉토리를 ~/backup2 디렉토리로 옮기는 경우다.
# 원본 디렉토리 지정에 슬래시 사용하지 않음(~/my_data)
rsync -r ~/my_data ~/backup2
# 결과 확인(하위에 my_data 디렉토리가 생성되었음을 확인 가능)
ls ~/backup2
my_data
좀 복잡하긴 하지만 rsync를 사용할 때 이 부분을 신경 쓰지 않으면 의도한 바와 다르게 복사가 될 수 있으므로, 반드시 위에 설명한 차이점을 알고 사용하는 것이 좋겠다.
예를 들어 처음에 ~/my_data 디렉토리를 ~/my_backup 디렉토리에 아래와 같이 복사했다고 생각해 보자.
rsync -r ~/my_data ~/my_backup
위와 같이 했으면 ~/my_backup 디렉토리 하위에 my_data 디렉토리가 만들어지고 여기에 백업이 되었다. 나중에 ~/my_data 하위의 내용이 변경되어서 변경사항을 ~/my_backup/my_data에 반영하려고 한다. -u 옵션을 추가해서 변경된 부분만 반영하고자 할 때는 아래와 같이 해야 할 것이다.
rsync -r -u ~/my_data/ ~/my_backup/my_data
또는 아래와 같이 해야 한다. 즉, 원본 디렉토리의 슬래시 사용 여부에 따라 목적지 디렉토리를 다르게 지정해야 한다.
rsync -r -u ~/my_data ~/my_backup
'리눅스' 카테고리의 다른 글
리눅스에서 특정 디렉토리가 속한 파티션의 빈 공간 확인 (0) | 2023.09.05 |
---|---|
리눅스 민트에서 GRUB 부트 메뉴 표시하기 (0) | 2023.09.05 |
MX 리눅스에서 버추얼박스(VirtualBox), 구글 크롬(Google Chrome) 브라우저 설치 (0) | 2023.08.31 |
MX 리눅스(MX Linux) 라이브 세션에서 루트 암호 (0) | 2023.08.31 |
MX 리눅스 18.3에서 리얼텍 RTL8821CE wi-fi 무선랜 드라이버 설치 (1) | 2023.08.31 |