特別新鮮な情報でもないですが、私自身の不安が解消されたため備忘録の記事です。
バックアップに辿り着いた経緯
Raspberry Pi 4(ラズパイ4)へWordPressを設置するもなかなかしっくりできない日々が続いていました。3日でmicroSDを初期化して、新規OSインストールの繰り返し。
WordPresssデータを/var/wwwディレクトリ配下に置くと、システムに不具合が生じたときにWordPressデータも一緒に消去しなければなりません。
そこで、DocumentRootを外付けHDDに変更を試みて、Apache設定ファイルをがちゃがちゃいじると、OSが起動できなくなったり。
1ヶ月以上試行錯誤の末、考えついたのが自動バックアップ。
検索してみると既に多くの記事があり、
「さすがラズパイ好きな先輩のみなさん、よく知っておられる」
と思った次第です。
初めは自動バックアップ設定が難しそうな印象があり躊躇していましたが、意外にあっさりと設定できました。
これでWordPressデータを消去しなければならない不安も無くなりました。
評価:はじめに結論
抜群の安心感を得られるようになりました。
自動バックアップを導入するまでは、
- システムに不具合が生じたら、ブータブルUSBメディアごと作り直さなければいけない
という不安感が常に付いて回り、WordPressデータをmicroSDに保存することに抵抗感がありました。
しかし、1日1回自動バックアップ出来るようになって、積極的にローカルWordPressを使えるようになれました。
バックアップ頻度をこれ以上高くすると、バックアップ先のmicroSDの寿命が短くなると思い、
1日1回の頻度にしました。
WordPressをインストール(SSL対応)
ラズパイにSSL対応WordPressをインストールする方法は、過去記事をご覧ください。
Raspberry Pi OS Lite(デスクトップ環境の無いOS)なら、16GBのmicroSDでも10GB以上の空き容量があります。
▼ざっくりと黄色マーカーが空き容量(Apache, mariaDB, PHP, WordPress, Sambaをインストール済)
pi@momo:~ $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 14G 2.1G 12G 16% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 778M 2.1M 776M 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/mmcblk0p1 255M 50M 206M 20% /boot
/dev/sdb1 3.7T 3.3T 412G 89% /media/Elements
tmpfs 389M 0 389M 0% /run/user/1000
pi@momo:~ $
「空き容量10GBは少ないのでは?」と不安に思われるかもしれませんが、当サイトはレンタルサーバ上で500MBにすら達していません。
動画を扱わないなら、WordPress領域として10GBは十分だと思います。
更に、小さい容量をバックアップする方が早く完了します。
私の環境では約2分でWordPress含めたラズパイOSバックアップが完了するので、
かなりお手軽で心強いです。
必要なもの
rpi-clone: ラズパイOSまるごとバックアップ
ダウンロード&概要
「rpi-clone」というシェルスクリプトでラズパイOS&データをまるごと、USB端子に差された別のmicroSDにバックアップします。
インストール
- 関連記事:Terminal(端末)の使い方
上記ダウンロード先にてインストール方法が説明されています。
Terminalを使って以下のコマンドでインストールします。
$ git clone https://github.com/billw2/rpi-clone.git
$ cd rpi-clone
$ sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
私のラズパイにはgitがインストールされていなかったので、gitを先にインストールしました[1]出典:Git Guides – install git · GitHub, 2022-10-01閲覧。。
sudo apt install git
rpi-cloneの使い方
<流れ>
- microSDのデバイス名を知る
- バックアップコマンドでテストしてみる
- 自動化する
microSDのデバイス名を知る
- 使用するコマンド:lsblk
fstabにマウントポイントを書き込まないでください。rpi-cloneが自動的にマウントし、アンマウントします。fstabにmicroSDのマウントポイントを書き込んで、再起動後にOS起動出来なくなる経験をしました。
以下のコマンドでバックアップ先となるmicroSDのデバイス名を洗い出します。
$ lsblk
pi@momo:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 28.8G 0 disk
├─sda1 8:1 1 256M 0 part
└─sda2 8:2 1 28.6G 0 part
sdb 8:16 0 3.6T 0 disk
└─sdb1 8:17 0 3.6T 0 part /media/Elements
mmcblk0 179:0 0 14.5G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 14.2G 0 part /
pi@momo:~ $
私は32GBのmicroSDをUSB端子に差しているので、上の黄色マーカーが該当します。
ですので、デバイス名sdaであることが分かりました。
※注意点
USB端子に接続されているデバイス構成が変わると、デバイス名が変わる可能性があります。
例:USB端子4個のうち違う端子に差して、sda→sdbに変更になる、など。
▼デバイス名の決まり方について、Debian公式サイトより引用。
最初に見つかったハードディスクは /dev/sda と名付けられる。
C.4. Linux におけるデバイス名 – Debian GNU/Linux インストールガイド 2022-10-01閲覧。
2 番目に見つかったハードディスクは /dev/sdb と名付けられ、以下も同様。
バックアップを自動化している場合、バックアップ先が別デバイスに変更される危険性があります。
4TBの外付けHDDに16GBが上書きされると大惨事になりますので、
ご注意ください。
バックアップコマンドでテストしてみる
次に、実際にバックアップするコマンドです。
※バックアップ先を間違わないように注意してください。
sudo rpi-clone sda
以下が実行結果です。
pi@momo:~ $ sudo rpi-clone sda
Booted disk: mmcblk0 15.5GB Destination disk: sda 31.0GB
---------------------------------------------------------------------------
Part Size FS Label Part Size FS Label
1 /boot 256.0M fat32 -- 1 256.0M fat32 --
2 root 14.2G ext4 rootfs 2 28.6G ext4 --
---------------------------------------------------------------------------
== SYNC mmcblk0 file systems to sda ==
/boot (49.5M used) : SYNC to sda1 (256.0M size)
/ (2.1G used) : SYNC to sda2 (28.6G size)
---------------------------------------------------------------------------
Run setup script : no.
Verbose mode : no.
-----------------------:
Ok to proceed with the clone? (yes/no): yes
Syncing file systems (can take a long time)
Syncing mounted partitions:
Mounting /dev/sda2 on /mnt/clone
=> rsync // /mnt/clone with-root-excludes ...
Mounting /dev/sda1 on /mnt/clone/boot
=> rsync /boot/ /mnt/clone/boot ...
Editing /mnt/clone/boot/cmdline.txt PARTUUID to use f6521247
Editing /mnt/clone/etc/fstab PARTUUID to use f6521247
===============================
Done with clone to /dev/sda
Start - 08:18:40 End - 08:19:52 Elapsed Time - 1:12
Cloned partitions are mounted on /mnt/clone for inspection or customizing.
Hit Enter when ready to unmount the /dev/sda partitions ...
unmounting /mnt/clone/boot
unmounting /mnt/clone
===============================
pi@momo:~ $
先述のように、私のラズパイはデスクトップ環境の無いLite OSなので、容量の小さな16GBのmicroSDを使っています。
初回のバックアップは約20分掛かりましたが、rpi-cloneは差分をバックアップするため、それ以降は2分くらいの完了を継続しています。
1日1回、バックアップを自動化する
- 使用するコマンド:crontab
指定時間に電源OFFで使ったcrontabコマンドを使います。
sudo crontab -e
(例)毎日20:00にバックアップする場合(書式:分 時 月内日 月 曜日 コマンド、*はfirst-lastの意[2]出典:crontab(5) — manpages-ja — Debian bullseye — Debian Manpages, 2022-10-01閲覧。)
00 20 * * * sudo bash rpi-clone sda -q
行末の「-q」オプションで、yesなどの質問をスキップして、unmountまで自動的に進みます。
バックアップ作動ログを確認
- 使用するコマンド:cat
以下のコマンドでrpi-clone作動ログを確認します。
cat /var/log/rpi-clone.log
pi@momo: $ cat /var/log/rpi-clone.log
2022-09-26 00:16 momo rpi-clone : clone to sdb (no label)
2022-09-26 01:02 momo rpi-clone : clone to sda (no label)
2022-09-26 01:14 momo rpi-clone : clone to sda (no label)
2022-09-26 07:06 momo rpi-clone : clone to sda (no label)
2022-09-26 20:09 momo rpi-clone : clone to sda (no label)
2022-09-27 20:01 momo rpi-clone : clone to sda (no label)
2022-09-28 20:01 momo rpi-clone : clone to sda (no label)
2022-09-29 20:01 momo rpi-clone : clone to sda (no label)
2022-09-30 20:02 momo rpi-clone : clone to sda (no label)
2022-10-01 08:19 momo rpi-clone : clone to sda (no label)
pi@momo: $
ローカルWordPressが自動バックアップ出来るようになると
- Google Keepより動作が軽い環境で、積極的にメモを残せます。
- Linux, Windows, iOSなどクロスプラットフォームでWordPressを気軽に使えます。
- WordPressテーマの試験的な導入を試しやすくなります。
- 日報としてWordPressを使いやすくなります。
多分、1年後に読み返せば、自身の心の動きが懐かしく思えるのではないでしょうか。
本記事のコンテンツは以上です。
お役に立てれば嬉しく思います。
以下の記事も一緒にどうぞ。
- ラズパイOS (bullsey) のインストール・セットアップ
- LXTerminal のコマンド一覧(最低限)
- nano の操作方法(保存)
- ラズパイOSセットアップ直後の設定
- ラズパイIPアドレスの固定など
- ufw(ファイアウォール)設定
- SSH接続でラズパイをリモート操作
- Sambaサーバを作ってiCloudを解除
- ローカルWordPress専用Webサーバ構築(SSL対応)
- Raspberry Pi OS Liteのインストール
- Raspberry Pi OS LiteでSambaを設定
- ラズパイサーバのWordPressを自動でバックアップ
- ラズパイSSDブート&起動しないときの対処方法
- MyDNSでドメインを無料取得する
- NGINXサーバでWordPressサイト(SSL化済)をWWWへ公開
脚注
↵1 | 出典:Git Guides – install git · GitHub, 2022-10-01閲覧。 |
---|---|
↵2 | 出典:crontab(5) — manpages-ja — Debian bullseye — Debian Manpages, 2022-10-01閲覧。 |
コメント