답변:
이전 답변은 기술적으로 정확하지만 rsync
대신 사용을 고려해야 합니다. rsync
송신 측과 수신 측의 데이터를 diff 메커니즘과 비교하므로 이전에 전송 된 데이터를 다시 보낼 필요가 없습니다.
원격 컴퓨터에 무언가를 두 번 이상 복사하려면을 사용하십시오 rsync
. 실제로 rsync
파일 권한 및 소유권 복사 및 특정 파일 또는 디렉토리 제외와 같은 항목에 대한 제어 기능이 더 많기 때문에 항상 사용하는 것이 좋습니다 . 일반적으로 :
$ rsync -av /local/dir/ server:/remote/dir/
로컬 디렉토리를 원격 디렉토리와 동기화합니다. 두 번째로 실행해도 로컬 디렉토리의 내용이 변경되지 않은 경우 scp
매번 모든 것을 실행 하고 복사하는 것 보다 훨씬 효율적인 데이터가 전송되지 않습니다 .
또한와 rsync
달리 중단 된 전송을 매우 쉽게 복구 할 수 있습니다 scp
.
마지막으로, rsync
기본적 으로 최신 버전은 ssh를 통해 실행되므로 scp
이미 작동하는 경우 rsync
대체 대체품이 될 것입니다.
rsync
더 효율적 이라는 데 동의합니다 . 현재 수행하지 않는 한 가지는 scp
원격 호스트 간 복사를 허용하는 것입니다 (적어도 rsync 클라이언트를 실행하지 않고).
-av
: v는 상세 정보, 아카이브 용이며 -rlptgoD의 바로 가기이며 재귀 적이며 권한 소유자 날짜 및 링크를 유지합니다. 재귀 적 사용만을 원한다면-r
이것이 -r
옵션입니다. :)
필요한 경우 자세한 내용은 scp 매뉴얼 페이지 를 참조하십시오 .
재귀 복사 옵션 '-r'(소문자)
scp -r
일반 로컬 재귀 복사 옵션 '-R'(대문자)과 혼동되는 부분
cp -R
가장 좋은 방법은 SSH를 통한 rsync를 사용하는 것입니다
rsync -a -essh /source/ user@dest-server:/dest/
rsync -a -essh user@source-server:/source/ /dest/
내가 가장 좋아하는 옵션은 -Pazvessh --delete입니다.
rsync
내가 사용한 모든 버전은 ssh
기본적으로 사용 되므로 -essh
필요하지 않을 것입니다. 그리고 원격 호스트에 연결하는 데 사용되는 명령의 선택은 실제로 재귀 적으로 복사하는 것과 관련이 없습니다.
재귀 적 복사 플래그를 찾아서이 게시물 덕분에 성공적으로 사용한 후 제안 사항을 게시하고 싶습니다.
디렉토리를 (재귀 적으로) 복사하는 경우입니다. 파일이 압축 된 상태로 전송되면 전송 시간을 절약 할 수 있습니다.
내가 결국 한 일은 :
local$ tar -czvf local.tar.gz directory/
local$ scp local.tar.gz user@remote:/directory
ssh user@remote
remote$ tar -xzvf local.tar.gz
도움이 되었기를 바랍니다
.tar.gz
하거나 .tgz
파일이 gzip으로 압축 된 tar 아카이브이기 때문에합니다 (이후 -z
플래그가 사용된다).
이 간단한 명령을 사용하여 디렉토리를 압축 된 아카이브로 재귀 적으로 복사 할 수 있습니다.
ssh -p 22 user@address-to-copy-from.com 'cd /parent/directory && tar zcvf - directory_to_copy' > /destination/on/your/machine/archive_name.tgz
예를 들어 /var/log
from의 내용을 복사 domain.com
하려면 ~/logs.tgz
다음을 실행하십시오.
ssh -p 22 user@domain.com 'cd /var && tar zcvf - log' > ~/logs.tgz
파이프를 사용하여 대상 시스템에서 파일을 추출 할 수도 있습니다. 이 명령의 내용을 복사 할 /var/log
시 domain.com
에 ~/destination/log
시스템에 :
ssh -p 22 user@domain.com 'cd /var && tar zcvf - log' | tar xzf - -C ~/destination
디렉토리를 미러링하지만 아마도 rsync
...를 사용해야합니다 .
scr 명령과 함께 -r 옵션을 사용하여 모든 시스템에서 디렉토리를 재귀 적으로 복사 할 수 있습니다. 다른 것이 필요하면 scp 명령 튜토리얼을 참조하십시오 . -r 옵션은 대부분의 Linux 명령에서 재귀 작업을 나타냅니다.
-r
옵션은 이미 몇 년 전에 제안되었으며 허용되는 답변입니다.
또 다른 (반복적으로 사용하는 것이 좋을 수도 있음) 옵션은 NFS를 사용하는 것입니다-nfs-kernel-server 및 NFS 공유 설정 방법을 확인하십시오.
scp
있지만 NFS는 옵션이 아닙니다.