2013-04-21 2 views
1

한 UNIX 시스템에서 다른 시스템으로 SSH를 복사 할 때 각 파일을 한 번에 다른 대상 (예 : 각 파일에 대해 새 SSH 연결을 설정하는 오버 헤드가 발생하지 않음)으로 복사 할 수 있습니까? 당신이 걸릴 수여러 개의 파일을 여러 대상으로 복사

/Users/apple/a --> /home/orange/. 
/etc/var/b --> /usr/local/var/. 
/other/c --> /wildly/different/. 
+0

나는 이것이 완전히 철회 된 것에 실망했다. 기록을 위해 나는 슈퍼 유저로 이동하기로 결정했다. – ruakh

답변

1

한 가지 전략은 당신이 것 파일 구조를 모방 로컬 시스템 (발신자)에 "루트"디렉토리를 생성하는 것입니다 :이 같은 파일 무언가의 소스 및 대상을 지정하여 예를 들어, 받는 기계에 가지고 있고, 그 후에 그것을 다른 기계에 루트 (/)에 베끼는 것을 좋아하십시오.

/tmp/root 
/tmp/root/home/orange/a 
/tmp/root/usr/local/var/b 
/tmp/root/wildly/different/c 

을 그리고 단지 단지 하나의 복사 작업이 될 것입니다 원격 시스템에 //tmp/root 복사 : 예를 들어, "루트"로 다음과 같은 임시 디렉토리를 구성 할 수 있습니다.

1

난 당신이 같은 것을 쓸 수 있다고 가정 :

mkdir ./tmp/ 
ln -s /Users/apple/a /etc/var/b /other/c ./tmp/ 
# Now ./tmp/ has symbolic links to all these files. 
# Tar the files to STDOUT, and pipe that over SSH to a 
# tar that's reading from STDIN: 
tar -ch tmp/* \ 
    | ssh [email protected] ' tar -xf - 
        mv tmp/a /home/orange/ 
        mv tmp/b /usr/local/var/ 
        mv tmp/c /wildly/different/ 
        rmdir tmp/ 
        ' 
rm -r tmp/ 

. . . 매우 우아하지는 않지만 단일 SSH 연결 만 필요합니다.

1

SSH session sharing을 고려해 볼 수 있습니다. 더 이상 재 인증 할 필요가 없으므로 빠릅니다.

관련 문제