RadarURL
Skip to content
조회 수 539 추천 수 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

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
164 CentOS Linux 에서 설치시 uuid/uuid.h: No such file or directory JAESOO 2016.10.24 124
163 한번에 끝내는 CentOS 7.x (7.0 ~ 7.2) 웹서버세팅 (센토스 서버세팅) JAESOO 2016.10.24 243
162 리눅스(Linux) 디렉토리 구조 JAESOO 2016.10.19 366
161 ssh서버가 비밀번호를 거부했습니다. 다시 시도하십시오. JAESOO 2016.08.26 500
160 [리눅스] IP 설정 변경 하기 JAESOO 2016.08.26 745
159 리눅스 설치후 초기설정해야 할 것들 [2] JAESOO 2016.07.13 218
158 리눅스 설치후 초기설정해야 할 것들 [1] JAESOO 2016.07.13 239
157 쉘 프로그래밍을 이용한 시스템 관리 기법 JAESOO 2016.05.11 230
» AIX 자주 쓰이는 관리 명령 모음 JAESOO 2016.05.11 539
155 AIX 시스템상의 core, SMT(Simultaneous Multi Threading) 수 확인하기 JAESOO 2016.05.11 325
154 리눅스 호스트명 변경 JAESOO 2016.05.11 168
153 AIX 서버 기초 JAESOO 2016.05.11 550
152 AIX Admin Study 교육 자료 JAESOO 2016.05.11 573
151 성능 엔지니어링 대한 접근 방법 (Performance tuning) JAESOO 2016.05.04 180
150 [AIX] 파일시스템 관리 (du, df) JAESOO 2016.05.03 332
149 IBM AIX Admin (사용자 DISK 관리) JAESOO 2016.05.03 163
148 [UNIX] 유닉스 기본명령어 JAESOO 2016.05.03 619
147 [AIX] 파일시스템 용량 늘리기 JAESOO 2016.05.03 295
146 유닉스 상에서 ls 출력물을 MB 단위로 출력해주는 옵션 JAESOO 2016.05.03 117
145 ls 명령시 날짜 전체가 보이도록 하기 JAESOO 2016.05.02 83
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10

PageViews   Today : 387   Yesterday : 1,457   Total : 19,966,837  /  Counter Status   Today : 139   Yesterday : 511   Total : 1,472,170
Site Info   Member : 238  /  Total documents : 1,223   New documents : 0  /  Total comments : 24

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소