[AIX] System Information collection Script
prtconf, oslevel, lsps, lsvg, df 결과를 모아 AIX 필수 시스템 정보를 파일로 저장하는 ksh 스크립트와 실행 결과를 소개합니다.
요약
- root로 실행하면 호스트명, CPU 종류, 커널 비트, OS 버전, 메모리, IP, Paging Space, rootvg LV, 파일 시스템 용량을 한 번에 수집합니다.
- 결과는 화면에 출력되는 동시에
tee -a로<호스트명>_<날짜-시간>.txt파일에 저장됩니다. - CPU, 메모리, IP 같은 정보는
prtconf출력을 grep과 awk로 잘라 추출합니다.
테스트 환경 AIX 6100-09-03-1415 (PowerPC_POWER7)
[AIX] System Information collection Script
회사 U2C 솔루션 개발을 하는 중, AIX 에서 필수 시스템 정보를 수집하는 Script 가 필요로 해서 간단하게 제작한 Script 입니다.
Script 내용
#! /bin/ksh
# Make by. chhan
DATEC=$(date +%Y%m%d-%H%M)
IdChk=`id | grep root | wc -l`
OutFile="`hostname`_"$DATEC".txt"
#Checking ROOT
if [ $IdChk -eq 0 ]; then
echo
echo "You must login root... Try again..."
echo
exit
fi
echo " * * * * * Check AIX System Information * * * * * "
echo " "
echo " This Check Output File "
echo " View ./"$OutFile
echo " Date : " $(date)
echo " "
echo " # Gethering Information . . . . . "
prtconf > /tmp/prtconf-$DATEC.txt
sleep 1
cputype=$(cat /tmp/prtconf-$DATEC.txt | grep "Processor Type" | awk -F ":" '{print $2}')
kerneltype=$(cat /tmp/prtconf-$DATEC.txt | grep "Kernel Type" | awk -F ":" '{print $2}')
sizemem=$(cat /tmp/prtconf-$DATEC.txt | grep "^Memory Size" | awk -F ":" '{print $2}')
cpucore=$(cat /tmp/prtconf-$DATEC.txt | grep "Number Of Processors" | awk -F ":" '{print $2}')
ipaddr=$(cat /tmp/prtconf-$DATEC.txt | grep "IP Address:" | awk -F ":" '{print $2}')
subnet=$(cat /tmp/prtconf-$DATEC.txt | grep "Sub Netmask:" | awk -F ":" '{print $2}')
gateway=$(cat /tmp/prtconf-$DATEC.txt | grep "Gateway:" | awk -F ":" '{print $2}')
totalps=$(cat /tmp/prtconf-$DATEC.txt | grep "Total Paging Space:" | awk -F ":" '{print $2}')
echo " # Print & Save Information"
echo "-------------------------------------------"| tee -a $OutFile
echo " System Infomation "| tee -a $OutFile
echo "-------------------------------------------"| tee -a $OutFile
echo " Host Name :" $(hostname)| tee -a $OutFile
echo " Vender :" $(uname -M | awk -F "," '{print $1}')| tee -a $OutFile
echo " CPU Type :" $cputype| tee -a $OutFile
#echo " Kernel Type :" $kerneltype| tee -a $OutFile
echo " Kernel Bit :" $(getconf KERNEL_BITMODE)"-bit"| tee -a $OutFile
echo " OS Version :" $(oslevel -s)| tee -a $OutFile
echo " Number Of Processors :" $cpucore| tee -a $OutFile
echo " Memory :" $sizemem | tee -a $OutFile
echo " " | tee -a $OutFile
echo " IP Address :" $ipaddr" /"$subnet| tee -a $OutFile
echo " Gateway IP: " $gateway| tee -a $OutFile
echo " " | tee -a $OutFile
echo " Total Page Space Size :" $totalps| tee -a $OutFile
echo " Detail Page Space :"| tee -a $OutFile
lsps -a| tee -a $OutFile
echo " " | tee -a $OutFile
echo " LVM Information :"| tee -a $OutFile
lsvg -l rootvg| tee -a $OutFile
echo " " | tee -a $OutFile
echo " Total df Size :" | tee -a $OutFile
df -gt| tee -a $OutFile
echo " "| tee -a $OutFile
echo " rootvg Filesystem Size : "| tee -a $OutFile
df -gt | grep "Mounted"| tee -a $OutFile
lsvg -l rootvg | grep "/" | grep -v "N/A" | awk '{print "df -gt "$7}' | sh | grep -v Mounted| tee -a $OutFile
SCRIPT Output
* * * * * Check AIX System Information * * * * *
This Check Output File
View ./aix_test_20181104-2237.txt
Date : Wed Jan 9 22:37:52 KST 2019
# Gethering Information . . . . .
# Print & Save Information
-------------------------------------------
System Infomation
-------------------------------------------
Host Name : aix_test
Vender : IBM
CPU Type : PowerPC_POWER7
Kernel Bit : 64-bit
OS Version : 6100-09-03-1415
Number Of Processors : 2
Memory : 31744 MB
IP Address : 192.168.00.000 / 255.255.255.0
Gateway IP: 192.168.00.00
Total Page Space Size : 16384MB
Detail Page Space :
Page Space Physical Volume Volume Group Size %Used Active Auto Type Chksum
hd6 hdisk0 rootvg 16384MB 0 yes yes lv 0
LVM Information :
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 1 1 closed/syncd N/A
hd6 paging 32 32 1 open/syncd N/A
hd8 jfs2log 1 1 1 open/syncd N/A
hd4 jfs2 8 8 1 open/syncd /
hd2 jfs2 20 20 1 open/syncd /usr
hd9var jfs2 2 2 1 open/syncd /var
hd3 jfs2 10 10 1 open/syncd /tmp
hd1 jfs2 2 2 1 open/syncd /home
hd10opt jfs2 2 2 1 open/syncd /opt
hd11admin jfs2 1 1 1 open/syncd /admin
lg_dumplv sysdump 4 4 1 open/syncd N/A
livedump jfs2 1 1 1 open/syncd /var/adm/ras/livedump
loglv00 jfslog 1 1 1 open/syncd N/A
lv00 jfs 1 1 1 open/syncd /var/adm/csd
app_lv jfs2 180 180 1 open/syncd /app
Total df Size :
Filesystem GB blocks Used Free %Used Mounted on
/dev/hd4 4.00 1.27 2.73 32% /
/dev/hd2 10.00 6.48 3.52 65% /usr
/dev/hd9var 1.00 0.40 0.60 41% /var
/dev/hd3 5.00 0.90 4.10 19% /tmp
/dev/hd1 1.00 0.14 0.86 15% /home
/dev/hd11admin 0.50 0.00 0.50 1% /admin
/proc - - - - /proc
/dev/hd10opt 1.00 0.61 0.39 61% /opt
/dev/livedump 0.50 0.00 0.50 1% /var/adm/ras/livedump
/dev/lv00 0.50 0.02 0.48 4% /var/adm/csd
/dev/app_lv 90.00 41.10 48.90 46% /app
rootvg Filesystem Size :
Filesystem GB blocks Used Free %Used Mounted on
/dev/hd4 4.00 1.27 2.73 32% /
/dev/hd2 10.00 6.48 3.52 65% /usr
/dev/hd9var 1.00 0.40 0.60 41% /var
/dev/hd3 5.00 0.90 4.10 19% /tmp
/dev/hd1 1.00 0.14 0.86 15% /home
/dev/hd10opt 1.00 0.61 0.39 61% /opt
/dev/hd11admin 0.50 0.00 0.50 1% /admin
/dev/livedump 0.50 0.00 0.50 1% /var/adm/ras/livedump
/dev/lv00 0.50 0.02 0.48 4% /var/adm/csd
/dev/app_lv 90.00 41.10 48.90 46% /app
해당 SCRIPT 의 일부가 사용된 솔루션
Playce RoRo : https://roro.play-ce.io/
자주 묻는 질문
이 AIX 시스템 정보 수집 스크립트는 어떤 정보를 수집하나요?
호스트명, 벤더, CPU 종류, 커널 비트, OS 버전, 프로세서 수, 메모리, IP/서브넷/게이트웨이, Paging Space, rootvg LV 정보, 파일 시스템 용량을 수집합니다.
스크립트 결과 파일은 어떤 이름으로 저장되나요?
실행한 디렉터리에 <호스트명>_<YYYYMMDD-HHMM>.txt 이름으로 저장됩니다. 예시 실행에서는 aix_test_20181104-2237.txt가 생성되었습니다.
root가 아닌 계정으로 실행하면 어떻게 되나요?
id 결과에 root가 없으면 “You must login root… Try again…” 메시지를 출력하고 종료합니다.