ロリポップでWordPressのバックアップ

この記事は約6分で読めます。

ロリポップでWordPressのバックアップを取ってみた。

WordPressでバックアップを取る手順は大きく2つ。

①ファイルのバックアップ
②データベースのバックアップ

①ファイルのバックアップ

WordPressのフォルダごとバックアップすればOK。
ここで少しはまったんだけど、FFFTPだと何故かうまくいかなかった。
面倒だから圧縮せずにルートフォルダの頭っからダウンロードしようとしたんだけど、
毎回接続が切れ1ファイルもダウンロード出来ない…。
ファイルが数ファイルしかない小さいディレクトリなら問題なくダウンロード出来るんだけど、
数百・数千ファイルあるディレクトリは弾かれるようになっているのか駄目だった。

圧縮すればいいんだろうけど(これはこんどやってみる)、それ程容量も多くないし
面倒だから何か方法ないかなぁ~と思って試しにWinSCPでSFTPでダウンロードしたら
問題なくディレクトリ事ごっそり落とせた。 10分くらい。

WinSCPは↓からダウンロード

WinSCP :: Official Site :: Download
WinSCP is a free SFTP, SCP, Amazon S3, WebDAV, and FTP client for Windows.

FFFTP使ったことある人は特に操作は問題なく出来ると思う。
FTPは22ポート使ってたけど、SFTPは21ポートを指定すればOK。
その他ユーザー、パスワード、ホストは同じ。

②データベースのバックアップ

「サーバーの設定・管理」→「phpadminを開く」→phpadminへログイン

バックアップしたいデータベースを選択 ※WordPress以外入れてなければ基本的に1つしかない
→「エクスポート」ボタン押下→「実行」押下

10Mくらいであれば1秒でダウンロード完了する。

※特に標準で問題ないけど、一応オプション設定は自分の環境・想定してる形式等あれば確認したほうがよい。

最後に

以上で、バックアップは完了。

容量にもよるがだいたい20分もかからない。

ファイルのバックアップは圧縮していないので時間かかるけど、
圧縮していればここも10分もかからないと思う。

ファイルのバックアップについて

ファイルのバックアップについて、
ロリポップはコンソール画面に入れないので面倒くさいけど、
cron設定が出来るので、cronでディレクトリを圧縮するコマンドを作成して
それを実行させるようにすれば出来そう。
※「サーバーの管理・設定」→「cron設定」

何か試したら追記する。


・設定するときの注意
通知先メールアドレスはとりあえず指定しておく。
捨てアドでもよいので最初は指定しておかなければ、
何かのエラーでシェルが実行出来なかった時に気が付かない。
恐らく実行時エラーはメール通知でしか気が付かない…。

・配置するディレクトリ

ftpでログインした「/」直下からのパスを指定。
「/」直下にtest.shを置いた場合、ロリポップの
実行ファイルパスには「test.sh」を記載。

・エラー①

/bin/bash^M: 誤ったインタプリタです: そのようなファイルやディレクトリはありません

改行コード「\r\n」を「\n」へ修正。
※サクラエディタ等で開いて正規表現→\r\nを\nへ置換する

・cronが実行されるときのホームディレクトリ

ここがはまった…。デバッグ用にログを出そうとしたら
ファイルが全然作成されない。 あとcpコマンド等で
ファイルをコピーしようとしてもそんなファイルは無いと言われる。

実行されるシェル
/home/users/2/{domain}/web/test.sh

実行する時のカレントディレクトリ
/home/users/2/{domain}
※web配下にいない

なのでWordPress等のフォルダを操作する場合は
フルパス指定するか、「cd web」で一度移動しないといけない。

・参考スクリプト

【構成】
/root/web/
test.sh ※ファイル
backup ※ディレクトリ

※web 配下がftp接続した時の初期のディレクトリ、これ以上、上の階層には上がれない
※cron実行時のホームはroot直下なのでweb配下にいる前提で処理を実行したければcd webで移動する必要がある

