WordPressからプラグインを使用して定期バックアップを取得する記事は幾つか見つけたのですが、そのままだと保存したファイルの量が増えていってしまうので、今回は自動で削除する方法を書きたいと思います。
今回使用した定期バックアップ用のプラグインはUpdraftPlusです。この他にも、有名な物にBackWPupがありますが、BackWPupは無料だとバックアップからプラグイン上で復元する機能がないため(自分でファイルを転送したりしないといけないので少し面倒)、私はUpdraftPlusを使用しました。詳しい差分を知りたい方は、他の方差分を書かれているので、そちらを参考にしてください。
UpdraftPlusのインストール
まずは、左ペインのプラグインから新規作成を押して、右上の検索窓でupdraftと検索してください。そうすると、上のスクショのようにUpdraftPlus WordPress Backup Pluginが見つかると思いますので、「今すぐインストール」を押します。(このスクリーンショットでは、インストール後なので、今すぐ更新が表示されています。)
インストール後に、有効化を押し、インストール済みのプラグインに先ほどインストールしたUpdraftPlusが表示されるようになりますので、設定を表示します。
スケジュールの設定
設定タブを押すと、ファイルのバックアップの周期やデータベスのバックアップの周期を設定することができます。また、バックアップする個数まで指定することができます。ただし、バックアップする個数というのは、UpdraftPlusでいる復元することができるバックアップの個数を意味しており、バックアップファイルの数は無限に増えていってしまいます。(→後述するGoogle Driveの設定でバックアップファイルの自動削除を行います。)
保存先の設定
保存先はいくつか選択することができますが、今回は、Google Driveを選択します。理由は、Google Driveの設定で、自動でファイルを削除するためです。
また、Sign in with Googleをクリックし、自分で作成してあるGoogleにサインインします。(Googleアカウントは別途作成してもらう必要があります。)途中、UpdraftPlusにGoogleアカウントの使用を許可するか聞かれるので、許可します。
すると、画面のように、「すでに認証済みのようですが〜」という文言が表示されるはずです。
ちなみに、無料版だとGoogleDriveの保存先のフォルダ名は「UpdraftPlus」で固定のようです。
バックアップに含めるファイルや暗号化フレーズ、そのほかの設定をしたら、一番下の変更を保存をクリックしてください。これでバックアップの設定は完了です。
バックアップを確認する
バックアップは決まった時間にならないと実行されないので、不安であれば、バックアップを手動で実行できます。
バックアップ/復元タブを押すと、「今すぐバックアップ」ボタンが表示されているので、こちらを押すことで、すぐにバックアップを取ることができます。
バックアップの履歴も確認することができ、復元したい時は、復元ボタンを押すことで簡単に復元することができます。
Google DriveのUpdraftPlusフォルダを確認すると、複数のバックアップファイルが保存されていることを確認できると思います。(1回のバックアップで複数ファイル保存されます)
Google Apps Scriptで古いファイルを自動削除する
先ほど申し上げた通り、GoogleDriveに保存されるバックアップファイルは何もしないと、無限に増えてしまいます。(Google Driveは無料アカウントだと最大15GBなので、すぐにいっぱいになってしまいます。)
なので、Google Apps Scriptというサービスでファイルを自動削除する設定をします。
Google Driveを開いて、新規をクリックし、その他>Google Apps Scriptを選択します。
すると、エディタが表示され、function myFunction() { }
が表示されていると思いますので、そこに、以下のコードを貼り付けます。(こちらのサイトを参考にしました!というより、ほぼコピペです笑)
簡単にコードの説明をするとコードを実行すると、google driveの指定したフォルダの中に存在する全てのファイルの更新時刻を確認し、指定した時間より前に更新されたファイル(今回だと11日前)を削除します。
function trashBackupFile() {
var folderName = "UpdraftPlus"; //時限削除したいフォルダの名前
var days = 11; //バッファを見て11日
var folders = DriveApp.getFoldersByName(folderName);
while (folders.hasNext()) {
var folder = folders.next();
var files = folder.getFiles();
while(files.hasNext()) {
var file = files.next();
if (new Date() - file.getLastUpdated() > days * 24 * 60 * 60 * 1000) {
//ファイルを空に(履歴は30日間残る)
file.setContent("");
//ゴミ箱に(ファイル完全削除ではない)
file.setTrashed(true);
}
}
}
}
画面上にある実行ボタンを押すと、また許可するかどうか聞かれるので許可します。するとスクリプトが実行されます。
まだ、更新後11日たったファイルが存在しないので、何も起こりません。スクリプトが正しく実行されることを確認したい場合には、UpdraftPlusフォルダに適当にファイルを作成し、上のコードのdaysを0にして、スクリプトを実行すれば、ファイルが削除されるはずです。)
次に、右側の時計マークのようなものにカーソルを合わせるとトリガーが表示されるので、クリックします。
右下のトリガーを作成をクリックし、イベントのソースを選択で時間手動型、時間の間隔を1時間おきに設定し、保存を押します。これで、先ほど設定したコードを1時間に1回実行してくれます。
以上で、バックアップファイルの自動削除の設定が完了です。
まとめ
今回は、WordPressの自動バックアップの方法についてご説明しました。バックアップファイルの自動削除まで書いている記事はあまり見ないので、ぜひ参考にしてみてください。