FreeBSD移行のためのバックアップ

バックアップ

投稿『CentOS8からFreeBSDに乗り換えました』における準備で重要なことは、とにかくバックアップをとることです。
なんせ現在稼働しているHDD(私はSSDを使用しています)を消去して、新たにインストールしようとしているのですから。

まずは何をバックアップするか考えてみます。
余談ですが、私の性格は考えるより先に手を動かすタイプです。悪く言えば考えるのが嫌い!? なので抜けがあるかもしれません。
移行元サーバCentOS8で最低限バックアップする必要のある内容は以下の通りです。

  1. ホームページ関連(WordPressにアップロードしたファイル,MariaDB)
  2. メール関連(Postfix,Cyrus-IMAPD)
  3. その他各種設定ファイル(/etc)

「3. その他各種設定ファイル(/etc)」は、移行先のFreeBSDで各パッケージをインストールし、その設定の参考程度に使用します。CentOS8とFreeBSDの違いがあるので、そのままコピーすることは避けることにしました。もちろん、内容がほぼ同一であればそのまま使用します。

ホームページ関連

ホームページの公開には、メジャーなWordPress+MariaDBを利用しています。
ホームページには様々なイラストや写真などアップロードしたファイルや投稿、固定ページなどの記事のバックアップが必要です。

WordPressのバックアップ

CentOS8のWordPressは/usr/share/wordpressにインストールされています。アップロードされるファイルもそのディレクトリに含まれます。したがって、ディレクトリごとバックアップするためにアーカイブします。

# cd /usr/share
# tar czf /var/tmp/wordpress.tar.gz wordpress

MariaDBデータをバックアップ

WordPressのDBに、私はMariaDB10.5を利用しています。
データベースをバックアップするには以下のようにします。

# mysqldump -u wordpress_user --password='(wordpress_userのパスワード)' wordpress_db > /var/tmp/wordpress_db.sql

“wordpress_user”及び、“wordpress_db”の部分はWordPressインストール時に指定したユーザ名、データベース名に読み替えてください。
パスワードも同じく、インストール時に指定したものに読み替えてください。
これらの情報はwp-config.phpに書かれています。

メール関連のバックアップ

メールボックスには、Cyrus-IMAPDを利用しています。
主にIMAPSを利用しています。したがって、メールサーバ上のメールを新しいサーバ上に移行することがとても重要です。

まずはメールが保存されているディレクトリを丸ごとバックアップします。

# cd /var/spool
# tar czf /tmp/var-spool-imap.tar.gz imap

これで仮想ドメインを含むすべてのメールをバックアップすることができます。
但し、これだけでは新しいサーバでメールを復元することはできません。
メールボックスのデータベースmailboxes.dbをエクスポートする必要があります。新しいサーバでメール復元時のインポートに必要になります。

# /usr/lib/cyrus-imapd/ctl_mboxlist -d -f /var/lib/imap/mailboxes.db >/tmp/mailboxes.txt

その他のバックアップ

Webサーバ、メールサーバのみを運用していたとしても、関連するソフトウェアが多く稼働しています。
それらの設定ファイルもバックアップします。

忘れてならないのは、wp-config.phpファイルです。このファイルはデータベース名やデータベースユーザ名などの重要情報が書かれています。
このファイルは/etc/wordpress/wp-config.phpにあり、インストールされるディレクトリ/usr/share/wordpressにはシンボリックリンクが設定されています。バックアップしたwordpress.tar.gzにはシンボリックリンクが保存されるだけですので、本体を保存し忘れると泣きを見ることになりますので注意しましょう。
このようなことが起こらないように、/etcディレクトリを丸ごとバックアップ用にアーカイブします。

# cd /
# tar czf /tmp/etc.tar.gz etc

バックアップファイルをダウンロード

バックアップ対象のコンピュータにバックアップファイルが作成されました。
これを別のコンピュータやUSBメモリなどの外部媒体にバックアップファイルを保存する必要があります。

バックアップしたものをまとめる

これまでバックアップしたものをまとめて1つのファイルにしておきます。
もちろん別々のままでも構いません。
私の場合は、ダウンロードするときに1つのファイルになっている方が楽なので、まとめます。

# cd /tmp
# tar czf /home/foo/centos8-backup.tar.gz ./*
# chown foo.foo /home/foo/centos8-backup.tar.gz

最後のchownは、他のコンピュータからscpするために、バックアップファイル(centos8-backup.tar.gz)の所有者をfooにしています。

scpでファイルを転送

移設先のコンピュータに、scpを使用してバックアップファイルを転送します。
※バックアップ対象のコンピュータにSSH接続可能な状態である必要があります。また認証方法に合わせてオプションを指定する必要があります。

# su - foo
foo@bar:~ % scp centos8-backup.tar.gz foo@bar.example.jp:/home/foo

移設先(転送先)のコンピュータ上で転送したファイルを展開します。

# tar xvzf /home/foo/centos8-backup.tar.gz /tmp

まずは、メールボックスを展開します。

# tar xzf /tmp/var-spool-imap.tar.gz /var/spool/

戸塚

www.computer-service.jp

コンピュータ業界に30年近く身を置いていましたが、現在では建築関係、その他、まったくの異業種に。 コンピュータに関する『こまった』をサポートするべく事業を開始。