サーバで作ったバックアップファイルを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はやっぱり便利。