こんばんは。のるぼるのんです。
この前行った朝霧Jamの写真がいい感じに集まってきました。出来れば今週くらいに記事にしたいですね←
さて、前回の記事ではLet’s Encryptを使用してSSL証明書の更新、自動更新の設定を行いました。
いい機会なので、今回はこのままWordPressのデータを自動でバックアップするようにして、サーバー周りの環境を整えようと思います。
環境はCentOS 7系、mysql 5.7系です。
バックアップスクリプトの作成
まずは作業ディレクトリにバックアップファイルを保存するディレクトリ、mysqlのユーザー情報を記載するファイル(user.confとします)、スクリプトファイルを用意します。
1 2 3 4 |
mkdir backups // バックアップ用ディレクトリを準備します touch backups/user.conf // バックアップディレクトリにmysqlユーザー情報を記載するファイルを準備します touch backups/bkupper.sh // スクリプトを記載するファイルを準備します chmod 755 backups/bkupper.sh // permissionを変更します。 |
それでは各ファイルを記載していきましょう。
まずはuser.confです。
・user.conf
1 2 3 4 5 6 |
[client] user = hogehoge password = hugahuga /** * WordPressのDBに使用しているuser, passwordを記述してください */ |
忘れちゃった!って方はwp-config.phpを確認してください!
・bkupper.sh
さあ、スクリプトを記述していきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/bin/sh // おまじない today=`date +%Y%m%d` // 本日の日付 period=7 // 保存期間 dirpath='/var/www/vhosts/tac-blog.tech/backup' // ディレクトリパス mysqldump --defaults-extra-file=$dirpath/user.conf wordpress > $dirpath/$today.sql // dump chmod 700 $dirpath/$today.sql // permission変更 tar -zcf $dirpath/$today.tar.gz -C $dirpath/ $today.sql // 圧縮 rm $dirpath/$today.sql // 圧縮元削除 oldfile=`date --date "$period days ago" +%Y%m%d` // 古いファイル名を日付で取得 rm -f $dirpath/$oldfile.tar.gz // 古いファイルを削除 |
1行目:今からshellを使用しますよーていうおまじないですね。
2行目:本日の日付を変数に代入します。ファイル名は日付で管理します。
3行目:保存期間を設定します。今回は一週間としました。お好みで変更してください。
4行目:バックアップファイルを保存するディレクトリを指定します。(今回はuser.confも同じディレクトリにあります。)
5行目:dumpファイルを作成します。 –defaults-extra-fileオプションでユーザー、パスワードを指定するのに作成したuser.confを使用しています。
6行目:作成したファイルのpermissionを念のため変更
7行目:tar.gz形式で圧縮します。
8行目:元ファイルを削除
9行目:一週間前のファイル名を指定
10行目:一週間前のバックアップファイルを削除しています。
動作を確認
1 |
sh bkupper.sh |
OKです。スクリプトを記述しきる前に、dumpファイルが正しいか確認してください。
cron.dailyへの登録
1 |
sudo cp bkupper.sh /etc/cron.daily/. |
あとはうまく行くか一日寝て、確認しましょう(˘ω˘)スヤァ…
バックアップファイルが作成されていれば無事終了です。
ダメな時はディレクトリやmysql userの設定などを皆をしてください。
お疲れ様でした。
コメントを書く