it-swarm-ko.tech

원격 Linux 서버-원격 Linux 서버 디렉토리 복사 어떻게?

하나의 원격 Linux 서버에서 다른 원격 Linux 서버로 디렉토리 (하위 디렉토리 및 파일 포함)를 복사하는 가장 좋은 방법은 무엇입니까? SSH 클라이언트 (예 : PuTTY)를 사용하여 둘 다에 연결했습니다. 둘 다에 대한 루트 액세스 권한이 있습니다.

43
Arun Agrawal

내가 보통 이것을하는 두 가지 방법이 있습니다. 둘 다 ssh를 사용하십시오.

scp -r sourcedir/ [email protected]:/dest/dir/

또는보다 강력하고 빠른 (전송 속도 측면에서) 방법 :

rsync -auv -e ssh --progress sourcedir/ [email protected]:/dest/dir/

작동 방법에 대한 자세한 내용을 보려면 각 명령에 대한 매뉴얼 페이지를 읽으십시오.

62
Ycros

이전에 제안한 답변을 수정하겠습니다.

rsync -avlzp /path/to/sfolder [email protected]:/path/to/remote/dfolder

다음과 같이 :

-a (아카이브의 경우)는 -rlptgoD를 의미하므로 위의 l 및 p는 불필요합니다. 또한 하드 링크를 복사하는 -H를 포함하고 싶습니다. 비싸기 때문에 기본적으로 -a의 일부가 아닙니다. 이제 우리는 이것을 가지고 있습니다 :

rsync -aHvz /path/to/sfolder [email protected]:/path/to/remote/dfolder

또한 슬래시 뒤에주의해야합니다. 당신은 아마 원한다

rsync -aHvz /path/to/sfolder/ [email protected]:/path/to/remote/dfolder

소스 "스 폴더"의 내용이 대상 "d 폴더"에 나타나기를 원하는 경우. 후행 슬래시가 없으면 "sfolder"하위 디렉토리가 대상 "dfolder"에 작성됩니다.

32
user19218

rsync -avlzp/path/to/폴더 [email protected] :/path/to/remote/폴더

9
Ana Betts
scp -r <directory> <username>@<targethost>:<targetdir>
6
Cody Brocious

하나의 컴퓨터에 로그인

$ scp -r/path/to/top/directory user @ server :/path/to/copy

5
Flame

작업이 반복되는 경우 일제히 시도하십시오. http://www.cis.upenn.edu/~bcpierce/unison/

3
user11104

scp 또는 rsync , man scpman rsync

scp file1 file2 dir3 [email protected]:path
2
John Douthat

연결이 끊어 질 경우 계속할 수 있도록 rsync를 사용하십시오. 그리고 무언가가 바뀌면 훨씬 더 빠르게 복사 할 수 있습니다!

Rsync는 SSH와 함께 작동하므로 복사 작업이 안전합니다.

2
Ady Romantika

나는 rdiffbackup http://www.nongnu.org/rdiff-backup/index.html 을 사용했는데 멋진 옵션없이 필요한 모든 것을하기 때문입니다. rsync 알고리즘을 기반으로합니다. 한 번만 복사하면 나중에 대상 호스트에서 rdiff-backup-data 디렉토리를 제거 할 수 있습니다.

rdiff-backup [email protected]::/source-dir [email protected]::/dest-dir

문서에서 :

rdiff-backup은 하위 디렉토리, 하드 링크, dev 파일, 권한, uid/gid 소유권, 수정 시간, 확장 된 속성, acl 및 리소스 포크를 유지합니다.

-p 옵션이 모든 것을 보존하지 않기 때문에 scp -p 제안에 대한 보너스입니다 (예 : 디렉토리에 대한 권한이 잘못 설정 됨)

우분투에 설치 :

Sudo apt-get install rdiff-backup
2
Gunstick

