2015-01-29 2 views
0

이 스크립트가 작동하지 않는 것 같습니다. 파일의 노드 목록에있는 CPU의 양을 쿼리하려고합니다.여러 노드에 대해 bash 스크립트를 사용하는 ssh

readarray fnames < nodes.txt 

for fn in "${fnames[@]}" 
do 
    com="ssh $fn `cat /proc/cpuinfo | grep processor | wc -l`" 
    com=${com: -2} 
    echo $fn      $com 
done 

CPU 수보다 호스트 이름이 인쇄되어야합니다. 대신 매번 호스트 이름과 8을 인쇄합니다. 나는이 8이

bash: 8: command not found 

으로 표시되어 있다고 생각합니다. 이것에

+0

는 나는 항상'고양이/proc 디렉토리/cpuinfo의 실행 것 같다 발견 | grep 프로세서 | wc -l'은 현재의 호스트 명으로, 항상 8을 반환합니다. –

답변

1

변경을 :

readarray fnames < nodes.txt 

for fn in "${fnames[@]}" 
do 
    echo "getinfo:$fn" 
    com="ssh $fn cat /proc/cpuinfo | grep processor | wc -l" 
    com1=$($com) # or com1=`$com` 
    echo "$fn      $com1" 
done 
+0

'./cpus.sh : line 14 : com : command not found' 에러가 발생합니다. –

+0

@JacquesMALAPRADE,이 리눅스인가요? 어떤 버전? 프로그램 목록 – michael501

+0

@JacquesMALAPRADE 변경하기 : com1 = $ ($ com) – michael501

관련 문제