한 번에 여러 파일을 scping-하나의 대상 서버의 여러 대상으로?


9

몇 개의 디렉토리에있는 약 6 개의 파일을 대상 머신의 동일한 디렉토리로 scp하고 싶습니다.

ssh 키를 사용하지 않고 한 번의 통화로 가능합니까?

예를 들면 다음과 같습니다.

scp /path/to/fileA,/anoth/erpath/to/fileB,/yet/more/files/*    #continue next line
    destination:/path/to,/anoth/erpath/to,/yet/more/files

답변:


8

송신 측에서 파일을 압축하고 수신 측에서 압축을 푸십시오.

tar -cf - /path/to/fileA /anoth/erpath/to/fileB /yet/more/files/* |
ssh -C destination 'cd / && tar -xf -'

sftp 세션을 스크립팅하거나 올바른 필터와 함께 rsync를 사용할 수도 있습니다.


몇 개의 파일 만 있으면 scp -r해결책에 감사하는 것보다 전체를 복사해야합니다 . 그러나 이보다 훨씬 빠릅니다.
xaedes

4

여러 src에서 하나의 대상으로 복사 할 수 있습니다. scp -r src1 src2 ... dst 그러나 여러 목적지 에는 해당되지 않습니다 .

한 가지 옵션은 모든 디렉토리를 임시 대상 디렉토리로 복사하는 것입니다. 그런 다음 나중에 다시 이동하십시오.


이것은 tar-ssh 솔루션만큼 효과적입니다. 또한 입력 / 기억하기가 더 쉽습니다. 또한 업로드중인 내용에 대한 피드백도 제공합니다. 그러나 tar-ssh를 복사 할 작은 파일이 많은 경우 하나의 큰 파일 만 전송하면되므로 scp-r은 각 파일을 훨씬 더 많은 오버 헤드로 개별적으로 복사하므로 훨씬 빠릅니다.
xaedes

1

pssh패키지를 보십시오 . 또한이 parallel-scp명령을 사용합니다. -h옵션을 사용하면 여러 호스트를 대상으로 한 줄에 하나씩 텍스트 파일을 제공 할 수 있습니다.


A의 파일이 B로 갈 때마다 암호를 요구해야합니까?
warren

2
이를 위해 내가 사용하고 ssh-add있습니다. 하루가 시작될 때 자격 증명을 한 번 입력합니다. 그런 다음 자동으로 로그인됩니다.
캐주얼 코더

0

다음 명령을 사용하여 여러 파일을 여러 대상으로 복사합니다.

scp -r src {1,2,3} 대상 {1,2,3}

이 명령은 다음 명령 세트와 같은 역할을합니다.

scp -r src1 dest1

scp -r src1 dest2

.

.

.

scp -r src3 dest2

scp -r src3 dest3


시도 할 때 작동하지 않습니다. ubuntu@landslide:~$ scp -r {test1,test2} landslide:/home/ubuntu/{test3,test4} scp: /home/ubuntu/test4: No such file or directory대상이 디렉토리가되기를 원합니다.
sudo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.