====== 시스템정보 확인 ====== ===== 개요 ===== 시스템 고유의 속성정보인 프로세서 ID, 호스트, 운영체제(OS), 메모리(Memory), 디스크(HDD) 정보를 확인한다. 본 기능은 전자정부 표준프레임워크 공통컴포넌트 요소기술 내에 구성되어 있다. ===== 설명 ===== ① 시스템의 프로세서(Processor) ID(CPU ID)를 가지고 오는 기능 ② 시스템의 운영체제의 정보를 가지고 오는 기능 ③ 시스템의 메모리 용량 정보를 가지고 오는 기능 ④ 시스템의 디스크 정보를 가지고 오는 기능 == 관련소스 == ^유형^대상소스명^설명^비고^ |Service|egovframework.com.utl.service.EgovSysInfo.java|시스템정보 확인 요소기술 클래스| | |JSP|WEB_INF/jsp/egovframework/cmm/utl/EgovSysInfo.jsp|테스트 페이지| | **※ 해당 파일은 보안 상의 이유로 배포되고 있지는 않습니다. 다음 이메일로 요청해 주시면 이메일로 관련 파일을 전달 드리겠습니다.**\\ **egovframesupport@gmail.com** == 메소드 == ^결과값^메소드명^설명^내용^ |String|getProcessorID()|프로세서ID조회|시스템의 프로세서ID 리턴| |String|getHostName()|호스트명조회|시스템의 호스트명을 리턴| |String|getOSName()|OS이름조회|시스템의 OS 이름을 리턴| |String|getOSVersion()|OS버전조회|시스템의 OS 버전을 리턴| |String|getOSPrductor()|OS제조사조회|시스템의 OS 제조사를 리턴| |float|getMoryFullCpcty()|메모리전체용량조회|시스템의 메모리 전체용량 리턴| |float|getMoryUsedCpcty()|메모리사용용량조회|시스템의 메모리 사용용량 리턴| |float|getMoryFreeCpcty()|메모리유효용량조회|시스템의 메모리 유효용량 리턴| |ArrayList|getDiskName()|디스크목록조회|시스템의 디스크목록 리턴| |float|getDiskFullCpcty()|디스크전체용량조회|시스템의 디스크 전체용량 리턴| |float|getDiskUsedCpcty()|디스크사용용량조회|시스템의 디스크 사용용량 리턴| |float|getDiskFreeCpcty()|디스크유효용량조회|시스템의 디스크 유효용량 리턴| == Input == == Output == * String 타입 호스트명 (예, WAS) * String 타입 OS이름 (예, AIX) * String 타입 OS버전 (예, 5.3.0.0) * String 타입 OS제조사 (예, IBM,8204-E8A) * String 타입 프로세서ID (예, 0B0AA2) * String 타입 디스크명 (예, hdisk0|hdisk1|hdisk2|hdisk3) * String 타입 디스크전체용량(MB) (예, 851456.0) * String 타입 디스크사용용량(MB) (예, 700160.0) * String 타입 디스크유효용량(MB) (예, 151296.0) * String 타입 메모리전체용량(MB) (예, 18601.5) * String 타입 메모리사용용량(MB) (예, 15744.2) * String 타입 메모리유효용량(MB) (예, 2857.3) ===== 환경설정 ===== * server.properties #1. 프로세서ID, OS정보 조회 쉘 스크립트 SHELL.WINDOWS.getOSInfo = C:/Documents and Settings/Administrator/egovProps/prg/getOSInfo.bat SHELL.UNIX.getOSInfo = /product/jeus/egovProps/prg/getOSInfo.sh #2. 메모리정보 조회 쉘 스크립트 SHELL.WINDOWS.getMoryInfo = C:/Documents and Settings/Administrator/egovProps/prg/getMoryInfo.bat SHELL.UNIX.getMoryInfo = /product/jeus/egovProps/prg/getMoryInfo.sh #3. 디스크정보 조회 쉘 스크립트 SHELL.WINDOWS.getDiskInfo = C:/Documents and Settings/Administrator/egovProps/prg/getDiskInfo.bat SHELL.UNIX.getDiskInfo = /product/jeus/egovProps/prg/getDiskInfo.sh * getOSInfo.bat (윈도우용 OS정보 조회 스크립트) systeminfo * getOSInfo.sh (유닉스용 OS정보 조회 스크립트) #echo $1 -SEARCH NAME (NAME, VERSION, PRDUCTOR) #NAME if [ $1 == "NAME" ] then uname -s fi #VERSION if [ $1 == "VERSION" ] then oslevel fi #PRDUCTOR if [ $1 == "PRDUCTOR" ] then prtconf | grep "시스템 모델:" | awk '{print $3}' fi #PROCESSOR if [ $1 == "PROCESSOR" ] then uname -a | awk '{print substr($5,3,6)}' fi * getMoryInfo.bat (윈도우용 메모리정보 조회 스크립트) systeminfo * getMoryInfo.sh (유닉스용 메모리정보 조회 스크립트) #echo $1 -SEARCH NAME (FULL, USING, VALID) #FULL if [ $1 == "FULL" ] then vmstat | grep "mem=" | awk '{print $4}' fi #USING if [ $1 == "USED" ] then vmstat | tail -1 | awk '{print $3*4096/1024/1024}' fi #VALID if [ $1 == "FREE" ] then vmstat | tail -1 | awk '{print $4*4096/1024/1024}' fi * getDiskInfo.bat (윈도우용 디스크정보 조회 스크립트) 윈도우 환경에서는 디스크정보를 지원하지 않습니다. * getDiskInfo.sh (유닉스용 디스크정보 조회 스크립트) #echo $1 -SEARCH NAME (NAME, FULL, USING, VALID) #NAME if [ $1 == "NAME" ] then lspv | awk '{print $1}' fi #FULL if [ $1 == "FULL" ] then lspv $2 | grep "TOTAL PPs" | awk -F"(" '{print $2}' | awk '{print $1}' fi #USING if [ $1 == "USED" ] then lspv $2 | grep "USED PPs" | awk -F"(" '{print $2}' | awk '{print $1}' fi #VALID if [ $1 == "FREE" ] then lspv $2 | grep "FREE PPs" | awk -F"(" '{print $2}' | awk '{print $1}' fi ===== 사용방법 ===== import egovframework.com.utl.sim.service.EgovSysInfo; // 1. 호스트명, OS명, OS버전, OS제조사, 프로세서 hostname = EgovSysInfo.getHostName(); osname = EgovSysInfo.getOSName(); osversion = EgovSysInfo.getOSVersion(); osprductor = EgovSysInfo.getOSPrductor(); processor = EgovSysInfo.getProcessorID(); // 2. 메모리 용량 moryUsed = EgovSysInfo.getMoryUsedCpcty(); moryFree = EgovSysInfo.getMoryFreeCpcty(); moryFull = EgovSysInfo.getMoryUsedCpcty(); // 3. 디스크 용량 ArrayList list = EgovSysInfo.getDiskName(); for(int i = 0; i < list.size(); i++) { diskName += (String)list.get(i) + " | "; diskFull += EgovSysInfo.getDiskFullCpcty((String)list.get(i)); diskUsed += EgovSysInfo.getDiskUsedCpcty((String)list.get(i)); diskFree += EgovSysInfo.getDiskFreeCpcty((String)list.get(i)); } ===== 참고자료 ===== N/A