반응형
데이터베이스에서 오래된 데이터를 주기적으로 삭제 하기 위해 스크립트를 만듬
postgresql,mariadb , oracle 같은 경우 scheduler 기능을 제공함
scheduler 도 좋지만 스크립트를 사용해보기위해 아래와 같이 적용함
해당 스크립트를 cron 에 등록하여 사용하면 됨.
#!/bin/bash
# chkconfig 2345 20 80
readonly LOG_SAVE_PATH="/root/postgresql_log" #로그 파일 저장 경로
readonly LOG_FILE_NAME="log.log" #로그
readonly LOG_FILE="${LOG_SAVE_PATH}/${LOG_FILE_NAME}"
readonly DB="postgres"
#삭제 시간
executeTime=$(date '+%Y-%m-%d %H:%M:%S')
#90일전 시간
checkTime=`date +%Y-%m-%d -d '-90days'` #90일전 데이터 삭제를 위해 90일전 날짜 계산
#log writer (실행 시간, 삭제 건수를 로그파일에 기록 한다.)
function main() {
#디렉터리 생성
mkdir -p ${LOG_SAVE_PATH} #디렉터리가 존재하지 않을 경우를 대비하여 추가함. 있으면 생성하지 않음
local result=`sudo -i -u postgres psql -d ${DB} -c "delete from 테이블명 where 컬럼이름<'$checkTime'"`
echo "[${executeTime}] -> $result]" >> "${LOG_FILE}"
}
main
반응형
'Server' 카테고리의 다른 글
mongo db docker-compose (0) | 2020.08.20 |
---|---|
파일 비교 하여 다른 부분만 출력 (0) | 2017.12.20 |
find 와 xargs 사용 (0) | 2017.09.13 |
Kt ucloud server 파티션 방법 (0) | 2017.05.19 |
make 파일 (0) | 2013.02.20 |