サーバで作ったバックアップファイルをQNAP TS-251Dでダウンロードする手順
先日、ちょっとした手違いでサーバを起動できなくしました。
もちろん、データもすべて無くなってしまいました。
それまでバックアップファイルは毎日作っていたのですが、ダウンロードをしていなかったのでまったく意味がありませんでした。
なんとか、いろんな場所にあったバックアップファイルをかき集めて3ヶ月分の消失くらいで済みました。
実際には、Web上のキャッシュファイルからも集めたため、一部の画像を除いて復元はできました。
しかし、今回復旧できたのは、たまたま運が良かっただけです。
そのため、サーバ再構築の際にローカルにダウンロードするところまでを実装することにしました。
バックアップの仕方は、以下のサイトを参考にしました。
こちらを毎日実行することで、データベースと必要なファイル群のバックアップができます。
前回もここまでは実施していました。
今回は、このバックアップファイルを自動でダウンロードするようにします。
パソコンなどでも良いのですが、今回は常時起動しているNAS(TS-251D)で取得するようにしました。
いろいろと試行錯誤した結果、以下のやり方で成功しました。
前提
- サーバへは認証鍵方式のSSHのみ接続可能
サーバ側の設定
- バックアップ取得用ユーザーの作成
- パスワードなしの認証鍵の作成
NAS側の設定
- SSHで接続(ユーザーはadmin)
- 他の秘密鍵が「/root/.ssh/」にあったので同じ場所へ格納(好きな場所で良いはずです)
- 「/share/home/admin/.ssh/config」にサーバへの接続設定を書く
- cronを修正「vi /etc/config/crontab」
- コマンドは、scp configに記載した接続設定名:/backup/backup.tar.bz2 /share/homes/xx/backup/
- cronを確定 crontab /etc/config/crontab
- crondを再起動 /etc/init.d/crond.sh restart
参考サイト
NAS側の注意点
- cronの実行はadmin
- SSHの接続設定場所は「/share/homes/admin/.ssh/」
- 「~/」は「/root/」を指す(/share/homes/admin/ではないので注意)
- QNAP NASのホームディレクトリは「/share/homes/」
- SCPのコマンドは、接続設定:サーバのバックアップファイルの場所 NASの保存先
通常の運用アカウントは認証鍵+パスワードのため、このユーザーを利用すると、パスワードを要求されるため自動化ができません。
そのため、バックアップ取得用ユーザーを作ることにしました。
とりあえず、これで毎日NASに最新バックアップファイルが格納されるようになりました、
CentOS 8からの乗り換えもできたし、いろいろときれいになったし、データもなんとかなったので、結果的には良かったのですが・・・
コマンドを一つ間違えるだけですべて飛ぶので・・・転ばぬ先の杖です。マジで。
それにしても、このNASはやっぱり便利。