CentOS Stream@さくらVPS その3 バックアップ

何度もインストールし直すのも面倒なので、色々アプリを入れる前に、バックアップ環境を整備してみる。

幸い、Qiita に先行事例が上がっているので、それを参考に。

https://qiita.com/halpas/items/2f51d3b9954367f1587e

参考事例では、バックアップ先をクラウドにしているが、私の場合はNASがあるので、そこにバックアップ取れないか試してみる。

1. NAS側の準備

さくらVPSのCentOSから事務所のNASにリモートバックアップを行いたい場合、兎にも角にも、CentOSからNASの共有フォルダをマウントしないと話にならない。

LinuxからSynology NASの共有フォルダをマウントするには、SambaかNFSかWebDavあたりが候補になる。

ただ、以前に弐号機にUbuntuをインストールして、NASをマウントしようとしたときに、NFSではうまく行かず、Sambaを使った場合も結構手順が面倒だった記憶がある。

また、インターネット経由でのアクセスになるので、暗号化対応しているもの…と考えると、WebDavが無難か。

ということで、まずはNAS側でWebDav接続できるように準備する。

1.1. 共有フォルダを作成

DSMにアクセスして、「コントロールパネル」>「共有フォルダ」から、バックアップ格納先の共有フォルダを作成する。

1.2. WebDav Server パッケージのインストール

デフォルトでWebDavが使えるわけではないので、パッケージをインストールする。とはいえ、手順的には「パッケージセンター」から「WebDAV Server」を探してインストールするだけ。

インストールしたら、設定を行う。

  • HTTPSを有効にする:チェック入れる
  • WebDAVログを有効にする:チェック入れる

HTTPSで使うポート番号を控えておき、ルーターでポートを後ほど開ける。Synology側で対応しているNASなら、DSM側からポート開放の設定ができるが、事務所で使っているルーターは対応外なので、別途ルーターの管理画面から設定する。

2. CentOS から NASのWebDAVをマウント

2.1. リポジトリの追加

WebDAVマウントに使うパッケージがデフォルトのリポジトリにはないので、EPELのリポジトリを追加しておく。

dnf install -y epel-release

普段は無効化しておき、必要な時だけリポジトリを都度指定する。

vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=1 ← ここを0に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
(以下略)

2.2. davfs2 のインストール

dnf install -y --enablerepo epel davfs2

2.3. 保存先ディレクトリの作成とNASのマウント

mkdir /backup
mount -t davfs https://hogehoge.diskstation.me:[port]/[共有フォルダ名]/[バックアップ置き場]/ /backup

マウントするときには、NASのID/Passを聞かれるので、入力。

3. バックアップの設定

3.1. Mondo Rescueのインストール

dnf install -y tar
dnf install -y wget
cd /etc/yum.repos.d/
wget http://www.mondorescue.org/ftp/centos/8/x86_64/mondorescue.repo
dnf -y install mondo lzop
vi /etc/mindi/mindi.conf
EXTRA_SPACE=240000 #追記
BOOT_SIZE=100000 #追記

3.2. バックアップスクリプト

vi /etc/cron.daily/auto_backup.sh
#!/bin/bash
today=$(date +%Y%m%d)

setenforce 0

#Backup_日付.isoのファイル名でバックアップ
mondoarchive -O -i -N -L -s25g -E"/backup" -d /tmp -p Backup_${today}

#バックアップイメージを移動
mv /tmp/Backup_${today}-1.iso /backup

#古いバックアップイメージを削除
find /backup -type f -mtime +4 -exec rm -f {} \;

setenforce 1
chmod 755 /etc/cron.daily/auto_backup.sh

何度か試してエラーになったが、tarコマンドが入ってなくてエラーになっていたり、mindi の設定を変えて試してみたところ、バックアップを取得して、それをNASに書き込むところまで出来た。

あとは、cronでバックアップが回るかの確認を行ったら、リストアを試してみよう。

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA