아래 쉘 스크립트를 crontab등에 등록 해두고 매일매일 실행 시키면 4일 까지의 덤프 데이터가 남는다.
#!/bin/sh
BACKUP_DIR=/home/SOMEWHERE/db_backup
TODAY=`date +%Y%m%d`
RETENTION_PERIOD=4 # 백업 덤프 파일 보관 기간 4일
DAY_BEFORE_RETENTION_PERIOD=`date --date "${RETENTION_PERIOD} day ago" +%Y%m%d`
#echo "DAY_BEFORE_RETENTION_PERIOD:"${DAY_BEFORE_RETENTION_PERIOD}
#유저가 작성한 DB 목록 추출
mysql -u root -h 127.0.0.1 -P 3306 --password='PASSWORD' --skip-column-names -e "select schema_name from information_schema.schemata where schema_name not in ('information_schema','mysql','performance_schema')" > ${BACKUP_DIR}/backup_schema_list.${TODAY}
for db_schema in `cat ${BACKUP_DIR}/backup_schema_list.$TODAY | awk '{print $1}'`
do
backup_schema_list=${backup_schema_list}" "${db_schema}
done
# 백업 파일 덤프
mysqldump -u root --password='PASSWORD' --master-data=2 --routines --events --single-transaction --databases ${backup_schema_list} > ${BACKUP_DIR}/tk_db_backup.${TODAY}.sql
rm -f ${BACKUP_DIR}/tk_db_backup.${DAY_BEFORE_RETENTION_PERIOD}.sql