RadarURL

유닉스/리눅스
2016.05.12 05:44

AIX 자주 쓰이는 관리 명령 모음

조회 수 4748 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄

cut 이랑 uniq 사용법

예) 현재 접속된 ip만 확인(포트번호 제외)하여 중복된 것을 제거한 갯수

# netstat-an | grep ESTABLISHED | awk '{print ($2)}' |cut -f "1 2 3 4" -d .| sort | uniq -c

 

 

- date 관련

1. date 0없애기

# date '+%h %-d'
Aug 04
# date '+%h %0d'
Aug 4

 

2. date 전달 구하기

# TZ=KST+700 date +'%m'

 

3. data 전일 구하기

# TZ=KST+15 date +'%d'

 

 

- du 관련

1. 현재 디렉토리 내의 모든 파일의 용량을 보여줌

# du -sk * (du -sm * 및 du -sg * 가능)

 

2. 같은 파일시스템 내의 디렉토리 사이즈만 보여줌

# du -x

 

 

 

- awk 사용예제

# df -m | awk '{print$7}'

# df -m | awk '{print$1,$7}'

# lsvg -l rootvg | awk '{print"lslv -l "$1}' | sh

# df | awk '{print"lsfs "$7}'|sh

# lsdev -Cc adapter | grep ent | awk '{print"lsattr -El "$1}' | sh

# ps -ef | grep nmon |awk '{print"kill -9 "$2}' |sh 

# ls -l /etc/*.conf| awk '{print "grep pmtu " $9}' | sh

 

(디렉토리의 사용량 보기)
# ls -l|grep ^d | awk '{print"du -sk "$9}' | sh

 

(파일시스템 90% 이상 찾기)
# df -Pk|awk 'int($2) != 0'|grep -v Mounted|grep -v 가능|awk 'int($3*100/$2) > 89 {print $5, $6}'


(메모리 사용량 보기)
# vmstat 1 3 |tail -1 |awk '{used=$3*4096/1024/1024}{free=$4*4096/1024/1024}END{printf " used memory : %.0f MB\n free memory : %.0f MB\n",used,free}'


(CPU사용량보기)
# sar 1 2|tail -1|awk '{use=int($2+$3)}END{printf "%.0f\n",use}'


(HP에서 disk용량 보기)
# ioscan -fnC disk|grep rdsk|awk '{print "diskinfo "$2}'|sh|grep size|grep -v '0 Kbytes'|awk '{print int($2/1024/1024)}'

 

 

 

- 일일점검 shell(AIX 기준)

 

export LANG=C
DATE=`date '+%y%m%d'`
MONTH=`date '+%y%m'`
TIME=`date '+%H%M%S'`
HOST=`hostname`

SCRIPT_HOME=/CHECK
TEMP_HOME=$SCRIPT_HOME/TEMP
LOG_HOME=$SCRIPT_HOME/LOG
OUTPUT=$LOG_HOME/systemcheck_$HOST'_'$DATE.out
NET_INFO=$SCRIPT_HOME/TEMP/ifconfig.info
NET_TEMP=$SCRIPT_HOME/TEMP/ifconfig.count

 

####### MEMORY CHECK ########
MEMINUSE=`svmon -G  | grep "in use" | awk '{print ($3)}'`
MEMTOTAL=`svmon -G  | grep "memory" | awk '{print ($3/$2)*100}'`
MEMCOMP=`svmon -G  | grep "memory" | awk '{print ('$MEMINUSE'/$2*100)}'`
MEMNONCOMP=`echo "scale=3; $MEMTOTAL - $MEMCOMP"|bc`

 

####### NETWORK CHECK ########
> $NET_INFO < /dev/null
> $NET_TEMP < /dev/null

ifconfig -a | grep en | grep -v tcp | awk '{print $1}' | cut -c 1-3 > $NET_INFO
for NET_EN in $(<$NET_INFO)
  do
       netstat -v $NET_EN | grep Link | grep -iv Up | wc -l >> $NET_TEMP
  done

 

