自宅サーバのredmineの耐障害性を高めるため、
flowchart LR
Redmine -- rsyncによる転送--> Backup
を仕込みました。
環境
- バックアップ元(Linux Mint 20.03)
- バックアップ先(Kubuntu 20.04)
共にrsyncdはインストールされています。
参考:
https://www.server-world.info/query?os=Ubuntu_18.04&p=rsync
https://www.server-world.info/query?os=Ubuntu_18.04&p=lsync
バックアップ先の設定:
vi /etc/rsyncd.conf
ファイル内容
[backup]
path = /home/backup/redmine
hosts allow = [バックアップ元のIPアドレス]
hosts deny = *
list = true
uid = www-data
gid = www-data
read only = false
バックアップディレクトリ作成
mkdir /home/backup/redmine
chown -R www-data:www-data /home/backup/redmine
systemctl restart rsync.service
バックアップ元の設定:
rsyncのテストを行う。
rsync -avz --delete /home/hoge/test.txt バックアップ先::backup
バックアップ先にtest.txtが格納されることを確認しました。
lsyncdのインストール
aptitude install lsyncd
mkdir /etc/lsyncd
vi /etc/lsyncd/lsyncd.conf.lua
ファイル内容
settings{
logfile="/var/log/lsyncd/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1,
}
sync{
default.rsync,
source="/var/lib/redmine/",
# redmine配下をまるごとバックアップします。
target="[バックアップ先]::backup",
}
lsyncdのログ設定
mkdir /var/log/lsyncd
vi /etc/logrotate.d/lsyncd
ローテーションファイルの内容
/var/log/lsyncd/*.log {
missingok
notifempty
copytruncate
compress
}
サービス反映
systemctl restart lsyncd
systemctl status lsyncd
systemctl enable lsyncd
リアルタイムの設定確認
tail -f /var/log/lsyncd/lsyncdlog
#別ウィンドウで開きます
cd /var/lib/redmine
touch test.txt
ファイル追加後、ログに以下を確認。
Fri Apr 15 20:38:41 2022 Normal: Calling rsync with filter-list of new/modified files/dirskup/ finished.
/test.txt
/
Fri Apr 15 20:38:41 2022 Normal: Finished a list after exitcode: 0
rm test.txt
ファイル削除後、ログに以下を確認しました。
Fri Apr 15 20:39:51 2022 Normal: Calling rsync with filter-list of new/modified files/dirs
/test.txt
/
Fri Apr 15 20:39:52 2022 Normal: Finished a list after exitcode: 0
まとめ
により、要のDBのバックアップとリストアができたことは確認済み。
後は復旧できるかどうかを試してみます。