Nextcloudサーバのデータ自動バックアップ設定 snap版

Nextcloudサーバのファイルのみバックアップするのでしたら。クライアントPCの1台に、すべてのファイルを同期すれば、最新ファイルのバックアップは行えそうです。

しかしファイルの変更履歴や削除済みファイル(ごみ箱)のバックアップを行うには、ファイルの同期では難しそうです。

さらにカレンダーやアドレス帳等、追加アプリケーションを本格的に使いたい場合、ファイルのバックアップのみでは足りず、データベースのバックアップが必要になります。

先日、Intel NUCにNextcloudサーバを構築しました。

ファイルの変更履歴やデータベースすべてをバックアップするために。こちらに外付けUSB HDDを取り付けて、夜間に自動バックアップを行うように設定してみたいと思います。


Nextcloudサーバのデータ自動バックアップ設定 snap版

基本的にこちらの記事の手順に沿うかたちです。

以前、Nextcloudpiからsnap版Nextcloudへデータの引越しを行いました。

こちらで行ったバックアップを、毎晩自動で行いましょう、という内容になります。

OSはFedora 28を使用しました。


外付けUSB HDDのフォーマット

USB端子にHDDを接続して、フォーマット後オートマウント設定を行おうと思います。

rootログインして操作しましたため、sudoは省略致しました。

  1. USB HDDを取り付けます。
  2. fdiskまたはcfdiskでパーティションを作成します。

  3. mkfsでフォーマットします。
  4. あとでUUIDでマウントしますので、パーティションのUUIDを確認しておきます。

USB HDDオートマウント設定

  1. autofsをインストールします。
  2. マウント用ディレクトリを作成します。
  3. /etc/auto.master.d/usb.autofsファイルを作成します。

    /usbディレクトリのオートマウント設定は、/etc/auto.usbファイルに紐づく内容です。
  4. /etc/auto.usbファイルを作成します。先ほどフォーマットしたパーティションは、/usb/hdd1にマウントされる設定です。


  5. autofsサービスを起動します。
  6. 正しくマップされているか確認します。


Nextcloudバックアップスクリプト作成

  1. バックアップ先のディレクトリを作成しておきます。

    USB HDDのnextcloudディレクトリにバックアップしようと思います。
  2. 次のようなスクリプトを作成しました。

  3. 実行可能に設定します。

スクリプトは次のような内容です。

  1. メンテナンスモードON
  2. nextcloudディレクトリ(config、extra-apps)をコピー
  3. dataディレクトリをコピー
  4. mysqlcumpでデータベースバックアップ
  5. メンテナンスモードOFF

スクリプトを実行することで、いつでも自動バックアップが可能です。スクリプト実行中は、メンテナンスモードのため、Nextcloudサーバへアクセスできなくなります。

※18.10.23追記:稀にメンテナンスモードの切り替えができず、バックアップに失敗する場合があるようです。バックアップ前にnextcloudを再起動するように、2番のスクリプトを変更してみました。


夜間自動実行の設定

cronでバックアップスクリプトを自動実行するように設定します。

この場合、毎晩1時にバックアップが開始されます。


実際にバックアップにかかる時間は?

rsyncによるファイルコピーは、最初の1回目はフルコピーとなり、データのサイズに比例した時間がかかると思います。

2回目以降は差分コピーになりますので、ファイルの変更の大小により、時間がかわると思います。あまり差分が無ければ、フルコピーよりも時間がかからないかと思います。

Intel NUC(Celeron J3455)のUSB-3.0 2.5インチHDDを取り付けてフルコピーを行った場合、かかった時間は・・・

1時間15分で244GBのバックアップが行われました。

およそ195GB/1時間の計算になります。

当分は就寝中にバックアップが行われて、朝にはサーバが使用できる状態に戻っていると思いますので、安心して就寝しようと思います。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク