SSH를 통해 클러스터에서 qsub 실행

SSH를 통해 클러스터에서 qsub 실행

로컬(Linux) 시스템에서 컴퓨팅 작업을 자동으로 생성하고 이를 클러스터에 복사한 후 큐 시스템에 제출하는 시스템을 설정하고 있습니다.

클러스터에서 실행해야 하는 스크립트를 피하려고 합니다. 이렇게 하면 스크립트가 하나만 있고 디버깅할 수 있는 곳에서 실행됩니다.

authorized_keys필요한 모든 파일을 로컬로 생성한 후 로컬 사례 디렉터리에서 이 작업을 수행하도록 설정했습니다 .

ssh cluster 'mkdir /home/user/casedir'
scp localdir/* cluster:/home/user/casedir/
ssh cluster 'qsub /home/user/casedir/run_script.sge'

...이것은 클러스터에 케이스 디렉토리를 생성하고 필요한 모든 파일을 복사하지만 세 번째 줄에서 qsub: 명령을 찾을 수 없음으로 인해 실패합니다.

그러나 대화식으로 입력하여 ssh cluster클러스터에 쉘을 가져온 다음 qsub 명령을 입력하면 작업이 시작되고 정상적으로 실행됩니다!

...여기서 내가 무슨 실수를 했나요? 관련된 경우 클러스터는 Sun Grid Engine의 상당히 오래된 버전을 실행하고 있습니다.

클러스터에서 qsub 명령을 실행하는 bash 스크립트를 로컬로 생성하고 복사할 수 있다고 가정하지만 이는 매우 우회적인 접근 방식처럼 보입니다.

답변1

qsub클러스터의 사용자 또는 파일에 추가한 것 같습니다 $PATH. 명령을 실행해도 읽혀지지 않습니다..bashrc.profilessh

전체 경로를 사용하면 제대로 작동합니다 qsub.

ssh cluster '/usr/local/bin/qsub /home/user/casedir/run_script.sge'

분명히 클러스터의 /usr/local/bin/qsub어떤 경로 로든 변경해야 합니다. qsub모르는 경우 클러스터에 로그인하고 type qsub.

관련 정보