私はLinuxコンピュータとMicrosoft Vistaノートブックを持っています。私のラップトップのバッテリーの持続時間を知りたいです。これに対するスクリプトをどのように書くことができますか?つまり、電源コードを抜いたときとLinuxへのping転送が停止したときに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 (以前の Microsoft Operations Manager) (MOM) や 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 側で確認すべき事項。