Linux oracle exp 백업 자동화(crontab)

현스·2025년 2월 10일
0

backup script

목록 보기
7/11
post-thumbnail

📌 1. 백업 디렉터리 생성

먼저, 백업 파일을 저장할 디렉터리를 생성합니다.

cd /home/oracle
mkdir -p /home/oracle/expbk
chmod 750 /home/oracle/expbk

chmod 750 /home/oracle/expbk → oracle 사용자만 접근 가능하도록 설정

📌 2. 백업을 위한 쉘 스크립트 작성

아래 내용을 /home/oracle/hot/script/exp_backup.sh 파일로 저장하세요.

✅ 쉘 스크립트 (exp_backup.sh)

#!/bin/bash

# 날짜 변수 (YYYYMMDD)
BACKUP_DATE=$(date +%Y%m%d)

# 백업 경로 (expbk 디렉터리)
DUMP_DIR="/home/oracle/expbk"
DUMP_FILE="full_backup_${BACKUP_DATE}.dmp"
LOG_FILE="full_backup_${BACKUP_DATE}.log"

# 환경 변수 로드 (ORACLE_HOME, PATH 설정)
source /home/oracle/.bash_profile

# exp 실행 (FULL 백업)
exp system/oracle file=${DUMP_DIR}/${DUMP_FILE} log=${DUMP_DIR}/${LOG_FILE} full=y

# 완료 로그 기록
echo "EXP Backup completed on $(date)" >> $DUMP_DIR/exp_backup_history.log

📌 3. 쉘 스크립트 실행 권한 부여

쉘 스크립트를 실행하려면 실행 권한을 부여해야 합니다.

chmod +x /home/oracle/hot/script/exp_backup.sh

📌 4. Crontab에 등록 (매일 1시에 실행)

이제 백업을 매일 한 시 (01:00)에 실행하도록 Crontab에 추가합니다.

crontab -e
아래 내용을 추가하세요.


0 1 * * * bash -c "source /home/oracle/.bash_profile; /home/oracle/hot/script/exp_backup.sh >> /home/oracle/expbk/cron_exp_backup.log 2>&1"

🎯 설명

0 12 * * * → 매일 정오(12:00)에 실행
/home/oracle/hot/script/exp_backup.sh → 백업 스크립트 실행
>> /home/oracle/expbk/cron_exp_backup.log 2>&1 → 실행 로그 저장

📌 4. 7일 이상 된 백업 파일 자동 삭제 (선택)

백업이 계속 쌓이면 디스크 공간을 차지하기 때문에 7일 이상 된 백업을 자동 삭제하도록 설정할 수 있습니다.

Crontab에 다음을 추가하면 매일 새벽 2시에 7일 이상 된 백업을 자동 삭제합니다.

0 2 * * * find /home/oracle/expbk/ -type f -name "full_backup_*.dmp" -mtime +7 -exec rm -f {} \;

🔔 확인
crontab -l

profile
˗ˋˏ O R A C L E ˎˊ˗

0개의 댓글