[Linux 쉘 스크립트] 쉘 스크립트로 SQL 파일을 실행 후 로그 저장

2024. 3. 22. 17:43·■ Linux/Shell
반응형

0. 개요

Linux의 쉘 스크립트를 이용해 SQL 파일을 실행하고, 이를 로그로 저장해 보도록 한다. 해당 방법을 사용하면 특정 환경에서 Linux의 Crontab을 활용해 SQL문을 자동으로 돌릴 수 있는 효과를 기대할 수 있다.

 

 

 


1. 참고

본 포스트에서 진행한 OS 및 DBMS 환경은 아래와 같다.

OS RedHat Linux 64-bit 8.8
DBMS Oracle Database 19c

 

 

 


2. SQL 파일 이동

본인이 실행하고자 하는 SQL문을 작성하여, SQL 파일로 저장하고 WinSCP 등 SFTP 프로그램을 이용해 Linux 서버로 이동한다.

 

본 포스트에서는 아주 단순히 Oracle DB의 버전만 확인할 수 있는 쿼리문을 작성하고, /test/sqltest.sql 경로로 저장했다.

 

▣ sqltest.sql 내용 (Oracle DB 버전확인 쿼리)
더보기
SELECT * FROM PRODUCT_COMPONENT_VERSION;

 

 

 


3. Shell Script 작성

vim 편집기를 통해 새 파일을 생성하고, 우리가 0. 개요 단락에서 기대했던 효과를 얻을 수 있는 스크립트를 작성하자.

# vim /test/shelltest.sh

▲ 스크립트 파일 생성 후 vim 편집기 실행

 

#!/bin/sh

### ORACLE DB SQL문 실행 후 로그 작성하는 쉘 스크립트

# 시스템 현재시간 time 변수로 저장
time=`date +%Y%m%d`

# 로그 파일 생성 위치 지정
logdir=/test/result_log

# 실행할 sql문 지정
sql=/test/sqltest.sql

# 로그 파일 생성 위치가 없으면 mkdir 명령어를 통해 하위 디렉터리까지 한번에 생성
mkdir -p $logdir

# DB 로그인 후 SQL 실행 및 로그파일 생성
sqlplus [DB아이디]/[DB비밀번호] << ENDSQL
spool $logdir/result_$time.log
@$sql
spool off
exit
ENDSQL

▲ 쉘 스크립트 파일 내용

 

/test/sqltest.sql 파일을 실행하고, /test/result_log 폴더에 result_[날짜].log 파일을 생성하도록 하는 쉘 스크립트다.

 

 

 

 


4. Shell Script 실행

# chmod u+x /test/shelltest.sh
# /test/shelltest.sh

▲ 스크립트 파일 실행 권한 설정 후 실행

 

스크립트를 실행하기 위해서는 권한을 설정해 주어야 한다. chmod u+x 명령어로 스크립트 파일 실행 권한을 지정하고, 스크립트를 실행시켜 보자.

 

 

쉘 화면에서 스크립트가 실행되고 종료된 모습을 확인할 수 있었다.

 

로그 저장 경로로 지정한 곳에도 오늘날짜에 맞게 잘 로그파일이 생성된 모습을 확인할 수 있다.

 

 

 

로그파일을 열어보면 실행내역이 정상적으로 저장되어 있는 모습을 확인할 수 있다.

300x250
반응형
저작자표시 비영리 변경금지 (새창열림)
'■ Linux/Shell' 카테고리의 다른 글
  • [Linux] sendmail을 통해 LINUX shell 에서 외부로 이메일 발송하기
Min Hyuk-Lee
Min Hyuk-Lee
시스템 엔지니어로 근무하고 있습니다.
  • Min Hyuk-Lee
    아크레의 개발로그
    Min Hyuk-Lee
    m_file@naver.com
  • 전체
    오늘
    어제
    • 📝 Log. (81)
      • ■ Dev. Language (11)
        • C (5)
        • C# (6)
      • ■ Dev. ETC (8)
        • Unity 3D (3)
        • Android Studio (JAVA) (5)
      • ■ Web (6)
        • HTML (3)
        • JSP (3)
      • ■ Linux (8)
        • Shell (2)
        • Linux Tip. (6)
        • 보안취약점 진단 (0)
      • ■ Windows (4)
        • Server (1)
        • Windows Tip. (3)
      • ■ VM (1)
        • VMWare (1)
        • Virtual Box (0)
      • ■ Database (9)
        • MySQL (7)
        • OracleDB (2)
      • ■ DevKit (5)
        • IDE (4)
        • Tool (1)
      • ■ Error (17)
        • Linux 오류해결 (4)
        • DB 오류해결 (3)
        • IDE 오류해결 (2)
        • VM 오류해결 (3)
        • Unity 오류해결 (4)
        • SSH, SFTP 오류해결 (1)
      • ■ Photoshop (3)
        • 디자인&이미지 창작 (3)
      • ■ Document (3)
        • MS Word (2)
        • PDF (1)
      • ■ Study (4)
        • Baekjoon (4)
      • ■ 작문 (1)
        • 회고 (1)
      • ■ ETC (1)
        • Car (0)
        • etc (1)
  • 🌐 Menu

    • 📓 Guestbook
  • 🔗 Other Links

    • GitHub
    • 아크레의 IT ISSUE
  • 📢 Notice

    • [스킨 업데이트] hELLO v4.10.0 적용완료
    • [스킨 업데이트] hELLO v4.9.0 적용 완료
    • [스킨 업데이트] hELLO v4.8.1 적용 완료
  • 💬 Recent Comments

  • hELLO· Designed By정상우.v4.10.0
Min Hyuk-Lee
[Linux 쉘 스크립트] 쉘 스크립트로 SQL 파일을 실행 후 로그 저장
상단으로

티스토리툴바