ftpでログインした直下にバックアップスクリプトを置いています。
※試験的に直下に置いていますが好きな位置に置いてください(シェルも併せて修正)
ブログのバックアップ用のディレクトリを作成しています「backup」
test.sh、backup それぞれ権限に注意してください。
実行権限、アクセス権限等付与してください。

#!/bin/bash

echo "バッチ処理開始" >&1

cd web
tar -zcvf myblog.tar.gz myblog
mv myblog.tar.gz backup/

echo "バッチ処理終了" >&1
exit 0

echo でログを出力しています。 この内容がメールで通知されます。
cdでwebディレクトリへ移動しています。※ホームディレクトリが一個上なので…
tarコマンドでmyblogというディレクトリをtar.gzに圧縮し、
mvでbackupディレクトリ配下に配置しています。
※myblogは自身のブログのディレクトリ名へ修正してください。
※圧縮時のファイル名に日付を指定すると上書きされず都度バックアップが作成されます。

とりあえずこんな感じで適宜修正すれば使えるはず。

ロリポップの仕様

cron

cron設定 / サーバー・プログラム / マニュアル - ロリポップ!レンタルサーバー
ロリポップ!レンタルサーバーのご利用マニュアル 「cron設定」 について説明したマニュアルページです。

契約形態によって設定出来る数が違う。

ライトプランの場合5個まで登録可能。
最小実行間隔は5分毎。

これがエンタープライズだと10個10分間隔。
エコノミーだと1個5分間隔。

cronで実行するのはbashが多いけど、一応phpの実行も可能。

ssh

SSHについて / サーバー・プログラム / マニュアル - ロリポップ!レンタルサーバー
ロリポップ!レンタルサーバーのご利用マニュアル SSHについて説明したマニュアルページです。

エコノミー、ライトは利用不可。
スタンダード、ベーシック、エンタープライズは利用可能。
※現状スタンダードプランは受付停止なので新規の人はベーシックかエンタープライズを選択しないと利用不可。

エコノミー、ライトプランを利用している人は
諦めてcronでどうにかするしかない。

sshの利用は↓に詳しくのってたので参考に。

lolipopでSSH接続する方法と使い方を実例で解説|SSHとは何か?(初心者向け、わかりやすい)
SSHとは何か?SSHとは、サーバーを遠隔操作する方法の1つで、通信内容を暗号化しているものです。通信を暗号化していないものにtelnetという通信方法があり、そのパワーアップバージョンです。簡単にいうと、AWSやGithubなどのサーバー

tar と gz とtar.gz(とzip)の違い

いつもなんだっけ?って忘れるので再度メモ。

tar:ファイルを1つにまとめる(書庫:圧縮機能無し)
gz:ファイルを圧縮する(圧縮機能)
tar.gz:tarとgzの合わせ技
→Linux上で大きいディレクトリを圧縮して保存する場合はこれ
→軽いディレクトリならtarだけでOK

zip:Windows標準の圧縮(圧縮+書庫)

■圧縮
tar -zcvf filename.tar.gz directoryname ※tar.gz
tar -cvf filename.tar directoryname ※tar
■解凍
tar -zxvf filename.tar.gz ※tar.gz
tar -xvf filename.tar ※tar

option  full name   mean
-z      --gzip      gzip形式であることを指定
-c      --create    新しく圧縮ファイルをつくる
-v      --verbose   処理結果を出力
-f      --file      圧縮ファイルの名前
-x      --extract   圧縮ファイルからファイルを取り出す

参考)

Linux tar.gz tar 圧縮 解凍 - Qiita
いつも思い出せないtar.gzのメモ。 Windowsでtar.gzを扱うのが面倒なときのためにtarも追加。 tar gz 圧縮 tar.gzの場合 tar -zcvf filename.tar.gz director...