no-image

AWS上のkusanagi WordPressのDBを定期的にdumpしてS3にアップロードする

mysqlコマンドのパスワード入力を省略する

ファイルがない場合は作成する
vi ~/.my.cnf

[client]
password = sql接続のパスワード

作成した場合はパーミッションを600に。

$ chmod 600 ~/.my.cnf

DBサーバに接続してWordpressのDBをdumpする

/home/username/bin/ などにmysqldump.shなどで保存。

#/bin/sh

# DB全体をDUMPしてもいいが、wp_site_cacheなどの実働には影響ないが重いファイルをdumpしないように、tableを指定してdump

DUMP_TABLE_ARRAY+=("wp_commentmeta")
DUMP_TABLE_ARRAY+=("wp_comments")
DUMP_TABLE_ARRAY+=("wp_links")
DUMP_TABLE_ARRAY+=("wp_options")
DUMP_TABLE_ARRAY+=("wp_postmeta")
DUMP_TABLE_ARRAY+=("wp_posts")
DUMP_TABLE_ARRAY+=("wp_termmeta")
DUMP_TABLE_ARRAY+=("wp_comments")
DUMP_TABLE_ARRAY+=("wp_terms")
DUMP_TABLE_ARRAY+=("wp_term_relationships")
DUMP_TABLE_ARRAY+=("wp_term_taxonomy")
DUMP_TABLE_ARRAY+=("wp_usermeta")
DUMP_TABLE_ARRAY+=("wp_users")

RDS=rdsのホスト名
#RDSの接続passは ~/.my.cnf に設定済み
DB_NAME=DB名を記載。大体localhost

DUMP_DIR=/tmp/
DATE=$(date "+%Y%m%d")

mysqldump --replace --compress -u solapa -h $RDS $DB_NAME
${DUMP_TABLE_ARRAY[@]} | gzip > $DUMP_DIR$DB_NAME-$DATE.sql.gz

# AWSのS3にアップロード
BUCKET_NAME=bucketname.jp #適宜変更

/usr/bin/aws s3 mv ${DUMP_DIR}${DB_NAME}-${DATE}.sql.gz
s3://${BUCKET_SPC}/mysqldump/

cronで定期実行する

$ crontab -e #絶対に間違えてcrontab -rを押さないこと!cronの設定がすべて消えます

以下の内容を記載

5 4 * * 5 sh /home/kusanagi/bin/mysqldump.sh #金曜日の朝4時5分に実施

AWS S3にアップしたdumpファイルを定期的に削除(ライフサイクル設定

S3は定期的に削除する設定をしておかないと維持費がどんどん増えるので、ライフサイクル設定を行います。

  1. S3にログイン
  2. バケットを選択
  3. 管理タブを開いてライフサイクルルールの追加
  4. 「ルール名→mysqldump/」「プレフィックス→mysqldump/」
  5. 「ストレージクラスの移行」選択せず次へ
  6. 失効の設定→現行バージョンにチェックで90日間に設定、不完全なマルチパートアップロードをクリーンアップするにチェックで7日間に設定 7. 「保存」

で完了。

参考

mysql コマンドのパスワード入力を省略する

https://qiita.com/marcie001/items/0c0806fa4284289edc60

crontabの書き方

https://www.server-memo.net/tips/crontab.html

pocketlinehatebuimagegalleryaudiovideocategorytagchatquotegoogleplusfacebookinstagramtwitterrsssearchenvelopeheartstaruserclosesearch-plushomeclockupdateeditshare-squarechevron-leftchevron-rightleafexclamation-trianglecalendarcommentthumb-tacklinknaviconasideangle-double-upangle-double-downangle-upangle-downstar-halfstatus