명확히 하기 위해 gnu parallel
설정에서 다음과 같은 정확한 명령을 실행하고 있습니다(변수가 변경됨).
/usr/bin/parallel -q -j20
rsync --recursive -av -e ssh -oCompression=no -x -T
-oUserKnownHostsFile=/dev/null -oConnectTimeout=15
-i ssh_key -l some_username --chmod=Dugo+rwx,Fugo+rw
--files-from {} /some/base/dir somehostame:/some/other/dir
이는 20개의 작업자 프로세스에 걸쳐 약 50개의 파일(rsync를 포함하는 파일/디렉터리 이름 목록)을 소비합니다 gnu parallel
. 어젯밤에 위 작업을 실행했고, 직장으로 돌아왔을 때 여전히 1개의 rsync 작업이 걸려 있는 것을 발견했습니다.
rsync --recursive -av -e ssh -oCompression=no -x -T -
oUserKnownHostsFile=/dev/null -oConnectTimeout=15
-i ssh-beta-secdata-20180515t213639 -l diskmaker
--chmod=Dugo+rwx,Fugo+rw
--files-from ./some_filelist /some/base/dir somehostname:/some/other/dir
확실히 말하자면, some_filelist
이것은 제가 rsync하려는 디렉터리 목록입니다.
chroot
루트 디렉터리(예: "d")의 파일을 /some/base/dir
원격 디렉터리로 가져 갑니다 somehostname:/some/other/dir
.
따라서 약 500개의 일자리를 이용할 수 있습니다 parallel
. 각 파일 목록을 분석했는데 ./some_filelist
rsync dryrun의 표준 200개 파일에는 특별한 것이 없었습니다.
이 문제에 대한 진단을 받은 사람이 있습니까? 나는 이것이 어떻게 일어 났는지 전혀 모른다. 필요한 경우 더 많은 내용을 게시할 수 있습니다.
답변1
Ole Tange가 제안한 대로 하나의 매개변수(귀하의 경우 디렉터리 이름)만 사용하여 rsync를 시도하면 rsync에서 SSH 비밀번호를 묻는 메시지가 표시될 수 있습니다. 실험에서 동일한 문제에 직면했을 때 병렬은 ssh 비밀번호를 묻는 메시지를 표시하지 않지만 백그라운드에서는 비밀번호가 필요하다는 것을 발견했습니다.
답변 중 하나를 적용하세요.이 슈퍼유저 질문내 문제를 해결했습니다. 구체적으로 다음과 같습니다.
1) 공개 키를 생성합니다.
SSH 키 생성기
2) 해당 키를 "somehostname"에 복사합니다.
ssh-copy-id -i ~/.ssh/id_rsa.pub user@somehostname 또는 somehostname의 IP 주소
그게 다야. 이 단계를 완료하면 두 컴퓨터 간의 SSH 연결에는 SSH 비밀번호가 필요하지 않습니다. 제 경우에는 이 구성을 사용하면 명령이 중단되었습니다.