전에 포스트에는 파일을 자동으로 삭제해주는 스크립트를 짰다면 이번엔 mysql에 있는 row 데이터를 시간이 지남에 따라 오래된 데이터를 자동으로 삭제해 주도록 스크립트를 짜고 crontab을 이용하여 시간주기마다 스크립트를 실행시키도록 한다.
# Deletedata.sh
#!/bin/bash
# ---------- Custom Config Option ----------
expire_days=30
id="ID"
pw="비밀번호"
db="스키마"
table="테이블명"
column="컬럼명"
# -----------------------------------------------
echo "Start Deletedata.sh"
mysql -u${id} -p${pw} ${db} -e "delete from ${table} where ${column} < date_add(date_format(now(), '%Y-%m-%d'), interval ${expire_days} day)"
echo "End Deletedata.sh"
crontab은 다음의 명령어를 통해 실행시킨다.
crontab -e
00 00 * * * <sh파일경로> > <sh로그파일경로> 2>&1