Ubuntu (Linux) と QNAP (NAS) 間で rsync - その 2 / 3
👉 その 1 では主に rsync コマンドの記述について説明したので、ネットワーク経由で NAS の指定した path にバックアップする方法の詳細については述べなかった。今回からは、その部分について、僕が試行した方法について説明する。
NAS の特定のフォルダを、NFS を使って自機にマウントして、自機のフォルダとして利用する
まず最初に僕がやったのが、NFS を使って自機にマウントして、自機のフォルダと見做せるようにし、rsync では、ローカルのフォルダー間での同期として扱うやり方である。この場合、rsync の dest_path の指定において、NAS のネットワークアドレスに関する(admin@XXX.XXX.XXX.XXX: の部分の)記述は不要となり、次のような形で済む:
rsync -auv --delete --progress ~/mydata /mnt/qnap/backup
Linux(UNIX 系 OS)の非常に優れた文化が、このように、ネットワークドライブであろうが、さらには、入出力デバイスであろうが、すべて「ファイル」としてアクセスできるように、スッキリと極めてスマートに整えられている所である。
それはいいとして、この場合、rsync 側では、ネットワークのことは意識する必要はなくなるものの、NFS を使ってマウントする際には、ネットワークアドレスを指定する必要があるので、実質的には違いはない。誰が請け負うかが変わっただけである。
1: QNAP 側 で NFS を設定する
QNAP 側では、「権限 > 共有フォルダ > NFS ホストのアクセス」で homes を「アクセス権:制限なし」にする。
2: Ubuntu 側で NFS を設定する
まず、NFS をインストールする:
apt-get install nfs-common
NAS の共有フォルダを、Ubuntu 側に NFS としてマウント:
- マウント用ディレクトリを用意:
mkdir /mnt/qnap
- マウントする:
mount -t nfs XXX.XXX.XXX.XXX:/homes/username /mnt/qnap
(参考:How To Set Up an NFS Mount on Ubuntu 14.04)
アンマウントは:umount -f -l /mnt/qnap
インターネット越しの場合はあまり適していないかもしれない
以上で、ローカルのフォルダー間での同期としての rsync が可能となる。
しかし、上の場合は、LAN で NFS をマウントする場合ならいいのだが、実家の NAS と繋げて使う場合など、インターネット越しで行う場合には、さらにハードルが上がる。
僕の場合、1) 実家の NAS と繋げるため VPN (PPTP) 環境を整え、2) VPN によって LAN として NAS と繋がる状態にしてから NFS をマウントし、3) その上で rsync するという、何ともまあ器用な真似を当初は行っていた。この目的だけのために、一々 VPN でつなげて使うというのもあまり手軽ではない気がしたので、この方法はやめて、rsync で直接インターネット越しに接続・同期作業を行うやり方に、切り替えることにした。それについては、また次回(👉 その 3)で説明することにする。ただし、結局このやり方をやめたと言っても、LAN で NAS と接続できるのであれば、NFS を使ったやり方は、普通にスマートだろうと思う。
コメント
コメントを投稿