-
postgresql batch job shell scriptTech/Server 2017. 8. 10. 18:52반응형
데이터베이스에서 오래된 데이터를 주기적으로 삭제 하기 위해 스크립트를 만듬
postgresql,mariadb , oracle 같은 경우 scheduler 기능을 제공함
scheduler 도 좋지만 스크립트를 사용해보기위해 아래와 같이 적용함
해당 스크립트를 cron 에 등록하여 사용하면 됨.
#!/bin/bash# chkconfig 2345 20 80readonly 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반응형'Tech > 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