
投稿『CentOS8からFreeBSDに乗り換えました』における準備で重要なことは、とにかくバックアップをとることです。
なんせ現在稼働しているHDD(私はSSDを使用しています)を消去して、新たにインストールしようとしているのですから。
まずは何をバックアップするか考えてみます。
余談ですが、私の性格は考えるより先に手を動かすタイプです。悪く言えば考えるのが嫌い!? なので抜けがあるかもしれません。
移行元サーバCentOS8で最低限バックアップする必要のある内容は以下の通りです。
- ホームページ関連(WordPressにアップロードしたファイル,MariaDB)
- メール関連(Postfix,Cyrus-IMAPD)
- その他各種設定ファイル(/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/