2016-10-07 4 views
0

사용자가 있는지 확인하고 싶은 약 100 대의 서버가 있습니다. 각 서버마다 수동으로 이동하는 대신,이를 수행하는 스크립트를 작성하려고합니다. 그래서, 나는 그것을 확인하기 위해 다음 스크립트를 작성했다.사용자가 여러 서버 목록에 있는지 확인하는 방법?

#!/bin/bash 
if id user1 >/dev/null 2>&1; then 
     echo "user1 user exists" 
else 
     echo "user1 user does not exist" 
fi 

은 내가 스크립트를 사용하여 서버로도 SSH를 할 수 있지만, 그것을 수행하는 더 좋은 방법이 있으면 제안 해주십시오해야합니다 생각합니다.

+0

그 100 대의 서버가 유닉스입니까? 또는 혼합? (Windows, Unix .. etc) – Fadi

+0

또한 SSH가없는 안전한 방법이 있는지 확실하지 않습니다. 사용자가 있는지 여부를 확인할 수있는 스크립트가있는 서버에 API를 공개 할 수 있다고 생각합니다. SSH를 통해이 작업을 수행하려면 암호가 없으면 가지고있는 모든 서버를 반복하여 다음과 같이 할 수 있습니다. http://stackoverflow.com/a/14811956/4557537 – Fadi

+1

각 호스트에 ssh를 사용할 수 있습니까? 매번 암호를 입력하지 않고도? 그렇다면 for 루프로 감싸고'if ssh '를 사용하십시오. $ host "id user1 .." –

답변

0

"당신은 관리자라는 것을 의미하므로 공개 키와 함께 루트 계정을 사용할 수 있습니다 ... 개인 키를 안전하게 유지하고 비밀번호없이 ssh 액세스를 사용할 수 있도록하십시오.

그렇지 않으면, 모든 기계에서 자신의 계정을 가지고 각각에 ssh를 설치하고 해당 id 명령을 실행하는 것이 더 안전합니다.

모든 호스트의 authorized_keys 파일에 ssh 공개 키가있는 경우 암호가 필요하지 않습니다. 그런 다음 컴퓨터에서 ssh-agent가 개인 키를 유지하므로 암호를 한 번만 입력하면됩니다.

관련 문제