2019年8月2日金曜日

バックアップについて

12月頃にHOMEサーバーの環境を移行してから、バックアップが手薄になっていた。
https://continue-to-challenge.blogspot.com/2018/10/nextcloud.html
https://continue-to-challenge.blogspot.com/2018/12/gogs.html
今回はせめて再構築が用意になるように外付けHDDにバックアップを行うことにした。
対象
  • nextcloud
  • gogs
  • redmine
nextcloudには、家族の写真とかがあるので特に大事。

バックアップ

nextcloud

ほぼ先人と同じ
https://docs.nextcloud.com/server/15/admin_manual/maintenance/backup.html
https://denor.jp/nextcloudサーバのデータ自動バックアップ設定-snap版
https://takuya-1st.hatenablog.jp/entry/2018/11/20/020000
#!/bin/bash
NCPATH="/mnt/***/www/html/nextcloud"
NCDATA_PATH="/mnt/***/nextcloud/data"
TARGET="/mnt/usbhdd/nextcloud_backup"

echo start at `date`

echo "(STEP1)HDD spin-up"
sdparm -r --command=start /dev/sdd

echo "(STEP2)Maintenance Mode [ ON ]"
sudo -u www-data php ${NCPATH}/occ maintenance:mode --on

echo "(STEP3)Backup Config"
rsync -vAax ${NCPATH} ${TARGET}

echo "(STEP4)Backup Data"
rsync -vAax ${NCDATA_PATH} ${TARGET}

echo "(STEP5)Backup Database"
mysqldump --single-transaction -h localhost -u nextcloud -p****** nextcloud > ${TARGET}/nextcloud-sqlbkp.bak

echo "(STEP6)Maintenance Mode [ OFF ]"
sudo -u www-data php ${NCPATH}/occ maintenance:mode --off

echo "(STEP7)HDD spin-down"
sdparm -r --command=stop /dev/sdd

echo end at `date`

省電力化のためにスピンダウン入れてみたけど、効果は未知数。
smartで起動しちゃうみたいだし・・・。

gogs

大体ここの内容と同じ
https://gogs.io/docs/upgrade/upgrade_from_binary
#!/bin/bash
GGSPATH="/***/git/gogs"
GGSRPPATH="/***/git/gogs-repositories"
TARGET="/mnt/usbhdd/gogs_backup"

echo start at `date`

echo "(STEP1)gogs [ STOP ]"
systemctl stop gogs

echo "(STEP2)Backup Custom"
rsync -vAax ${GGSPATH}/custom ${TARGET}

echo "(STEP3)Backup Data"
rsync -vAax ${GGSPATH}/data ${TARGET}

echo "(STEP4)Backup Log"
rsync -vAax ${GGSPATH}/log ${TARGET}

echo "(STEP5)Backup Database"
mysqldump --single-transaction -h localhost -u gogs -p****** gogs_git  > ${TARGET}/gogs-sqlbkp.bak

echo "(STEP6)Backup Repository"
rsync -vAax ${GGSRPPATH} ${TARGET}

echo "(STEP7)gogs [ START ]"
systemctl start gogs

#echo "(STEP7)HDD spin-down"
#sdparm -r --command=stop /dev/sdd
echo end at `date`

redmine

本体はdocker、データベースはローカルのMariaDBを使用している。
https://continue-to-challenge.blogspot.com/2019/07/redmine.html
バックアップの方法
https://qiita.com/mikoski01/items/7d71ef7d167a6b78219a
http://redmine.jp/faq/system_management/backup/
#!/bin/bash
RMPATH="/srv/docker/redmine/redmine/files"
TARGET="/mnt/usbhdd/redmine_backup"

echo start at `date`

echo "(STEP1)redmine [ STOP ]"
docker stop redmine

echo "(STEP2)Backup Data"
rsync -vAax ${RMPATH} ${TARGET}

echo "(STEP3)Backup Database"
mysqldump --single-transaction -h localhost -u redmine -p****** redmine  > ${TARGET}/redmine-sqlbkp.bak

echo "(STEP4)redmine [ START ]"
docker start redmine

リストア

gogsの復元

ほぼ、この前の環境構築と同じ
https://continue-to-challenge.blogspot.com/2018/12/gogs.html
今回はテストとしてNanoPiに環境構築してみた。
  1. gogsインストールして
  2. MariaDBにデータベース作成
  3. バックアップからデータリストア
  4. 起動
の簡単4ステップ

redmineの復元

環境構築は、この前の手順で
https://continue-to-challenge.blogspot.com/2019/07/redmine.html
復元手順は
http://redmine.jp/faq/system_management/backup/
すいすい行くと思いきや
standard_init_linux.go:211: exec user process caused "exec format error"
なんだと!
どうやらNanoPiではARM用のイメージを使わないといけないらしい。
https://matatsuna.hatenablog.com/entry/2017/08/16/223039
公式のものがARM64対応していたのでそれにしてみる。
https://hub.docker.com/_/redmine
docker run --name=redmine -it --rm \
-e REDMINE_DB_USERNAME=redmine -e REDMINE_DB_PASSWORD=****** \
-e REDMINE_DB_DATABASE=redmine \
-e REDMINE_DB_MYSQL=192.168.1.13 -e REDMINE_DB_PORT=3306 \
-p 3000:3000 \
-v /srv/docker/files:/usr/src/redmine/files \
library/redmine:4.0.4
初期状態で起動が確認できたら、
  1. /srv/docker/redmineにfilesの中身を展開する
  2. データベースの復元
を行う。
できた!

nextcloudの復元

nextcloudには30GBくらいのデータが保存されているため、NanoPIのSDカードでは到底復元の環境に出来ない。
そこで、NanoPIに外付けHDDを装着した。 段々とNASキットが欲しくなる。
http://wiki.friendlyarm.com/wiki/index.php/1-bay_NAS_Dock_v1.2_for_NanoPi_NEO/NEO2#Hardware_Spec
https://www.friendlyarm.com/index.php?route=product/product&path=93&product_id=222
http://akizukidenshi.com/catalog/g/gM-12591/
ま、我慢だけどね。
ルートを外付けHDDに変更するには
nand-sata-install
https://lubtech.geo.jp/2017-09-10/?p=3048
環境構築はこの前の手順で
https://continue-to-challenge.blogspot.com/2018/10/nextcloud.html
こちらは特にARM/X86_64で違いはなく、当時の方法を思い出して行けば大丈夫。
ただし、復旧までの暫定・データ取り出しを目的としているためSSLは除外した。
うーん。眠い。

0 件のコメント:

コメントを投稿