SCP(및 rsync)에 작은 문제가 발생했습니다. 서버 A(SunOS 5.8 실행)에서 서버 B(SunOS 5.10 실행)로 일부 파일을 복사해야 합니다.
먼저 SSH를 통해 파일 목록(수백 개)을 얻고 다음을 찾습니다.
FILES=`ssh user@remote find ./ -name "*.sh" -o -name "*.cbs" -print`
scp -r user@remote:"$FILES" /u01/appl/somedir/
내 문제는 상대 경로를 사용하여 파일을 복사하고 디렉터리 구조도 만들고 싶다는 것입니다 product/11/ora/clean.sh
(결과적으로 /u01/appl/somedir/product/11/ora/clean.sh
). 현재는 파일 다운로드만 가능하고 디렉터리는 생성되지 않습니다. 보시다시피 -r
scp에서는 플래그를 사용하고 있습니다.
답변1
쉘은 user@remote:"$FILES" 구성을 원하지 않는 것으로 확장합니다. 첫 번째 항목에는 user@remote: 접두사가 있지만 나머지는 그렇지 않습니다.
SSH를 통해 tar를 전송할 수 있으므로 위의 "find" 명령을 사용하여 포함을 빌드하는 것이 더 쉬울 수 있습니다. 그런 다음 다음을 수행할 수 있습니다.
find ...stuff... > myfiles
scp myfiles user@remote
ssh user@remote "tar -Imyfiles -cvf - " | tar -C /u01/appl/somedir -xf-
교활하게 발견된 콘텐츠와 타르를 올바른 인용과 결합할 수 있습니다.