echo "CPU = `sar 1 2|tail -1|awk '{use=int($2+$3)}END{printf "%.0f\n",use}'`" > $OUTPUT
echo "MEM/COMP = $MEMCOMP" >> $OUTPUT
echo "MEM/NONCOMP = $MEMNONCOMP" >> $OUTPUT
echo "MEM/SWAP = `lsps -a | grep hd6 | awk '{ print $5 }'`" >> $OUTPUT
echo "DISK = `df -Pk|awk 'int($2) != 0'|awk 'int($3*100/$2) > 95 {print $5, $6}' | wc -l`" >> $OUTPUT
echo "NETWORK = `cat $NET_TEMP | grep -v 0 | wc -l`" >> $OUTPUT

CHECK=`lssrc -a | grep topsvcs | grep active | wc -l`
if [ $CHECK = 1 ] ; then
        echo "CLUSTER/DEMON = 0" >> $OUTPUT
        echo "CLUSTER/LOG = `cat /tmp/hacmp.out | wc -l`" >> $OUTPUT
else
        echo "CLUSTER/DEMON = 1" >> $OUTPUT
fi

echo "ERRORLOG = `errpt | grep -v ID | grep -v SOFTWARE | wc -l`" >> $OUTPUT

 

 

 

 

- 벤더별 메모리 사용량 체크

[IBM]

export LANG=C

SCRIPT_HOME=/수정하세요


####### MEMORY CHECK ########
MEMINUSE=`svmon -G  | grep "in use" | awk '{print ($3)}'`
MEMTOTAL=`svmon -G  | grep "memory" | awk '{print ($3/$2)*100}'`
MEMCOMP=`svmon -G  | grep "memory" | awk '{print ('$MEMINUSE'/$2*100)}'`
MEMNONCOMP=`echo "scale=3; $MEMTOTAL - $MEMCOMP"|bc`

echo "CPU = `sar 1 2|tail -1|awk '{use=int($2+$3)}END{printf "%.0f\n",use}'`"
echo "MEM/COMP = $MEMCOMP"
echo "MEM/NONCOMP = $MEMNONCOMP"
echo "SWAP = `lsps -a | grep hd6 | awk '{ print $5 }'`"


[HP]

export LANG=C

SCRIPT_HOME=/수정하세요

####### MEMORY CHECK ########
MEMFREE=`vmstat 1 2 | tail -1 | awk '{ printf "%-d\n", $5*4}'`
MEMTOTAL=`echo "phys_mem_pages/D" | adb /stand/vmunix /dev/kmem|tail -1|awk '{ printf "%-d\n", $2*4}'`
MEMUSE=`echo "scale=3; 100-($MEMFREE*100/$MEMTOTAL)"|bc`

echo "CPU = `sar 1 2|tail -1|awk '{use=int($2+$3)}END{printf "%.0f\n",use}'`"
echo "MEM = $MEMUSE"
echo "SWAP = `/usr/sbin/swapinfo -tm|tail -1|awk '{use=int($3*100/$2)}END{printf "%.0f\n",use}'`"

 

[SUN]

export LANG=C
SCRIPT_HOME=/수정하세요

####### MEMORY CHECK ########
MEMTOTAL=`prtconf|grep Mem|awk '{print $3}'`
MEMFREE=`sar -r 1 2|tail -1|awk '{use=int($2*8/1024)}END{printf "%.0f\n",use}'`
MEMUSE=`echo "scale=3; 100-($MEMFREE*100/$MEMTOTAL)"|bc`

echo "CPU = `sar 1 2|tail -1|awk '{use=int($2+$3)}END{printf "%s\n",use}'`"
echo "MEM = $MEMUSE"
echo "SWAP = `swap -l|tail -1|awk '{use=int(100-($5*100/$4))}END{printf "%s\n",use}'`"

 

 

 

- system 정보 저장하는 shell

 

#!/bin/sh

IdChk=`id | grep root | wc -l`

if [ $IdChk -eq 0 ]; then
  echo
  echo "You must login root... Try again..."
  echo
  exit
fi

OutFile=`hostname`"_"`date +%y%m%d`.out"


echo "-------------------------------------------"| tee -a $OutFile
echo "             시스템 정기 점검              "| tee -a $OutFile
echo "-------------------------------------------"| tee -a $OutFile

echo '1. 점검 일자 : ' `date` | tee -a $OutFile
echo '2. 장비 이름 : ' `hostname` | tee -a $OutFile
echo '3. 모 델 명 : ' `uname -M` | tee -a $OutFile
echo '4. 시리얼번호 : ' `uname -u` | tee -a $OutFile
echo '5. OS 버젼 : ' `oslevel -r` | tee -a $OutFile
echo '6. 커널 비트 : ' `bootinfo -K` | tee -a $OutFile

echo | tee -a $OutFile

echo | tee -a $OutFile
echo "  =====================" | tee -a $OutFile
echo "  CPU / MEMORY 정보확인" | tee -a $OutFile
echo "  =====================" | tee -a $OutFile
echo | tee -a $OutFile
echo "# lsdev -Cc processor" | tee -a $OutFile
lsdev -Cc processor  | tee -a $OutFile
echo | tee -a $OutFile
echo "# bootinfo -r"  | tee -a $OutFile
bootinfo -r  | tee -a $OutFile
echo | tee -a $OutFile
echo "# lscfg -vp |grep Size"  | tee -a $OutFile
lscfg -vp |grep Size | tee -a $OutFile
echo | tee -a $OutFile
echo "# lsps -a"  | tee -a $OutFile
lsps -a  | tee -a $OutFile
echo | tee -a $OutFile
echo | tee -a $OutFile
echo "  ==============" | tee -a $OutFile
echo "  DISKS 정보확인" | tee -a $OutFile
echo "  ==============" | tee -a $OutFile
echo | tee -a $OutFile
lscfg -vp | grep disk  | tee -a $OutFile
echo | tee -a $OutFile
echo "  =================" | tee -a $OutFile
echo "  ADAPTERS 정보확인" | tee -a $OutFile
echo "  =================" | tee -a $OutFile
echo | tee -a $OutFile
echo "# lsdev -Cc adapter"  | tee -a $OutFile
lsdev -Cc adapter  | tee -a $OutFile
echo | tee -a $OutFile
echo "  =================" | tee -a $OutFile
echo "  SLOT 정보확인" | tee -a $OutFile
echo "  =================" | tee -a $OutFile
echo | tee -a $OutFile
echo "# lsslot -c pci"  | tee -a $OutFile
lsslot -c pci | tee -a $OutFile
echo | tee -a $OutFile
echo "  ===================" | tee -a $OutFile
echo "  CDROM 장치 정보확인" | tee -a $OutFile
echo "  ===================" | tee -a $OutFile
echo | tee -a $OutFile
echo "# lsdev -Cc cdrom"  | tee -a $OutFile
lsdev -Cc cdrom  | tee -a $OutFile
echo "  ===================" | tee -a $OutFile
echo "  TAPE 장치 정보확인" | tee -a $OutFile
echo "  ===================" | tee -a $OutFile
echo | tee -a $OutFile
echo "# lsdev -Cc tape"  | tee -a $OutFile
lsdev -Cc tape  | tee -a $OutFile
echo | tee -a $OutFile
echo "  ===================" | tee -a $OutFile
echo "  File Systems 사용량" | tee -a $OutFile
echo "  ===================" | tee -a $OutFile
echo | tee -a $OutFile
echo "# df -Pk"  | tee -a $OutFile
df -Pk  | tee -a $OutFile
echo | tee -a $OutFile
echo "  ============" | tee -a $OutFile
echo "  LVM 정보확인" | tee -a $OutFile
echo "  ============" | tee -a $OutFile
echo | tee -a $OutFile
echo "# lsvg "  | tee -a $OutFile
lsvg| tee -a $OutFile
echo | tee -a $OutFile
echo "# lsvg -o"  | tee -a $OutFile
lsvg -o| tee -a $OutFile
echo | tee -a $OutFile
echo "# lspv "  | tee -a $OutFile
lspv| tee -a $OutFile
echo | tee -a $OutFile
echo "# lsvg |awk '{print "lsvg -l "$1}'|sh"  | tee -a $OutFile
lsvg |awk '{print "lsvg -l "$1}'|sh | tee -a $OutFile
echo | tee -a $OutFile
echo "  ================" | tee -a $OutFile
echo "  NETWORK 정보확인" | tee -a $OutFile
echo "  ================" | tee -a $OutFile
echo | tee -a $OutFile
echo "# ifconfig -a "  | tee -a $OutFile
ifconfig -a| tee -a $OutFile
echo | tee -a $OutFile
echo "# netstat -rn "  | tee -a $OutFile
netstat -rn| tee -a $OutFile
echo | tee -a $OutFile
echo "# EtherChannel "  | tee -a $OutFile
for ENT in `lsdev -Cc adapter|grep EtherChannel|awk '{print $1}'`
  do
  echo ""
  echo "== $ENT =="
        lsattr -El $ENT | tee -a $OutFile
  done
echo "# Duplex"  | tee -a $OutFile
for ENT in `lsdev -Cc adapter|grep ent|grep -v EtherChannel|awk '{print $1}'`
  do
  echo ""
  echo "== $ENT =="
        lsattr -El $ENT | grep speed | tee -a $OutFile
  done

echo "  ====================" | tee -a $OutFile
echo "  ENVIRONMENT 정보확인" | tee -a $OutFile
echo "  ====================" | tee -a $OutFile
echo | tee -a $OutFile
echo "# crontab -l "  | tee -a $OutFile
crontab -l| tee -a $OutFile
echo | tee -a $OutFile
echo "# cat /etc/passwd "  | tee -a $OutFile
cat /etc/passwd| tee -a $OutFile
echo | tee -a $OutFile
echo "# cat /etc/group "  | tee -a $OutFile
cat /etc/group| tee -a $OutFile
echo | tee -a $OutFile
echo "# cat /.profile "  | tee -a $OutFile
cat /.profile| tee -a $OutFile
echo | tee -a $OutFile
echo "# cat /etc/filesystems "  | tee -a $OutFile
cat /etc/filesystems| tee -a $OutFile
echo | tee -a $OutFile
echo "# cat /etc/environment "  | tee -a $OutFile
cat /etc/environment| tee -a $OutFile
echo | tee -a $OutFile
echo "# ulimit -a "  | tee -a $OutFile
ulimit -a| tee -a $OutFile
echo | tee -a $OutFile
echo "# lsattr -El sys0 "  | tee -a $OutFile
lsattr -El sys0| tee -a $OutFile
echo | tee -a $OutFile
echo "# lsattr -El aio0 "  | tee -a $OutFile
lsattr -El aio0 | tee -a $OutFile
echo | tee -a $OutFile
echo "# vmo -a|egrep 'perm|repage' "  | tee -a $OutFile
vmo -a|egrep "perm|repage" | tee -a $OutFile
echo | tee -a $OutFile
echo "  ==============" | tee -a $OutFile
echo "  Error Log 확인" | tee -a $OutFile
echo "  ==============" | tee -a $OutFile
echo | tee -a $OutFile
echo "# errpt"  | tee -a $OutFile
errpt  | tee -a $OutFile
echo | tee -a $OutFile
echo "  ========" | tee -a $OutFile
echo "  LPP 확인" | tee -a $OutFile
echo "  ========" | tee -a $OutFile
echo | tee -a $OutFile
echo "# lppchk -v"  | tee -a $OutFile
lppchk -v  | tee -a $OutFile
echo | tee -a $OutFile
echo "# lslpp -l"  | tee -a $OutFile
lslpp -l  | tee -a $OutFile
echo | tee -a $OutFile
echo "  ========" | tee -a $OutFile
echo "  ETC 확인" | tee -a $OutFile
echo "  ========" | tee -a $OutFile
echo | tee -a $OutFile
echo "# lsconf"  | tee -a $OutFile
lsconf | tee -a $OutFile
echo | tee -a $OutFile
echo "# lscfg -vp "  | tee -a $OutFile
lscfg -vp | tee -a $OutFile
echo | tee -a $OutFile
echo "# ps -ef "  | tee -a $OutFile
ps -ef | tee -a $OutFile
echo | tee -a $OutFile
echo "# bootlist -m normal -o "  | tee -a $OutFile
bootlist -m normal -o | tee -a $OutFile
echo | tee -a $OutFile

