2013年8月31日土曜日

groovyでOSの情報を取得する

java.lang.management.OperatingSystemMXBeanから以下のOS情報を取得できます。
  1. OS名
  2. OSアーキテクチャー
  3. 使用できるプロセッサの数
  4. システム平均負荷
  5. プロセスの実行に利用可能な仮想記憶の容量
  6. 空き物理メモリーの容量
  7. 物理メモリーの合計容量
  8. 空きスワップ空間の容量
  9. スワップ空間の合計容量

サンプルコード
import java.lang.management.*

def osMXBean = ManagementFactory.getOperatingSystemMXBean()
// OS名
println "OS name:${osMXBean.name}"
// OSアーキテクチャー
println "architecture:${osMXBean.arch}"
// 使用できるプロセッサの数
println "available processors:${osMXBean.availableProcessors}"
// システム負荷平均
println "system load average:${osMXBean.systemLoadAverage}"
// プロセスの実行に利用可能な仮想記憶の容量
println "committed virtual memory size:${osMXBean.committedVirtualMemorySize/1024/1024}MB"
// 空き物理メモリーの容量
println "free physical memory size:${osMXBean.freePhysicalMemorySize/1024/1024}MB"
// 物理メモリーの合計容量
println "total physical memory size:${osMXBean.totalPhysicalMemorySize/1024/1024}MB"
// 空きスワップ空間の容量
println "free swap space size:${osMXBean.freeSwapSpaceSize/1024/1024}MB"
// スワップ空間の合計容量
println "total swap space size:${osMXBean.totalSwapSpaceSize/1024/1024}MB"

動作環境
Groovy Version: 2.1.6 JVM: 1.7.0_25