94 lines
3.2 KiB
Markdown
94 lines
3.2 KiB
Markdown
# hogedomain backup
|
|
|
|
## 概要
|
|
|
|
ホームラボのサーバーで稼働している3システムのボリュームをバックアップする。
|
|
操作ミスでボリュームが削除されないよう、バックアップ用のコンテナを削除しない。
|
|
|
|
ホームラボのサーバーをバックアップすることを目的としており、汎用的にできていない。
|
|
雑なバックアップをする際のテンプレート&やり方メモ。
|
|
(名前のhdは、HOGEDOMAINの略称)
|
|
|
|
## 構築方法
|
|
|
|
### ダウンロード
|
|
|
|
このリポジトリからダウンロードする。
|
|
|
|
```
|
|
git clone https://gitea.rohhie.net/rohhie/hd-backup.git
|
|
cd hd-backup
|
|
```
|
|
|
|
### ベースとなるイメージを作成
|
|
|
|
バックアップコンテナのベースとなるイメージを作成する。
|
|
スクリプトの修正等でコンテナを作り直す際に、最低限のダウンロードで済ませるため。
|
|
|
|
```
|
|
sudo baseimage/mkbaseimage.sh
|
|
```
|
|
|
|
なお、ベースイメージにはSambaをインストールしている。
|
|
sysvolディレクトリの拡張属性をバックアップするためなので、不要な場合はapk addのところから削除する。
|
|
|
|
### バックアップ対象のボリュームを設定
|
|
|
|
docker-compose.ymlを編集し、バックアップ対象のボリュームを設定する。
|
|
|
|
コンテナ内の/tmp配下にマウントしているが、このディレクトリは存在しなければ作られる。
|
|
ただし、バックアップでsambaの機能(拡張属性の取得)を使うため、/etc/sambaと/var/lib/sambaは所定の場所にマウントしている。
|
|
|
|
バックアップ先は、ホストの/var/backupsにしている。
|
|
|
|
### バックアップスクリプトを修正
|
|
|
|
ホームラボでバックアップしたいボリュームを固める処理を書いている。
|
|
sysvolについては、拡張属性を取り出して、復元用のスクリプトを作成している。
|
|
|
|
バックアップ対象のボリュームにあわせて、バックアップスクリプトを修正する。
|
|
|
|
### バックアップ実行スクリプトを修正
|
|
|
|
バックアップ対象のコンテナを停止し、バックアップを実行し、コンテナを起動する。
|
|
3システム(5コンテナ)を停止・起動しているが、必要に応じて修正する。
|
|
|
|
## 使い方
|
|
|
|
バックアップ実行スクリプトを実行する。
|
|
|
|
```
|
|
sudo ./do-backup.sh
|
|
```
|
|
|
|
環境によっては、クーロンに登録しても良いと思われる。
|
|
ホームラボでは、サーバーが常時動いていないので、手動で実行することにしている。
|
|
|
|
## リストア
|
|
|
|
リストアする際には、バックアップスクリプトが動作しないように docker-compose.yml を変更する。
|
|
|
|
```
|
|
DO_BACKUP: "false"
|
|
```
|
|
|
|
設定変更後、コンテナを起動し、コンテナの中でリストア操作をする。
|
|
|
|
```
|
|
sudo docker compose up -d
|
|
sudo docker exec -it backup ash --login
|
|
```
|
|
|
|
Samba ad dcについては拡張属性設定スクリプトを用意しているので、復元後に実行しておく。
|
|
var/lib/samba/NTACL
|
|
|
|
## その他
|
|
|
|
詳細はメインサイト参照。
|
|
https://rohhie.net/back-up-the-docker-volume/
|
|
|
|
## ライセンス
|
|
|
|
MIT
|
|
|