echo 'Ending Date : ' `date` | tee -a $OutFile

 

 

 

 

- 사용자 자동 생성 shell

 * 인자값 입력형(예: user.sh 아이디 비번)

 

OID=`cat /etc/passwd|tail -1|cut -f 3 -d :`
NID=`echo "scale=0; $OID + 1"|bc`
UID=$1
x() {                                         
LIST=                                         
SET_A=                                        
for i in "$@"                                 
do                                            
        if [ "$i" = "admin=true" ]            
        then                                  
                SET_A="-a"                    
                continue                      
        fi                                    
        LIST="$LIST \"$i\""                   
done                                          
eval mkuser $SET_A $LIST                      
}                                             
x id='$NID' home='/u/$UID' rlogin='false' $UID

PW=$2
echo "$UID:$PW"|chpasswd
pwdadm -c $UID
echo "$UID 생성 완료"

 

 

 * 대화형(예:user.sh)

 

OID=`cat /etc/passwd|tail -1|cut -f 3 -d :`
NID=`echo "scale=0; $OID + 1"|bc`
read UID?'사번을 입력하세요 => '

x() {                                         
LIST=                                         
SET_A=                                        
for i in "$@"                                 
do                                            
        if [ "$i" = "admin=true" ]            
        then                                  
                SET_A="-a"                    
                continue                      
        fi                                    
        LIST="$LIST \"$i\""                   
done                                          
eval mkuser $SET_A $LIST                      
}                                             
x id='$NID' home='/u/$UID' rlogin='false' $UID

read PW?'비밀번호를 입력하세요 => '

echo "$UID:$PW"|chpasswd

pwdadm -c $UID

echo "$UID 생성 완료"

 

 

- DD 사용(원격)

 

블럭 디바이스
# dd if=/dev/hd3| rsh localhost "dd of=/dev/lv00 bs=1920000"


캐릭터 디바이스
# dd if=/dev/rlv01 ibs=64k obs=512 | rsh hostname dd ibs=512 obs=64k of=/dev/rlv01

 

 

 

- tar 사용

1. Compress(압축)명령
 . tar(create tape archives, and add or extract files)
:파일들을 묶어주는 명령들이다.(압축하지는 않습니다.)

ex) tar -cvf [만들 filename.tar] *    ==> 묶을 때 보통 tar이라는 확장자를 씁니 다.
그러면 filename.tar이라는 파일이 생성 됩니다.

tar -xvf [풀 filename]    ==> 묶였던 파일들이 다시 풀립니다.

compress, uncompress
: 파일을 압축하는 명령입니다. compress는 압축 uncompress는 풀어주는 명령입 니다.

ex) compress [filename]    ==> filename.Z 가 생성됩니다.

# compress temp.tar     ==> temp.tar.Z 가 생성됩니다.

-v 는 압축률을 보여줍니다.

# compress -v temp.tar

 compress는 tar처럼 새로운 파일을 만드는 것이 아니고 원본파일을 압축하기만 합니다.

# uncompress [압축한 filename]     ==> 원래의 파일이 됩니다.

