저는 Linux 컴퓨터와 Microsoft Vista 노트북을 가지고 있습니다. 내 노트북의 배터리 지속 시간을 알고 싶습니다. 이에 대한 스크립트를 어떻게 작성할 수 있습니까? 즉, 전원 코드를 뽑았을 때와 Linux로 핑 전송이 중지되었을 때 Linux를 확인하는 방법은 무엇입니까? 나는부터 시도한다
#!/bin/bash
time (
while [ true ]; do
ping -c 1 "$1" > /dev/null || break
sleep 1
done
)
하지만 이제 전원 코드가 연결되어 있는지 여부를 읽으려면 스크립트를 수정해야 합니다.
답변1
Windows에는 다음과 같은 API가 있습니다.WMI. - Windows 관리 도구
목적
WMI(Windows Management Instrumentation)는 Windows 기반 운영 체제에서 데이터와 작업을 관리하기 위한 인프라입니다. WMI 스크립트나 응용 프로그램을 작성하여 원격 컴퓨터의 관리 작업을 자동화할 수 있지만 WMI는 System Center Operations Manager(이전의 MOM(Microsoft Operations Manager)) 또는 Windows Remote Management와 같은 운영 체제 및 제품의 다른 부분에도 관리 데이터를 제공합니다. (WinRM).
이는 SNMP나 JMX와 유사한 독점 기술입니다. 둘 다 주로 모니터링 시스템에 사용됩니다.나기오스또는자비크스.
네트워크를 통해 이 정보를 검색하려면 WMI를 활성화하고(Windows 관련 포럼에서 자세한 정보를 찾을 수 있음) Linux용 wmi 클라이언트를 사용하면 됩니다.WMI 클라이언트
예:
wmic -U Administrator%mysecret //192.168.20.20 "Select WorkingSetSize from Win32_Process Where CommandLine like '%java.exe%'"
이 명령은 관리자 계정과 "mysecret" 비밀번호를 사용하여 192.168.20.20을 쿼리하고, 프로세스 배열을 가져오고, 다음과 유사한 이름을 가진 모든 프로세스를 검색합니다.java.exe
win32_battery
랩톱 전원 정보를 검색하는 올바른 클래스입니다. 예여기. EstimatedChargeRemaining
원하는 정보를 얻기 위해 변수를 사용하기만 하면 됩니다.Win32_batteryLinux에서 wmi-client를 사용하는 클래스입니다.
편집 1:Win32_Battery가 내 워크스테이션에서 작동하지 않습니다. 아마도 가상 데스크톱이고 배터리가 전혀 없기 때문일 것입니다. 그러나 다른 WMI 쿼리를 수행할 수 있습니다.
[root@host ~]# wmic -U nicolas -W DOMAIN //192.x.x.x "SELECT Caption FROM Win32_OperatingSystem"
Password for [DOMAIN\nicolas]:
CLASS: Win32_OperatingSystem
Caption
Microsoft Windows 7 Enterprise
-W
이 경우에는 기본 도메인 대신 어떤 도메인/작업 그룹을 사용해야 하는지 명령에 알려 주곤 했습니다 WORKGROUP
.
관련 정보:- Windows 측에서 확인해야 할 사항.