CentOS7のバックアップが取りたい。設定やログファイルだけではなくて、システムバックアップを保管しておきたい。
やれやれ。僕は検索した。
※なおこれは2020/03/31に実行した記録なので、この通りにいかない可能性は充分にあります。
検索
【参考】
https://enz0.net/software/linux_mondorescue/
https://qiita.com/KEINOS/items/95f8138a9907d86e78a7
https://blog.techlab-xe.net/install-mondorescue-centos7/
mondoの導入
ふむふむ、MondoRescueとかいうのを使うわけだな。
ひとまずftp://ftp.mondorescue.org/rhel/7/x86_64/mondorescue.repo
からmondorescue.repo
を落としてきた。
# cd /etc/yum.repos.d
# wget ftp://ftp.mondorescue.org/rhel/7/x86_64/mondorescue.repo
# yum --enablerepo=mondorescue install mondo
しかしインストール途中で失敗してしまった。
warning: /var/cache/yum/x86_64/7/mondorescue/packages/perl-ProjectBuilder-0.15.2-1.rhel7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 20ebfb0e: NOKEY
Retrieving key from ftp://ftp.mondorescue.org//rhel/7/x86_64/mondorescue.pubkey
The GPG keys listed for the "rhel 7 x86_64 - mondorescue Vanilla Packages" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.
Failing package is: perl-ProjectBuilder-0.15.2-1.rhel7.noarch
GPG Keys are configured as: ftp://ftp.mondorescue.org//rhel/7/x86_64/mondorescue.pubkey
perl-ProjectBuilder-0.15.2-1.rhel7.noarch.rpm
が正しく落とせないようだ。
というわけで別のリポジトリhttp://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
から落とし直してみた。
# yum clean all
# rm mondorescue.repo
# wget http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
# yum install mondo
Installed:
mondo.x86_64 0:3.2.2-1.rhel7
Dependency Installed:
afio.x86_64 0:2.5-1.rhel7 buffer.x86_64 0:1.19-4.rhel7 gdbm-devel.x86_64 0:1.10-8.el7
genisoimage.x86_64 0:1.1.11-25.el7 libdb-devel.x86_64 0:5.3.21-25.el7 libusal.x86_64 0:1.1.11-25.el7
mindi.x86_64 0:3.0.2-1.rhel7 mindi-busybox.x86_64 0:1.21.1-1.rhel7 mtools.x86_64 0:4.0.18-5.el7
perl-CPAN-Meta.noarch 0:2.120921-5.el7 perl-CPAN-Meta-Requirements.noarch 0:2.122-7.el7 perl-CPAN-Meta-YAML.noarch 0:0.008-14.el7
perl-Digest.noarch 0:1.17-245.el7 perl-Digest-MD5.x86_64 0:2.52-3.el7 perl-ExtUtils-CBuilder.noarch 1:0.28.2.6-294.el7_6
perl-ExtUtils-Install.noarch 0:1.58-294.el7_6 perl-ExtUtils-MakeMaker.noarch 0:6.68-3.el7 perl-ExtUtils-Manifest.noarch 0:1.61-244.el7
perl-ExtUtils-ParseXS.noarch 1:3.18-3.el7 perl-IO-Interface.x86_64 0:1.05-2.el7 perl-IPC-Cmd.noarch 1:0.80-4.el7
perl-JSON-PP.noarch 0:2.27202-2.el7 perl-Locale-Maketext.noarch 0:1.23-3.el7 perl-Locale-Maketext-Simple.noarch 1:0.21-294.el7_6
perl-Module-Build.noarch 2:0.40.05-2.el7 perl-Module-CoreList.noarch 1:2.76.02-294.el7_6 perl-Module-Load.noarch 1:0.24-3.el7
perl-Module-Load-Conditional.noarch 0:0.54-3.el7 perl-Module-Metadata.noarch 0:1.000018-2.el7 perl-Module-ScanDeps.noarch 0:1.10-3.el7
perl-MondoRescue.noarch 0:3.2.2-1.rhel7 perl-Net-IPv4Addr.noarch 0:0.10-19.el7 perl-Params-Check.noarch 1:0.38-2.el7
perl-Parse-CPAN-Meta.noarch 1:1.4404-5.el7 perl-Perl-OSType.noarch 0:1.003-3.el7 perl-ProjectBuilder.noarch 0:0.15.2-1.rhel7
perl-YAML.noarch 0:0.84-5.el7 perl-devel.x86_64 4:5.16.3-294.el7_6 perl-version.x86_64 3:0.99.07-3.el7
pyparsing.noarch 0:1.5.6-9.el7 syslinux.x86_64 0:4.05-15.el7 systemtap-sdt-devel.x86_64 0:4.0-10.el7_7
wodim.x86_64 0:1.1.11-25.el7
Dependency Updated:
libdb.x86_64 0:5.3.21-25.el7 libdb-utils.x86_64 0:5.3.21-25.el7
Complete!
うまくいったようだ。
バックアップを取りたいサーバは2つあったので、同じ要領でmondoのインストールを試みた。
最初から後者のリポジトリ(http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
)を指定して進めてみた。
# cd /etc/yum.repos.d
# wget http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
# yum install mondo
Retrieving key from ftp://ftp.mondorescue.org//centos/7/x86_64/mondorescue.pubkey
The GPG keys listed for the "centos 7 x86_64 - mondorescue Vanilla Packages" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.
Failing package is: afio-2.5-1.centos7.x86_64
GPG Keys are configured as: ftp://ftp.mondorescue.org//centos/7/x86_64/mondorescue.pubkey
……………。
今度はafio-2.5-1.centos7.x86_64
のインストールで失敗してしまった。
逆順で、最初のリポジトリ(ftp://ftp.mondorescue.org/rhel/7/x86_64/mondorescue.repo
)を設定し直した。
# yum clean all
# rm mondorescue.repo
# wget ftp://ftp.mondorescue.org/rhel/7/x86_64/mondorescue.repo
# yum --enablerepo=mondorescue install mondo
Installed:
mondo.x86_64 0:3.3.0-1.centos7
Dependency Installed:
afio.x86_64 0:2.5-1.centos7 buffer.x86_64 0:1.19-8.centos7 gdbm-devel.x86_64 0:1.10-8.el7
genisoimage.x86_64 0:1.1.11-25.el7 libdb-devel.x86_64 0:5.3.21-25.el7 libusal.x86_64 0:1.1.11-25.el7
mindi.x86_64 0:3.3.0-1.centos7 mindi-busybox.x86_64 0:1.25.1-1.centos7 mtools.x86_64 0:4.0.18-5.el7
perl-CPAN-Meta.noarch 0:2.120921-5.el7 perl-CPAN-Meta-Requirements.noarch 0:2.122-7.el7 perl-CPAN-Meta-YAML.noarch 0:0.008-14.el7
perl-Digest.noarch 0:1.17-245.el7 perl-Digest-MD5.x86_64 0:2.52-3.el7 perl-ExtUtils-CBuilder.noarch 1:0.28.2.6-294.el7_6
perl-ExtUtils-Install.noarch 0:1.58-294.el7_6 perl-ExtUtils-MakeMaker.noarch 0:6.68-3.el7 perl-ExtUtils-Manifest.noarch 0:1.61-244.el7
perl-ExtUtils-ParseXS.noarch 1:3.18-3.el7 perl-IO-Interface.x86_64 0:1.05-2.el7 perl-IPC-Cmd.noarch 1:0.80-4.el7
perl-JSON-PP.noarch 0:2.27202-2.el7 perl-Locale-Maketext.noarch 0:1.23-3.el7 perl-Locale-Maketext-Simple.noarch 1:0.21-294.el7_6
perl-Module-Build.noarch 2:0.40.05-2.el7 perl-Module-CoreList.noarch 1:2.76.02-294.el7_6 perl-Module-Load.noarch 1:0.24-3.el7
perl-Module-Load-Conditional.noarch 0:0.54-3.el7 perl-Module-Metadata.noarch 0:1.000018-2.el7 perl-Module-ScanDeps.noarch 0:1.10-3.el7
perl-MondoRescue.noarch 0:3.3.0-1.centos7 perl-Net-IPv4Addr.noarch 0:0.10-19.el7 perl-Params-Check.noarch 1:0.38-2.el7
perl-Parse-CPAN-Meta.noarch 1:1.4404-5.el7 perl-Perl-OSType.noarch 0:1.003-3.el7 perl-ProjectBuilder.noarch 0:0.15.2-1.centos7
perl-YAML.noarch 0:0.84-5.el7 perl-devel.x86_64 4:5.16.3-294.el7_6 perl-version.x86_64 3:0.99.07-3.el7
pyparsing.noarch 0:1.5.6-9.el7 syslinux.x86_64 0:4.05-15.el7 systemtap-sdt-devel.x86_64 0:4.0-10.el7_7
wodim.x86_64 0:1.1.11-25.el7
Dependency Updated:
libdb.x86_64 0:5.3.21-25.el7 libdb-utils.x86_64 0:5.3.21-25.el7
Complete!
今度はエラーにならなかった。
つまり
ftp://ftp.mondorescue.org/rhel/7/x86_64/mondorescue.repo
→ perl-ProjectBuilder-0.15.2-1.rhel7.noarch.rpm
落とせず
http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
→ afio-2.5-1.centos7.x86_64
落とせず
という結果になった。一方のリポジトリを指定しつつ、そこで足りないやつを追加で入れてあげるのが良さそうだ。
要するに
したがって https://qiita.com/KEINOS/items/95f8138a9907d86e78a7 にあるように
# cd ~/
# yum -y update
# wget ftp://ftp.mondorescue.org/rhel/7/x86_64/perl-ProjectBuilder-0.14.5-1.rhel7.noarch.rpm
# rpm -ivh perl-ProjectBuilder-0.14.5-1.rhel7.noarch.rpm
# cd /etc/yum.repos.d/
# wget ftp://ftp.mondorescue.org/rhel/7/x86_64/mondorescue.repo
# yum --enablerepo=mondorescue install mondo
の手順でやれば行けるのだと思う。(試してはいない)
そもそも上の2ケースについて、前者のサーバはrhelリポジトリ、後者はcentosリポジトリから持ってきているので、完全に同じものというわけではない。バックアップ対象は廃棄予定サーバだったので細かいことはどうでもいいが、運用で使うのであればきちんと統一すべきでしょうね。
lzopの導入
圧縮用に、追加でlzopを落とした。
# yum install lzop
mindi設定編集
バックアップ作成時にエラーを吐きよるので、mindi.confを編集した。
# vi /etc/mindi/mindi.conf
EXTRA_SPACE=1500000
BOOT_SIZE=40960
バックアップ
つづいてバックアップ先を作成して実行。
上にも挙げた、こちらのサイトがよくまとまっているので、そのまま使わせて頂いた。
https://enz0.net/software/linux_mondorescue/
# mkdir /_backup
# mondoarchive -Oi -L -N -d /_backup -E /_backup -p `hostname`-`date +%Y-%m-%d`
-O : バックアップ実行
-i : ISO形式
-L : lzo圧縮
-N : ローカルディスクのみ対象
-d : バックアップ出力先パス
-E : バックアップ除外パス
-p : ISOファイル名プレフィックス
↓こんな感じでログが出たらOK
Backup and/or verify ran to completion. Everything appears to be fine.
/var/cache/mindi/mindi.iso, a boot/utility CD, is available if you want it.
Data archived OK.
Mondoarchive ran OK.
See /var/log/mondoarchive.log for details of backup run.
Execution run ended; result=0
Type 'less /var/log/mondoarchive.log' to see the output log
# ll /_backup
-rw-r--r-- 1 root root 680396800 Mar 31 12:04 hostname-2020-03-31-1.iso
-rw-r--r-- 1 root root 680368128 Mar 31 12:05 hostname-2020-03-31-2.iso
-rw-r--r-- 1 root root 678404096 Mar 31 12:05 hostname-2020-03-31-3.iso
...
バックアップが生成されている。めでたしめでたし。
システムによってはかなりのファイルサイズになるので、ちゃんと容量計算してあげよう。