QNAPに「さくらのVPS」のシステムバックアップを自動でおこなう①
本日の目的
さくらのVPS上に構築しているubuntu20.04のシステムバックアップ&データバックアップを自宅のNASであるQNAPの機能を使って実装する。
前提条件
- システムバックアップはtimeshiftを利用する
- システムバックアップは任意のタイミング(手動で大きなアプリを導入等)
- DBは日次バックアップする
- QNAPのGUIから操作できるものとする
手順
- さくらVPS上のubuntuにqnap経由でrsyncできるように設定する
- crondによりpostgresのDBをn世代取得する
- TimeShiftによるubuntuのシステムバックアップ
- QNAP上でのバックアップ設定
さくらVPS上のubuntuにqnap経由でrsyncできるように設定
大きく分けて2パターンの手順がある。
どちらかで実施する。 手順1は、少し作業が多いが確実に動く(と思う) 手順2は、rsync用のユーザを作成しsudo/no passwordでrsyncできるような設定で動作を確認している。 一部不正確な部分もあることを了承してほしい。
手順1(RSYNCで直接連携させる)
rsyncdの設定ファイル+パスワードファイル、設定を有効化してrsyncを再起動させる必要がある。
/etc/rsyncd.conf [新規作成]
$ sudo nano /etc/rsyncd.conf
# # Global options # uid = root gid = root hosts allow = xxxx.myqnapcloud.com hosts deny = * list = true dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.gif *.png # # Module options # [timeshift] path = /timeshift/ read only = false auth users = user1 secrets file = /etc/rsyncd.secrets
QNAPのDDNSサービスを利用して、QNAP(自宅インターネット回線のIP)からのみ接続可能に設定。 他にもバックアップをとりたいフォルダがある場合は、それぞれ増やせばよい。
/etc/rsyncd.secrets [新規作成]
$ sudo nano /etc/rsyncd.secrets
user1:[password] user2:[password]
IDと認証パスワードのファイルとなる。
sudo chmod 0600 /etc/rsyncd.secrets
パスワードがそのまんま書いてあるのもあるので、root以外はアクセス不可にパーミッション変更する。
rsyncd(サーバ)の有効化準備
/etc/default/rsync [変更]
$ sudo nano /etc/rsyncd.secrets
RSYNC_ENABLE=true
rsyncの再起動(設定の有効化)
$ sudo systemctl restart rsync
手順2(SSH経由でRSYNCさせる)
rsync用のアカウントを作成。
$ sudo adduser rsync_op ntoh@moooi:~$ sudo adduser rsync_op ユーザー `rsync_op' を追加しています... 新しいグループ `rsync_op' (1005) を追加しています... 新しいユーザー `rsync_op' (1005) をグループ `rsync_op' に追加しています... ホームディレクトリ `/home/rsync_op' を作成しています... `/etc/skel' からファイルをコピーしています... 新しいパスワード: 新しいパスワードを再入力してください: passwd: パスワードは正しく更新されました rsync_op のユーザ情報を変更中 新しい値を入力してください。標準設定値を使うならリターンを押してください フルネーム []: 部屋番号 []: 職場電話番号 []: 自宅電話番号 []: その他 []: 以上で正しいですか? [Y/n]
必要な情報を追加。password等を設定
$ visudo [追記] rsync_op ALL=(ALL) NOPASSWD:/usr/bin/rsync
おまじない
該当ユーザでdesktop(VNCコンソールでも可)で一度ログインする。 これをしないと、なぜかqnap上の登録の途中で実施するテストに権限不足エラーが発生した。