rsync 대신 scp를 사용해야 할 이유가 있습니까?


61

scp대신 사용해야 할 이유가 rsync있습니까? scp다시 사용할 이유가 없으며 더 많은 안전을 위해 rsync모든 작업을 scp수행합니다 (심볼릭 링크 등을 보존 할 수 있음).


6
짧은 대답 : 아니요. scp는 결코 해롭지 않습니다 .
Shadur

2
@Shadur scp는 기본적으로 기존 대상 파일을 덮어 쓰기 때문에 유해합니다. 따라서 rsync이지만 적어도로 가능한 피해를 제한 할 수 있습니다 -u.
Gilles

3
@Gilles 다른 도구와 마찬가지로 도구의 기능과 도구를 안전하게 사용하는 방법을 이해해야합니다.
Alex Chamberlain

8
그러한 맥락에서, 규칙 cp적이고 rm"유해한"것으로 간주되며 "유해한 것을하면 나를 망칠 수있다"고 "유해한"것으로 정의 rsync하면 덜 해롭지는 않습니다.
Shadur

1
rsync설치 되지 않은 시스템 rsync에서는 (분명히) 사용할 수 없습니다.
Kusalananda

답변:


45

scp는 안전한 SSH 연결을 통해 한 시스템에서 원격 시스템으로 파일을 복사하는 cp와 유사한 방법을 제공합니다.

rsync를 사용하면 원격 폴더를 동기화 할 수 있습니다.

그들은 다른 프로그램이며 둘 다 용도가 있습니다. scp는 항상 안전하지만 rsync는 SSH를 통해 이동해야 안전합니다.


9
또한, 다른 쪽 끝에 rsync를 설치해야합니다.
ckhan

3
@ ckhan, 반대편에 아무것도 설치하지 않고 복사 할 수 없으며 효율성이 떨어집니다.
mikebloch

2
나는 scp의 단순함을 좋아한다.
Alex Chamberlain

2
@mikebloch 어떻게합니까? 새로운 기능입니까? 버전 3.0.9를 사용하여 이것을 시도했습니다. rsync리모컨에서 찾을 수 없다고 불평했습니다 .
Alexios

1
@ mikebloch, 체크섬 계산을 수행하려면 서버에 설치해야하며 서버에 많은 CPU 부하를 추가 할 수 있습니다. 이것이 대부분의 대규모 사이트가이를 지원하지 않는 이유와 zsync대안으로 만들어진 이유 입니다.
psusi

19

중요한 것은 (내가 언급하지 않은 것으로 생각되는) 것 중 하나는 많은 양의 데이터 또는 파일을 전송하는 중이고 어떤 이유로 완료하기 전에 전송이 끊어지면 rsync가 중단 된 곳에서 가져옵니다. scp는 그렇지 않습니다.

하나 또는 두 개의 파일 또는 디렉토리를 전송하려는 경우 scp를 사용합니다. 다중 GB 크기 데이터를 위해 rsync로갑니다.


3
--partial큰 파일을 전송할 때 플래그가 유용하다는 것을 추가 할 가치가 있습니다. rsync파일을 다시 시작하지 않고 파일 내에서 중단 된 부분을 선택합니다.
Flup

@Flup에서 언급했듯이 --sync 옵션을 사용하지 않으면 rsync는 전송중인 파일을 남기지 않고 다시 시작할 수 있습니다. 이러한 파일은 기본적으로 대상 디렉토리에 숨겨져 있습니다. --partial-dir을 사용하여 이러한 모든 파일을 단일 디렉토리에 넣을 수 있습니다.
Lester Cheung

글쎄, rsync -vP username@host:/path/to/file .이것도 할 것입니다. 이 참조 대답유래
Devesh Saini

9

rsync를 : 전학 델타 (그 사용 델타 전송 알고리즘 사이를)

  1. 로컬원격 호스트

scp : 다음 사이에 전체 파일을 전송 합니다 .

  1. 로컬원격 호스트
  2. 원격원격 호스트

요약 : 지원하지 않는 scp두 원격 호스트간에 파일을 전송할 수 있습니다 rsync.


rsync는 두 개의 원격 호스트간에 파일을 전송할 수 있습니다. 실제로는와 rsync a host:b같습니다 scp a host:b.
brandizzi

그것이 내가 작성한 것입니다 .rsync는 로컬 호스트와 원격 호스트간에 델타를 전송할 수 있지만 scp는 그에 국한되지 않고 두 원격 호스트간에 델타를 전송할 수 있습니다. @brandizzi
Devesh Saini

2

Webhosting Talk의 사용자 Chris는 다음과 같이 말합니다 .

rsync각 끝의 파일을 비교하고 변경된 파일의 변경된 부분 만 전송합니다. 처음으로 파일을 전송할 때 파일은 거의 비슷하게 동작 scp하지만 대부분의 파일이 변경되지 않은 두 번째 전송의 경우 데이터보다 훨씬 적은 데이터를 푸시합니다 scp. 또한 실패한 전송을 다시 시작하는 편리한 방법입니다. 동일한 명령을 다시 발행하면 이전에 중단되었던 위치 scp에서 다시 시작 하지만 처음부터 다시 시작됩니다.


0

scp인수가 적으므로 사용하기가 더 쉽습니다. rsync단일 파일 만 전송하는 대신 scp를 사용하여 myselv를 포착 합니다. 아마도 나는 rsync에 별칭을 정의하기 위해 게으르다 ... ;-)


1
흠, 왜 그렇습니까? 같은 개수의 인수와 rsync a host:b같습니다 scp a host:b.
mikebloch

1
@mikebloch 두 글자를 더 입력 할 수 있습니다 ... ;-) 과거에는 "-e ssh -a"를 입력하여 올바른 결과를 얻었습니다. "-e ssh"가 기본값이므로 다른 게임 일 수 있습니다.
Nils

0

https://gist.github.com/KartikTalwar/4393116의 @tomrunia에 대한 크레딧

rsync -aHAXxv --numeric-ids --delete --progress \
  -e "ssh -T -c aes128-gcm@openssh.com -o Compression=no -x" \
  [source_directory] user@hostname:[target_directory]/

주의를 기울 --delete이 이명 령 DIRS에 외부 파일을 유지하려는 경우 사용하지 마십시오,

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.