반응형
오라클의 sqlplus와 shell script를 통해 데이터베이스의 row수를 세는 간단한 shell을 만들어보았습니다.
단, 딱 저것만 하기는 좀 아쉬워서 몇가지 기능을 더 넣어봤어요.
코드를 정리해 보면 아래와 같습니다.
1. 테이블 명들이 line by line으로 적혀있는 파일 가져오기
2. 해당 파일을 line by line으로 읽어, 테이블명을 뽑아내기
3. DB에 sqlplus로 접근하기
4. 같은 테이블들을 갖고 있는 DB서버1과 2가 있다고 가정할때 이 둘을 비교하기
5. 이때 오라클 결과 값을 shell변수로 가져오기
6. 해당 내용 이쁘게 출력하기(제 나름대로..?)
#!/bin/bash
list = `cat table_list`
echo "테스트 시작"
echo "DB : $1 과 DB : $2 비교"
for line in $list
do
echo $line
var1 = `sqlplus -s db$1/db$1 << EOF
SET HEAD OFF
SET ECHO OFF
select count(*) from $line;
EOF`
var2 = `sqlplus -s db$2/db$2 << EOF
SET HEAD OFF
SET ECHO OFF
select count(*) from $line;
EOF`
echo "-----------------------------"
printf "$1\t $2\t\t Check\n"
if [ $var1 -ne $var2 ]; then
printf "%s\t %s\t\t ERROR\n" $var1 $var2
else
printf "%s\t %s\t\t SUCCESS\n" $var1 $var2
fi
echo "-----------------------------"
done
exit 0
cf. 제 개발 PC에 있던 애들 복붙한것이 아니라 한자한자 보고쳐서, 요상한 에러로 작동 오류가 날수도 있어요!
cf2. 나중에 확인해야겠네요.
Using bash shell, oracle, sqlplus...
반응형
'IT' 카테고리의 다른 글
[JavaScript] let과 var 그리고 const의 차이점 (0) | 2021.05.11 |
---|---|
[VI] 리눅스환경 vi, vim에서 ^M 제거 하기 (0) | 2021.05.07 |
구글의 텐서플로우 자격증 시험 후기 (0) | 2021.02.12 |
[Linux] 리눅스 주요 명령어 (0) | 2020.09.02 |
Opencv - Saliency map 사용해 보기 (0) | 2020.01.20 |