스크립트를 사용하여 두 단계로 파일을 다운로드합니다.
- 먼저 .zip 파일을 사용하여 서버에서 호스트 컴퓨터로 파일 목록이 포함된 파일을 다운로드했습니다
rsync
. - 그런 다음
rsync
목록에 있는 실제 파일(상당히 많음)을 서버에서 호스트 컴퓨터로 다운로드합니다.
문제는 스크립트가 주기적으로 비밀번호를 요구한다는 것입니다. 즉, 서버에서 내 계정의 비밀번호를 계속 요구한다는 것입니다. 파일은 문제 없이 다운로드되었는데 서버에서 목록에 있는 각 파일을 다운로드하는 동안 비밀번호를 요청했기 때문에 for 루프가 문제를 일으킨 것으로 추측됩니다.
내가 맞다면 스크립트가 비밀번호를 한 번만 요구하도록 가능한 해결책은 무엇입니까? 내가 틀렸다면 정정해주세요.
노트:그런데 키 기반 인증은 허용되지 않습니다.
#!/bin/bash
rsync --partial -z --remove-source-files server:~/list ~/.
for i in $(cat ~/list)
do
rsync --partial -z server:/some/location/$i ~/someplace/$i
done
답변1
당신의 이론은 나에게 딱 맞는 것 같습니다. for 루프를 통해 호출할 때마다 rsync
서버에 다시 연결되어 메시지가 다시 표시됩니다.
~/list
파일을 반복하는 대신 for
이 목록을 use 스위치에 직접 공급할 수 있습니다 .rsync
--files-from=
예
$ rsync --partial -z --files-from=/some/list server:/some/location/ ~/someplace/