export_full.sh
파일 실행root
입니다.oracle
입니다./ora_backup
입니다.exp_full_<오늘날짜>
입니다.(date 옵션 정보)1일
이 지난 덤프파일과 로그파일은 삭제합니다. (리눅스 명령어로 오래된 파일 삭제하기)1) 스크립트 작성
# cd /ora_backup
# vi export_full.sh
...
#!/bin/bash
TODAY=`date +%y%m%d`
EXP_PATH='/ora_backup'
DMPFILE=${EXP_PATH}/exp_full_${TODAY}.dmp
LOGFILE=${EXP_PATH}/exp_full_${TODAY}.log
# oracle 유저로 exp 명령 실행
su - oracle -c "exp \'/ as sysdba\' file=${DMPFILE} log=${LOGFILE} full=y"
# 해당 디렉토리 안에서 수정된지 1일 이상된 파일을 찾아서 삭제
find ${EXP_PATH} -name *.dmp -mtime +1 -exec rm {} \;
find ${EXP_PATH} -name *.log -mtime +1 -exec rm {} \;
...
2) crontab 등록
export_full.sh
파일 실행# crontab -e
* 1 * * 1-5 /ora_backup/export_full.sh
1분
마다 export_full.sh
을 실행합니다.시,분,초
까지 추가했습니다. (date 옵션 정보)1분
이 지난 덤프파일과 로그파일은 삭제합니다. (리눅스 명령어로 오래된 파일 삭제하기)1) 스크립트 작성
# cd /ora_backup
# vi export_full.sh
...
#!/bin/bash
TODAY=`date +%y%m%d%H%M%S`
EXP_PATH='/ora_backup'
DMPFILE=${EXP_PATH}/exp_full_${TODAY}.dmp
LOGFILE=${EXP_PATH}/exp_full_${TODAY}.log
# oracle 유저로 exp 명령 실행
su - oracle -c "exp \'/ as sysdba\' file=${DMPFILE} log=${LOGFILE} full=y"
# 간간히 이전 백업 파일이 남아있는 것을 볼 수 있는데, 이는 파일이 미세하게 1분이 지나지 않아 삭제되지 않는 듯 합니다. 그래서 sleep을 인위적으로 줍니다
sleep 3
# 해당 디렉토리 안에서 수정된지 1분 이상된 파일을 찾아서 삭제
find ${EXP_PATH} -name *.dmp -mmin +1 -exec rm {} \;
find ${EXP_PATH} -name *.log -mmin +1 -exec rm {} \;
...
2) crontab 등록
1분
마다 export_full.sh
을 실행합니다.# crontab -e
*/1 * * * * /ora_backup/export_full.sh
3) 테스트 결과