본문 바로가기

Programming Practice/Shell & Server Management

log file backup log file을 server 내에 보관할 때 생성된 지 일정시간이 지난 log file은 원본 상태로 가지고 잇을 필요가 없다. 왜냐하면, 장애 혹은 장애 징후가 있을 때만 열어보기 때문이다.따라서, 저장 공간의 효율적 사용을 위해서 평소에는 gzip으로 압축해서 보관한다. 방식은 크게 2가지이다. 1. 생성일시 기준 특정 범위(ex. 생성일자)의 log 파일들 → (개별로) gzip1) shell 코드#!/bin/sh for I in `find log파일위치 -type f -name "*log*"` do /bin/gzip -f $I done 2) 장단점 장점 1) 개별 파일 개별 작업을 통해 gzip으로 압축하기 때문에 CPU 부하가 적다.2) 생성일시가 변경되지 않는다. (나중에 gzip으로 압축된.. 더보기
조건문 1. 조건문1) if 로 시작해서 fi로 끝남2) java에서 else if 는 shell 에서 elif 로 설정3) 기본적인 조건과 그에 따른 명령은 아래와 같이 설정함if [ 조건1 ]; then명령1;elif [ 조건2 ]; then명령2;else명령3;fi ex) #!/bin/sh a=0; #조건의 첫번째 대괄호와 $a 사이는 하나의 space가 들어가야 함 if [ $a -eq 1 ]; then echo 'if'; elif [ $a -gt 1 ]; then echo 'elif'; else echo 'else'; fi #!/bin/sh a="c"; #문자열의 비교는 등호는 java 와 달리 = (등호 1개)이며, 같지 않음은 != 이다. if [ $a = "a" ]; then echo 'if'; .. 더보기
변수 기본 1. 변수 선언과 사용1) 변수 선언 : 변수=값;2) 사용 : $변수 혹은 ${변수}ex) #!/bin/sh a=1; echo $a; echo ${a}; 2. single quotes vs. double quotessingle quotes : 안에 있는 내용을 그대로 표시double quotes : 안에 있는 내용을 계산해서 표시ex) #!/bin/sh a=1; echo '$a'; echo "$a"; 3. 특정 명령어의 결과를 특정 변수에 담을 때변수=`명령어`* single quotes가 아님ex) CLOSE_CNT=`egrep "($ONE_MINUTE_AGO|$TWO_MINUTE_AGO|$THREE_MINUTE_AGO|$FOUR_MINUTE_AGO|$FIVE_MINUTE_AGO)" ioExcepti.. 더보기
find 한 결과를 배열에 담아서 사용하기 1) find 한 결과를 tmpfile 에 담기 find ~~ > tmpfile2) tmpfile을 읽어서 배열에 담기FIND_RESULT=()while IFS=read;do FIND_RESULT+=("$REPLY")done < tmpfile3) tmpfile 삭제 rm -f tmpfile4) 배열에 대해 처리 FIND_RESULT_LENGTH=${#FIND_RESULT[@]} for ((i=0; i 더보기
특정 로그 파일에서 체크 시점 이전 5분 동안 특정 문구 개수 조회 1. 로직 1) 체크할 시간 조회해서 변수에 설정 2) 조회할 로그 파일명 설정 3) 로그 파일에서 체크 시간 이전 5분 동안의 특정 문구 개수 세기 4) 특정 문구 개수가 특정 개수를 넘어서는 경우에 특정 문구 개수 표시 2. 예시 shell #!/bin/sh LOG_ROOT="/engn001/TCPProgram/log/" #(로그 기록 형식) 로그 파일에 로그를 기록할 때, yyyy-MM-dd HH:mm 가 붙는다. #체크할 시간 조회해서 변수에 설정 CURRENT_HOUR=$(perl -e 'use POSIX;print strftime "%H", localtime;') CURRENT_MIN=$(perl -e 'use POSIX;print strftime "%M", localtime;') ONE_MI.. 더보기
모니터링 tool 1. NMON1) NMON 이란? - Nigel's performance MONitor - A free tool to analyze AIX and Linux performance - nmon is a tool for viewing & collecting system data * AIX : Closed source / Built in as part of topas * Linux : Open Source / Download and install from / get the right one for your distributioncf. 종료 시 다음 record를 저장하고 종료되도록 설정 * AIX : kill -s SIGUSR2 Linux : kill -s USR2 ※ kill -s 시그널명 kill 할 때 .. 더보기
파일 관리 1. 파일 찾기1) 디렉토리명에 특정 문구를 포함한 디렉토리를 제외하고 파일 찾기find 특정위치 -type d -name 특정문구 -prune -o -name 찾을파일명 -printfind 특정위치 -type d | grep -v *특정문구*" | awk '{"find " $1 "-type f "}' | sh** 특정문구가 여러개인 경우find 특정위치 -type d | egrep -v '(특정문구1| 특정문구2 | 특정문구3)' | awk '{find " $1 "-type f"}' | sh * find 의 time 옵션종류 설명 atime access time - 파일에 접근했던 시각 ctime change time - 파일이 change (ownership - chown, access permisi.. 더보기