子育てしながらエンジニアしたい

現在 7 歳 女の子の子育て中エンジニアによる、技術系 + 日常系ブログ。

Ubuntu から QNAP NAS にバックアップを取る

まえがき

バックアップ用に QNAP NAS TS-431Kを調達しました。

ここに、仕事用の様々な PC からバックアップを取ることにします。
Windows からは、QNAP 純正ユーティリティの NetBak Replicator が使えるので、それを使いました。

www.qnap.com

ただこのツールは Windows 専用。
Ubuntu 用には QSync というツールがありますが、これは Google Drive みたいな感じで、QNAP の特定ディレクトリをマウントするユーティリティのようです。
なので、これを使ってマウントしたうえで、rsync でバックアップを取ることにしました。

QNAP に Qsync Central を設定する

基本的には以下のドキュメントに書いてあるとおりです。

www.qnap.com

まず最初に QNAP の GUI から App Center を開きます。
そこで Qsync Central を検索してインストールします。

f:id:edosha:20210428093906p:plain
Qsync Central のインストール

次にメインメニュー -> アプリケーションから Qsync Central を開きます。
共有フォルダーを開き、バックアップ先にしたいディレクトリに権限付与を設定します。

f:id:edosha:20210428094249p:plain
権限付与

これで QNAP 側の設定は OK です。

Ubuntu に Qsync Client を設定する

Ubuntu で QNAP ユーティリティのページにアクセスし、Qsync の Ubuntu 用パッケージをダウンロードします。

www.qnap.com

f:id:edosha:20210428094549p:plain
Qsync Ubuntu

ターミナルを開き、ダウンロード先のディレクトリに移動します。
そこで以下のコマンドを叩きます。

$ sudo dpkg -i <download_file.deb>

インストールすると再起動せよと出るので、指示通りに再起動します。
すると起動後に Qsync Client が自動的に起動されます。
そこで QNAP 側のアドレスや ID を設定し、同期用のディレクトリを指定すれば完了です。

Ubuntursync によるバックアップを行う

まずは rsync をインストールします。

$ sudo apt update
$ sudo apt -y install rsync

次に rsync コマンドを発行します。

$ sudo rsync -auv --delete --progress src_path dest_path

src_path はバックアップしたいディレクトリ、dest_path は、さきほど設定した同期用のディレクトリです。
これで、バックアップが行われるようになります。

定期的に実行されるようにする

cron を使えば、定期的にバックアップを実行できます。
私の場合はいくつかのディレクトリをバックアップしたいので、簡単なシェルスクリプトを作って実行させるようにしました。
こんな感じです。

#!/bin/bash

echo 'password' | sudo -S rsync -auv --delete --progress src_path1 dest_path1
echo 'password' | sudo -S rsync -auv --delete --progress src_path1 dest_path1

password は sudo 用のパスワードです。
これをすることで sudo が自動的に実行されるようにしました。

最後に cron への設定です。

$ sudo crontab -e
0 3 * * * bash /home/user/backup.sh

これで毎日3時に、バックアップ用のスクリプトが実行されるようになりました。