. gzip, gunzip
: 역시 파일을 압축하고 푸는 명령입니다. 보통 compress보다 성능이 좋습니다. 역시 -v option이 있습니다.

ex) gzip [fileanme]     ==> filename.gz 가 생성

#  gzip -v temp.tar     ==> temp.tar.gz 가 생성됨

gunzip [filename]

#  gunzip temp.tar.gz    ==> 원본인 temp.tar가 됨

 

 

2. tar백업(파이프 이용)

# tar -cvf - .|(cd /logdata_recover/ && tar -xvf -)

 

# tar -cvf- <path> | rsh <t_mach> "cd <path> && tar -xvf-"

 

 

 

 

 

- AIO관련 (aio활성화 후 재부팅 해야 적용되는 줄 알았는데...)

# mkdev -l aio0

이렇게 하거나

# smitty aio  -> Configure Defined Asynchronous I/O

 

- AIX(ksh)에서 파일명 자동완성(리눅스에서 일부만 입력후 tab키 누르는 것과 같은 효과)

[ESC] + [=] 실행가능 list up

[ESC] + [\] 파일명 자동완성

 

 

- AIX에서 최대 생성가능 스레드 개수(확인 방법)

기본값은 process당 32767 개

# vi /usr/include/pthread.h 파일을 열어서  PTHREAD_THREADS_MAX  값을 확인 함

 

 

- process top10구현

# ps gu |head -n 1; ps gu | egrep -v "CPU|kproc"|sort +2b -3 -n -r | head -n 10

 

- svmon 상위 15개 용량

# svmon -Pt15|perl -e 'while(<>){print if($.==2||$&&&!$s++);$.=0 if(/^-+$/)}'

 

 

- 터미널(secure CRT등) 글자 깨질때(예: 바이너리파일을 열때  cat /usr/bin/ls)

# echo <ctrl+V><Ctrl+O><Enter>

 

 

- 미들웨어 버전 확인

# su - jeus -c 'jeusadmin -fullversion'

# su - webtob -c 'wsadmin -v'

# su - anylink -c 'tmadmin -v'

# su - tmax -c 'tmadmin -v'

 

출처 : http://web-dev.tistory.com/117

?

공부 게시판

공부에 도움되는 글을 올려주세요.

  1. No Image notice by 처누 2003/08/18 by 처누
    Views 2005240 

    [공지] 공부 게시판 입니다.

  2. No Image new
    by 정열적인코요테90
    2026/10/05 by 정열적인코요테90
    in 공지
    Views 2 

    대전, 인천, 세종 하수구 막힘 문제 해결 방법

  3. No Image new
    by 타오르는드래곤61
    2026/10/05 by 타오르는드래곤61
    in 취미
    Views 1 

    <문경맥주> 구입 할 수 있는 곳은 새 창 열림

  4. 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리

  5. 용인두피문신 고민? 만족 후기 보려면

  6. 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통

  7. 웨딩누브라, 완벽한 드레스 핏을 위한 선택

  8. 성공적인 중고화물차 선택, 현명한 가이드

  9. 인천맛집 순위

  10. 완벽한 웨딩드레스 핏의 비밀, 웨딩누브라

  11. 파주누수업체, 신속 해결 전문가의 비결

  12. 올해의 핫플 선정 간석동 마블! 010&&8923&&0291

  13. 손목터널증후군 치료, 현명한 선택 기준은?

  14. 손목터널증후군, 두팔로정형외과에서 해답을 찾다

  15. 골든타워 010 2817 0845 골타문의 편하게 알아보는 셔츠룸

  16. 특별한 기념품제작, 판촉물365

  17. 대전누수 문제, 청년연합누수가 답이다

  18. 양산싱크대막힘, 뚫자하수구에서 한 번에 해결

  19. 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기

  20. 카­톡 gusim8003 급전/내구제 (24시문의) 선불폰 소액결제 일수 급전대출

  21. 해외선물 메타5 거래소와 GFS컴퍼니의 장점과 고려사항

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 131 Next
/ 131


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너