GrepBoardTools GrepBoard 매뉴얼 ↗ Log ↗

Tools / 서버 설정

rsync 명령 만들기

rsync -a src/ dest/ 와 rsync -a src dest/ 는 결과가 다릅니다. 경로를 넣고 파일이 어디로 가는지 봅니다.

입력한 값은 브라우저 안에서만 계산하고 서버로 보내지 않습니다.

방향

끝에 / 가 있으면 안의 내용을, 없으면 폴더 자체를 복사합니다(아래 풀이).

대상 끝의 / 는 폴더라면 차이가 없습니다.

user@host 또는 ~/.ssh/config 의 Host 별칭.

비우면 22(또는 ~/.ssh/config 의 값).

보존
제외 패턴

한 줄에 하나. *.log 어느 깊이든 · cache/ 폴더만 · /cache 전송 맨 위에서만.

비우면 제한 없음. 1000 ≈ 초당 1MB.

명령
rsync -avhz --exclude='.git/' --exclude='*.log' --info=progress2 /var/www/site/ deploy@203.0.113.10:/srv/www/site/

무엇을 하나

고른 옵션으로 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 결과를 먼저 봅니다.

입력한 값이 서버로 가나요?

아니요. 명령은 브라우저 안에서 만듭니다. 경로 · 호스트 이름은 서버로 보내지 않고, 이 사이트가 쓰는 방문 통계와 광고에도 넘기지 않습니다. 자세한 것은 개인정보 처리 안내에 있습니다.