環境
- EC2(Linux)
- Docker
dump実行用シェルファイルを作成
$ vi backupdb.sh
backupdb.shに記述するコマンドは以下。
# !/bin/sh
docker exec mysql mysqldump -u ユーザー名 -pパスワード -h ホスト名 データベース名 > ~/redmineBk.sql
mysqlコンテナの中のmysqldumpを使ってsqlファイルにバックアップ対象のデータを出力します。
ユーザー名やデータベース名などは、redmineコンテナの中のconfig/database.ymlに記載されています(-pとパスワードの間にスペース入れない)。
下記コマンドで参照できます。
$ docker exec -it redmine bash # redmine用のコンテナを指定
root~ /usr/src/redmine# cat config/database.yml
crontabを設定
cronを使って定期的に自動でバックアップを取得できるように設定しておきます。
$ crontab -e
# 分 時 日 月 曜 実行ファイル
00 19 * * 1-5 /home/ec2-user/backupdb.sh
この場合、毎週月~金曜日の19時にバックアップを取得する設定となっています。
設定したcronは、crontab -lで確認できます。