シェルスクリプトで、1週間分のファイルをバックアップする

定期的に特定のファイルをバックアップする方法を紹介します。日時でcronで実行して7世代(1週間分)、特定のファイルを保存するシェルスクリプトです。動作確認はCentOSでおこなっています

流れとしては、バックアップするファイルに日付を付与したファイル名に保存します。
シェルスクリプトの最後に7日より古いファイルを削除するようにしているので、7世代分(1週間)は特定のファイルはバックアップされます

#!/bin/bash

DATE=`date "+%Y%m%d"`
BAKDIR=/var/tmp/DB_Backup

# バックアップするDBの情報
DB_USER=wp-admin
DB_PASS=31sde8sQL83c
DB_NAME=wordpress

# mysqldumpコマンドでDBをバックアップ
mysqldump -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BAKDIR}/${DB_NAME}_${DATE}.db

# 7日より古いファイルを削除
find ${BAKDIR} -type f -name "${DB_NAME}_*.db" -mtime +7 -exec rm -f {} \;

上記のスクリプトをCronで登録すれば、、7世代分(1週間)は特定のファイルはバックアップする事ができます

$ crontab -e

0 4 * * *     /home/admin/script/db_backup.sh > /dev/null 2>&1