CentOS Stream@さくらVPS その5 バックアップリベンジ

途中まではその3の手順と同じで行く。バックアップはrsyncを使う予定だが、直接rsyncコマンドでバックアップするんじゃなく、WebDAVでマウントしたフォルダをバックアップ先にしてみる。

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を聞かれるので、入力。

2.4. NASを自動でマウント

vi /etc/fstab
https://hogehoge.diskstation.me:[port]/[共有フォルダ名]/[バックアップ置き場] /backup davfs noauto,rw,nouser,nofail,x-systemd.automount,x-systemd.device-timeout=30,_netdev 0 0   #最終行に追記
vi /etc/davfs2/secrets
https://hogehoge.diskstation.me:[port]/[共有フォルダ名]/[バックアップ置き場]  [NASのユーザー名] [NASのパスワード]   #最終行に追記
chmod 600 /etc/davfs2/secrets

3. バックアップの実施

dnf install -y rsync
vi /etc/cron.daily/auto_backup.sh
#!/bin/bash

setenforce 0

rsync -avh --delete --exclude={"/backup/","/dev/","/proc/","/sys/","/tmp/","/run/","/mnt/","/media/","/lost+found"} / /backup

setenforce 1
chmod 755 /etc/cron.daily/auto_backup.sh
コメントはまだありません

コメントを残す

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

CAPTCHA