Atsumaru Engineer's Blog

集客プラットフォーム事業を手がける株式会社あつまるのエンジニアブログです

シェルスクリプトでデータベースのバックアップ

f:id:Prq8EHGiTndTH3W:20210226153456j:plain

※ 新卒1年目の記事ですので、暖かい目で見てください。

Cron を利用してシェルスクリプトでデータベースの自動バックアップを取ることができると聞いたのでやってみました。( ̄∀ ̄)

// buckup_db.sh

# 何日前までのバックアップファイルを保存するのかを指定
PERIOD=10

# DB バックアップ先のディレクトリを指定
DIRPATH='/home/user/hoge/buckup_db/dbname'

# DB バックアップファイル名を指定
FILENAME=`date +%y%m%d_dbname`

# バックアップする DB 名を指定
DB='dbname'

# DB のバックアップ実行
mysqldump --defaults-extra-file='/home/user/hoge/buckup_db/my.conf' $DB > $DIRPATH/$FILENAME.sql

# バックアップファイルの権限変更
chmod 700 $DIRPATH/$FILENAME.sql

# 旧バックアップファイルの削除
OLDFILE=`date --date "$PERIOD days ago" +%y%m%d_dbname`
rm -f $DIRPATH/$OLDFILE.sql
// my.conf

[client]
user = username
password = mypassword
host = localhost

これでデータベースのバックアップが取れました!シェルスクリプト触ったことなくても割と簡単に書けました!(゜▽゜)

ただこのままだと毎回手動で実行する羽目になるので、次は crontab での定期実行とエラーハンドリング機能の実装、その次は処理を実行した時にメールか何かでメッセージを送る機能を実装していこうと思っています!!

▼ 参考にしようとしているサイト qiita.com blog.amedama.jp