Alert 로그 AWK 스크립트
·
Linux
Alert 로그 내용을 Timestamp|Sequence|Message 형태로 변환하는 AWK 스크립트를 작성했습니다. 아래와 같이 log.awk 파일을 생성하겠습니다. #!/usr/bin/awk { if (/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}\+[0-9]{2}:[0-9]{2}$/) { ts = $0; seq = 1; } else if ($0 != "") { printf "%s|%03d|%s\n", ts, seq, $0 seq++; } } 테스트를 위해 아래와 같이 test.log 파일을 생성하겠습니다. 2050-01-01T00:00:01.000000+09:00 A 2050-01-01T00:00:02.000000+09:00 B..
AWK 날짜 값과 숫자 값 포맷팅
·
Linux
AWK 스크립트 작성 시 아래와 같이 날짜 값과 숫자 값을 포맷팅할 수 있습니다. 아래 예제는 systime 함수의 결과를 strftime 함수로 포맷팅합니다. $ echo | awk '{print strftime("%Y-%m-%d %H:%M:%S", systime())}' 2023-01-01 00:00:00 아래 예제는 숫자 값을 포맷팅합니다. \47은 작은따옴표(')를 나타냅니다. $ echo | awk '{printf ("%\47 10.1f\n", "1234567.89")}' 1,234,567.9
rlwrap
·
Linux
rlwrap은 'readline wrapper'로 GNU Readline 라이브러리를 사용하여 모든 명령에 대한 키보드 입력을 편집할 수 있도록 하는 유틸리티입니다. rlwrap를 사용하면 sqlplus에서 방향 키를 사용할 수 있습니다. Oracle Linux 7 (x86_64) EPEL에서 아래의 RPM 파일을 다운로드할 수 있습니다. rlwrap-0.42-1.el7.x86_64.rpm rlwrap-0.43-1.el7.x86_64.rpm rlwrap-0.43-2.0.1.el7.x86_64.rpm rlwrap-0.43-2.el7.x86_64.rpm rlwrap-0.45.2-1.el7.x86_64.rpm rlwrap-0.45.2-2.el7.x86_64.rpm 종속성 에러 없이 설치 가능한 최종 버전은 0..
SQL 문 반복 수행 스크립트
·
Linux
개요 SQL 문을 반복 수행하는 쉘 스크립트를 두 가지 방식으로 작성해보겠습니다. 첫 번째 방식 아래 스크립트는 정해진 횟수만큼 SQL 문을 반복 수행합니다. SQL 문을 수행할 때마다 DB에 접속하는 방식입니다. $ cat loop1.sh #!/bin/bash iteration=${1:-86400} sleep=${2:-1} for ((i=1; i
SQL 문 실행 결과 파싱
·
Linux
SQL*Plus 기반의 배치 실행 결과를 분석하기 위해 SQL 문의 실행 결과를 파싱할 수 있는 간단한 awk 스크립트를 작성합니다. 실행 결과를 생성하기 위해 아래 스크립트를 실행하겠습니다. SPOOL log.txt DROP TABLE T1 PURGE; CREATE TABLE T1 AS SELECT ROWNUM AS C1 FROM XMLTABLE ('1 to 10000'); INSERT INTO T1 SELECT * FROM T1; UPDATE T1 SET C1 = 1; DELETE FROM T1 WHERE C1 = 1; COMMIT; SPOOL OFF 아래와 같은 실행 결과가 생성됩니다. SQL> SQL> DROP TABLE T1 PURGE; Table dropped. Elapsed: 00:00:00..