2013-11-26 2 views
0

HPC에서 작업 중입니다. 많은 노드가 있습니다. 대화 형 qsub을 사용하면 이러한 노드 중 하나에 로그온 할 수 있습니다. 그리고 병렬 컴퓨팅을 할 때 현재 연결 가능한 노드 수를 확인하고 프로그램을 구성해야합니다. 노드가 자주 고장 났기 때문입니다.일련의 원격 컴퓨터에 ssh 연결을 검색하는 스크립트를 작성하는 방법은 무엇입니까?

예를 들어, 노드 이름은 bh001, bh002, bh003는 ..... 그리고

ssh bh001 

는 bh001 노드를 로그온 할 것이다.

그래서이 일련의 노드에 대한 ssh 연결을 탐지하는 스크립트를 작성 하시겠습니까? 스크립트가 현재 연결 가능한 노드 목록을 txt 파일로 제공하기를 원합니다.

답변

1

당신은 다음과 같이 뭔가를 할 수 : 성공할 경우입니다

ping -c1 $server &>/dev/null && echo $server 

, 그렇지 않으면 아무것도 인쇄하지, 그것을 인쇄, $server 1 핑을 보내려고합니다.

내가 틀릴 수도 있지만 시스템에 살아있는 노드 목록을 가져 오는 표준 방법이 있어야한다는 느낌이 들었습니다. 당신의 설명서를보십시오. 이것은 분명히 존재하는 기능입니다.

+0

당신을 감사합니다! 그것은 작동합니다. 관리자에게 모든 노드를 모니터링하라는 명령이 있다는 것을 알고 있습니다. 그러나 나는 사용자가 그것을 할 수 있는지 없는지를 모른다. – user15964

0

우리는 centos/redhat 기본 암석 클러스터의 ssh 포트를 확인하기 위해 'nc'명령을 사용하고 있습니다.

일반적으로 nc 패키지는 DVD 또는 기본 저장소에서 사용할 수 있습니다.


#!/bin/bash 

IP=192.168.56.1 
PORT=22  
nc -z $IP $PORT &> /dev/null 
if [ $? -eq 0 ];then 
    echo "$IP is connected" 
    ## Do stuff for success 
else 
    echo "$IP is unable to connected" 
    ## Do stuff for fail 
fi 

관련 문제