ロリポップでWordPressのバックアップを取ってみた。
WordPressでバックアップを取る手順は大きく2つ。
①ファイルのバックアップ
②データベースのバックアップ
①ファイルのバックアップ
WordPressのフォルダごとバックアップすればOK。
ここで少しはまったんだけど、FFFTPだと何故かうまくいかなかった。
面倒だから圧縮せずにルートフォルダの頭っからダウンロードしようとしたんだけど、
毎回接続が切れ1ファイルもダウンロード出来ない…。
ファイルが数ファイルしかない小さいディレクトリなら問題なくダウンロード出来るんだけど、
数百・数千ファイルあるディレクトリは弾かれるようになっているのか駄目だった。
圧縮すればいいんだろうけど(これはこんどやってみる)、それ程容量も多くないし
面倒だから何か方法ないかなぁ~と思って試しにWinSCPでSFTPでダウンロードしたら
問題なくディレクトリ事ごっそり落とせた。 10分くらい。
WinSCPは↓からダウンロード
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
契約形態によって設定出来る数が違う。
ライトプランの場合5個まで登録可能。
最小実行間隔は5分毎。
これがエンタープライズだと10個10分間隔。
エコノミーだと1個5分間隔。
cronで実行するのはbashが多いけど、一応phpの実行も可能。
ssh
エコノミー、ライトは利用不可。
スタンダード、ベーシック、エンタープライズは利用可能。
※現状スタンダードプランは受付停止なので新規の人はベーシックかエンタープライズを選択しないと利用不可。
エコノミー、ライトプランを利用している人は
諦めてcronでどうにかするしかない。
sshの利用は↓に詳しくのってたので参考に。
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 圧縮ファイルからファイルを取り出す
参考)