무엇을 하나
고른 옵션으로 rsync 명령 한 줄을 만들고, 넣은 옵션마다 무슨 일을 하는지 풉니다. 가장 흔한 실수인 원본 끝의 슬래시는 넣은 경로로 「a.txt 가 어디에 생기는지」를 보여 주고, --delete 를 고르면 결과 바로 위에 먼저 돌릴 --dry-run 명령을 붙입니다. 원격 경로에 공백이나 ~ 처럼 rsync 버전마다 다르게 읽히는 글자가 있으면 명령을 만들지 않습니다.
예시
| 명령 | 결과 |
|---|---|
rsync -a site/ /backup/ | site/a.txt → /backup/a.txt — 안의 내용만 |
rsync -a site /backup/ | site/a.txt → /backup/site/a.txt — 폴더째 |
rsync -a --delete site/ /backup/ | /backup/ 에만 있던 파일이 지워짐 |
--exclude='*.log' | 어느 깊이든 .log 로 끝나는 이름 제외 |
--exclude='/cache/' | 전송 맨 위의 cache 폴더만 제외(docs/cache/ 는 복사됨) |
-e 'ssh -p 2222' | 포트 2222 의 ssh 로 접속 |
흔한 실수
- 슬래시 하나로 폴더가 한 겹 더 생김 —
rsync -a site /var/www/site/는/var/www/site/site/를 만듭니다. 내용을 맞추려면 원본 끝에/를 붙입니다. 대상 끝의/는 폴더라면 차이가 없습니다. --delete를 바로 실행 — 원본과 대상을 바꿔 적거나 슬래시를 빠뜨리면 대상의 멀쩡한 파일이 지워집니다. 같은 명령에--dry-run을 붙여 「deleting」 줄부터 읽습니다./로 시작하는 제외 패턴의 기준 — 시작점은 디스크의/가 아니라 전송의 맨 위입니다. 원본에 슬래시가 없으면 맨 위가 한 단계 위라서/site/cache/처럼 폴더 이름까지 써야 맞습니다.
어떻게 확인했나
공개 전에 이 서버의 rsync 3.2.7 로 만든 명령 34개를 로컬 폴더끼리 실제로 돌려, 끝난 뒤 받는 쪽 파일 목록이 화면의 풀이(끝 슬래시 · 제외 패턴 · --delete · --dry-run)와 같은지, -a 와 -rlt 의 권한 차이까지 65번 맞대었습니다. 원격 명령은 접속하지 않고 글자 모양만 대조했습니다.
자주 묻는 것
대상 끝에도 슬래시를 붙여야 하나요?
대상이 폴더라면 붙이든 안 붙이든 같습니다. 차이를 만드는 것은 원본 끝의 슬래시입니다. 다만 원본이 파일 하나이고 대상 폴더가 아직 없다면, 대상 끝의 슬래시가 있어야 그 이름의 폴더를 만들고 안에 넣습니다.
--delete 로 지운 파일은 되살릴 수 있나요?
rsync 는 휴지통을 쓰지 않습니다. 지운 파일을 남기고 싶으면 --backup --backup-dir=/경로 를 더해 지우거나 덮어쓴 파일을 그 폴더로 옮기게 합니다. 무엇보다 --dry-run 결과를 먼저 봅니다.
입력한 값이 서버로 가나요?
아니요. 명령은 브라우저 안에서 만듭니다. 경로 · 호스트 이름은 서버로 보내지 않고, 이 사이트가 쓰는 방문 통계와 광고에도 넘기지 않습니다. 자세한 것은 개인정보 처리 안내에 있습니다.