SSH(및 공개 키 인증)를 통해 연결되는 원격 장치에 대한 gnu 병렬 요구 사항은 무엇입니까?

SSH(및 공개 키 인증)를 통해 연결되는 원격 장치에 대한 gnu 병렬 요구 사항은 무엇입니까?

나는 gnu 병렬을 사용하고 있습니다.

내 환경에 문제가 있는 것 같아요.

내가 달성하고 싶은 것:
여러 컴퓨터에서 명령을 실행하려고 합니다.
이를 위해 다음과 같은 항목이 포함된 sshloginfile(~/.parallel/sshloginfile이라는 이름이 적절함)을 만들었습니다.

#  define hostgroup debian
@debian/5-1.p
@debian/6-1.p
@debian/7-1.p
...
#  define hostgroup qnap with only 1 cpu
1/@qnap/4-1.a
#  define hostgroup macos
@macos/33-1.w
#  local computer
@macos/:

호스트 그룹(@debian, @qnap, ...) 뒤에 있는 이름(5-1.p, 6-1.p, ...)은 ~/.ssh/config의 항목입니다. 모든 SSH 연결은 공개 키 인증을 통해 인증됩니다.

간단한 명령으로 가동 시간을 확인하고 싶습니다.

parallel --jobs 0 --nonall --tag --slf .. uptime

아름답게 작동합니다

:   19:25  up 4 days, 23:02, 3 users, load averages: 2.14 1.86 1.79
5-1.p    19:25:27 up 23 days, 18:54,  0 users,  load average: 0.05, 0.13, 0.18
6-1.p    19:26:04 up 20:05,  0 users,  load average: 0.03, 0.08, 0.10
4-1.a   sh: line 0: exec: perl: not found

QNAP 스토리지 시스템인 하나의 호스트(4.1-a)를 제외하고.

놀랍게도 명령은~ 아니다sshloginfile을 사용하지만 대신 이 서버 하나를 직접 지정합니다.하다일하다:

parallel --jobs 0 --nonall --tag ssh 4-1.a uptime

출력:

19:28:37 up 16 days,  8:24, load average: 0.72, 0.61, 0.59

따라서 장치가 sshloginfile을 통해 주소가 지정되는 경우 충족해야 하는 종속성/전제 조건이 있는 것 같습니다. 그렇지 않으면 필요하지 않습니다. 그리고 그것은 실제로 QNAP 스토리지 시스템에 설치되지 않은 Perl인 것 같습니다.
왜 이것이 될지 아는 사람이 있습니까?

병렬 버전: GNU 병렬 20181222
호스트 OS 버전: Darwin 18.2.0 Darwin 커널 버전 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64 x86_64 [macOS 10.14.2]
작업 장치의 os 버전: Linux 4.14.90+ #1183 Fri Dec 21 13:50:04 GMT 2018 armv6l GNU/Linux
os 버전 "문제가 있음" " 장치 4-1.a: Linux 3.4.6 #1 Wed Jan 2 07:02:07 CST 2019 armv5tel 알 수 없음

부록: 매뉴얼 페이지에는
DEPENDENCIES
GNU 병렬이 Perl을 사용하고 Perl 모듈 Getopt::Long, IPC::Open3, Symbol, IO::File, POSIX 및 File::Temp가 사용된다고 명시되어 있습니다. 원격 사용을 위해 ssh와 함께 rsync도 사용합니다.

rsync가 "문제가 있는" 장치에 설치되었습니다.

답변1

perlGNU Parallel은 20150122년부터 원격 시스템에 설치되는 것에 의존해 왔습니다 .

당신이 보고 있는 것은 서버에 qnapPerl이 설치되어 있지 않다는 것을 의미합니다.

실행하는 경우:

parallel -vvS server echo ::: foo
parallel -vvS server --wd ...  --trc {}.foo touch {}.foo ::: *

GNU Parallel이 실제로 실행되고 있는 것을 볼 수 있습니다. 보시다시피 이는 다소 복잡하며 Perl 스크립트를 포함합니다. 이것이 원격 시스템에 Perl이 필요한 이유입니다.

이에 대한 자세한 내용은 다음을 참조하세요.https://www.gnu.org/software/parallel/parallel_design.html#The-remote-system-wrapper

내 추측은 다음과 같습니다.

parallel -S 1/4-1.a echo ::: foo

또한 다음과 같은 결과가 발생합니다.

sh: line 0: exec: perl: not found

따라서 해결책은 아마도 Perl을 qnap.

관련 정보