[QNAP]Tiny Core LinuxからNASに定期バックアップ

  • 投稿日:
  • 更新日:2016/03/09
  • by
  • カテゴリ:

せっかくのNASですから

QNAPのTS-212Pを導入してサーバ管理が怠惰になりましたが、今回はTiny Core Linuxで走るサーバからQNAPに定期バックアップをしてみようと思います。

QNAP側の設定

QNAPの管理画面に入り、コントロールパネルからネットワークサービスを選び、Win/Mac/NFSを選択します。

QNAP-NFS-1.pngQNAPのコントロールパネル

この画面で、「NFS v2/v3サービスを有効にする」というチェックボックスがあります。これを選択状態にして「適用」すれば、NFSが有効になります。

公開するフォルダの設定

NFSで公開するフォルダは、通常の共有フォルダですが、コントロールパネルの「権限設定」→「共有フォルダ」で共有したいフォルダ設定の画面を出します。

QNAP-NFS-2.png共有フォルダー設定画面

上の図で、赤枠で囲んであるボタンが共有フォルダー権限の設定です。これを押すと、下の画面になります。

QNAP-NFS-3.png共有フォルダー権限の設定

上の赤枠で囲った「権限タイプの選択」を「NFSホストのアクセス」にして、「許可するIPアドレスまたはドメイン名」の設定を自分のローカルネットワーク(たとえば192.168.0.0/255.255.255.0)にします。

確認(オプション)

設定の確認方法ですが、これはオプションです。うまく動かない時に確認してみてください。

QNAPにsshでログインし、/etc/exportsにNFSで公開したいパスが記述されており、そのアクセス元の設定が自分のサブネットになっていることを確認します。

$ ssh admin@192.168.0.123
[~] # cat /etc/exports
"/share/MD0_DATA/mynfs" 192.168.0.0/255.255.255.0(rw,async,no_subtree_check,insecure,no_root_squash)

上の例は、NASのアドレスが192.168.0.123で、サブネットが192.168.0.0/24の場合です。青字の部分が環境によって違うはずです。

TinyCore側の設定

TinyCoreでNFS(クライアント)を使うにはnfs-utilsパッケージとportmapパッケージが必要なのでロードしておきます。私は最初portmapを忘れてハマりました。

tce-load -wi nsf-utils
tce-load -wi portmap

起動時にNFSをマウントするように、bootsync.shに以下のような記述を追加しています。

mkdir /mnt/qnap
portmap start
mount -t nfs 192.168.0.123:/mynfs /mnt/qnap

青字の部分は先ほどのQNAP側の設定と同じで、環境によって変わる部分です。

自動バックアップ

今回は、バックアップのためのスクリプトファイルを作りました。

#! /bin/sh
sudo rsync -av /mnt/sda1/ /mnt/qnap/sda1/
sudo rsync -av /mnt/sda2/ /mnt/qnap/sda2/

ここでは、/mnt/sda1および/mnt/sda2がバックアップ対象とし、それをNAS上の/mnt/qnapにrsyncで差分コピーしています。

これを適当なパスに保存しておきます。ここでは仮に/usr/local/bin/backup.shとします。

定期的にこのスクリプトを走らせるために、/var/spool/cron/crontabs/rootに以下の設定を加えています。

00 03 * * * /usr/local/bin/backup.sh | logger -t backup -p local0.info

これで毎日3時にバックアップをとります。

修正をしたので、/opt/.filetool.lstに上記のbackup.shのパスを追加して、

$ filetool.sh -b

でファイルをバックアップしておきます。

以上で日次バックアップが走ります。backup.shとcrontabの設定を変えればバックアップのタイミングを変えたり、ディスクによって頻度を変えたりすることも容易ですね。

こちらもよく読まれています