저는 연구실 컴퓨터 세트에 대한 Wake on LAN 스크립트를 작성하고 있습니다. 우리는 컴퓨터 호스트 이름, IP 및 MAC 목록을 포함하는 sqlite 데이터베이스를 가지고 있습니다. 현재 "-c1"을 사용하여 각 데이터베이스를 ping하여 끝없이 실행되지 않도록 합니다. 하지만 약간의 대기 시간이 필요하더라도 더 빠른 방법이 있습니까? 핑 대신 응답? ping을 사용하면 계속하려면 ping 응답이 필요하므로 스크립트 속도가 크게 느려지는 것 같습니다.
어떤 조언이라도 진심으로 감사드립니다!
답변1
단일 패킷을 보내고 응답을 기다리는 것이 가장 빠른 방법 중 하나이며 ping이 좋은 방법입니다. 실제로 귀하의 사용 사례에 따르면 다음과 같습니다.너무 빨라, 시스템이 실제로 유용한 작업을 수행하는지 여부를 알려주는 것이 아니라 커널의 네트워킹 하위 시스템이 활성화되어 구성되어 있다는 사실만 알려주기 때문입니다.
그러나 이것이 충분하다고 가정하면 몇 가지 개선을 할 수 있습니다. 첫째, -W1
핑 시간 초과를 1초로 줄일 수 있습니다. 둘째, 스크립트가 다른 호스트를 비동기적으로(백그라운드 스레드에서) ping하도록 하고 기다리지 않고 필요에 따라 결과를 확인할 수 있습니다.
또는 접근 방식을 다시 생각하고 시작 시 원격 시스템을 체크인하도록 할 수 있으며, 시스템이 아직 체크인하지 않은 경우 시스템이 다운된 것으로 가정할 수 있습니다.
답변2
이것이 fping이 설계된 이유입니다.http://fping.sourceforge.net/
반환 코드에 의존하기보다는 나중에 출력을 구문 분석해야 하지만 일반 핑보다 훨씬 빠릅니다.
답변3
ethtool
이는 한 대 또는 두 대의 컴퓨터에서만 작동하지만 상태 확인을 담당하는 컴퓨터에 직접 연결하면 링크가 활성화되어 있는지 확인하는 데 사용할 수 있습니다 .
답변4
신경절클러스터의 많은 호스트를 모니터링하려면 멀티캐스트 트래픽을 사용하세요. 비슷한 것을 사용할 수 있을까요? 이는 네트워크 하드웨어가 모든 호스트와 모니터링 시스템 간의 멀티캐스트 트래픽을 허용한다고 가정합니다.