scp는 작업을 수행하지만 하나의 주름이 있습니다. 두 번째 원격 대상에 대한 연결은 첫 번째 원격 대상의 구성을 사용하므로 로컬 환경에서 .ssh/config를 사용하고 rsa 및 dsa 키가 예상되는 경우 작업하려면 에이전트를 첫 번째 원격 호스트로 전달해야합니다.

1
Justin Dossey

글쎄, 빠른 대답은 복사해야 할 내용에 따라 'scp'맨 페이지 또는 rsync를 살펴 보는 것입니다. 당신이해야한다면, 당신은 심지어 tar-over-ssh를 할 수 있습니다 :

tar cvf - | ssh server tar xf -
1
zigdon

나는 당신이 시도 할 수 있다고 생각합니다 :

rsync -azvu -e ssh [email protected]:/directory/ [email protected]:/directory2/

(그리고 나는 당신이 Host0에 있고 Host1에서 Host2로 직접 복사하려고한다고 가정합니다)

위의 방법으로 문제가 해결되지 않으면 다음을 시도해보십시오.

ssh [email protected] "/usr/bin/rsync -azvu -e ssh /directory/ [email protected]:/directory2/"

이 경우 Host1에서 Host2로 비밀번호없는 SSH 로그인을 이미 설정 한 경우 작동합니다.

1
Ram Prasad

루트가 아닌 사용자로서 이상적으로 :

scp -r src $ 호스트 : $ 경로

$ Host의 일부 컨텐츠가 이미 있으면 ssh와 함께 rsync를 터널로 사용하십시오.

앨런

0
Allan Wind

정확한 사본을 원할 경우 -p 스위치를 사용하여 scp를 사용하고 싶을 수도 있습니다. 나는 scp devices reads를 발견했고 cpio에 문제가 있었기 때문에 개인적으로 항상 tar , 이렇게 :

cd /Origin; find . -xdev -depth -not -path ./lost+found -print0 \
| tar --create --atime-preserve=system --null --files-from=- --format=posix \
--no-recursion --sparse | ssh targethost 'cd /target; tar --extract \
--overwrite --preserve-permissions --sparse'

파일을 복사하는 다른 다양한 방법으로 파일에이 주문을 보관합니다. 이것은 SSH를 통해 복사하기위한 것입니다. 다른 것들은 압축 된 아카이브로 복사하기 위해, 같은 컴퓨터 내에서 복사하기 위해 그리고 SSH가 너무 느릴 때 암호화되지 않은 TCP 소켓을 통해 복사하기위한 것입니다.

0
Teddy

위에서 언급 한 것처럼 scp가 가장 좋은 방법이지만 원격 디렉토리 사양에서 콜론을 잊지 마십시오. 그렇지 않으면 로컬 컴퓨터에서 소스 디렉토리의 사본을 얻습니다.

0
Sergey Stolyarov

나는 타르를 ssh를 통해 파이프하는 것을 좋아합니다.

tar cf-[디렉토리] | ssh [사용자 이름] @ [호스트 이름] tar xf--C [원격 상자 대상]

이 방법은 많은 옵션을 제공합니다. 루트 ssh를 비활성화해야하므로 일반 사용자로 원격 서버에 로그인하기 때문에 여러 사용자 계정에 대한 파일 복사가 어렵습니다. 이 문제를 해결하기 위해 소유권을 유지하는 원격 상자에 tar 파일을 만들 수 있습니다.

tar cf-[디렉토리] | ssh [username] @ [hostname] "cat> output.tar"

연결 속도가 느리면 압축, zzip은 z, bzip2는 j를 추가 할 수 있습니다.

tar cjf-[디렉토리] | ssh [username] @ [hostname] "cat> output.tar.bz2"

tar czf-[디렉토리] | ssh [username] @ [hostname] "cat> output.tar.gz"

tar czf-[디렉토리] | ssh [사용자 이름] @ [호스트 이름] tar xzf--C [원격 상자 대상]

0
Chuck