ABOUT ME

포소니는 나의 하루이자 누군가의 공감입니다. 조용히 머물러도 좋고, 가볍게 이야기를 남겨도 좋아요. 당신의 일상도, 이곳에 스며들길 바랍니다.

Today
Yesterday
Total
  • postgresql batch job shell script
    Tech/Server 2017. 8. 10. 18:52
    반응형


    데이터베이스에서 오래된 데이터를 주기적으로 삭제 하기 위해 스크립트를 만듬

    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




    반응형

    '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
Designed by Tistory.