フォルダを1日おきに自動バックアップしてNextcloudで分散コピーするには

まあリアルタイムに分散コピーする場合、Nextcloudさんを使用すれば良いかと思いますが。

たとえばThunderbirdさんのメールデータ等。

サイズが大きくて圧縮が必要だったり。ファイルの変更が頻繁だったり。

Nextcloudは使いつつ、リアルタイムで同期する程ではなくて、1日1回くらい、お昼休み中にでもバックアップしたいな、という判断の場合。

ちょっとしたシェルスクリプトやバッチファイルで実現する方法を記録しておこうと思います。


フォルダの自動バックアップ設定

Windowsの場合

メールの送受信ソフトウェア、thunderbirdのプロファイルのバックアップを例にしたいと思います。バックアップの対象フォルダは、%APPDATA%\Thunderbirdになります。

バックアップは7-Zipさんを使用させて頂きました。

  1. 予め7-Zipをインストールしておきます。Windowsが64ビット版の場合、7-Zipも64ビット版をダウンロード・インストールします。
  2. Nextcloudの同期フォルダに、何か「バックアップ」的なフォルダを作成します。
  3. バックアップ用のバッチファイルを作成します。

    次のような内容です。

    7行目にバックアップ対象のフォルダ、6行目にそのフォルダがあるパスを指定します。
  4. バッチファイルを実行すると、バッチファイルと同じフォルダにバックアップが作成されます。ファイル名は「<ホスト名>_<バックアップ対象のフォルダ>_<日時>.7z」になります。
  5. バッチファイルの18行目が「2」になっていますが、これは最新のバックアップを2つ残す、という意味になります。バッチファイルを実行するたびにバックアップが行われますが、古いバックアップは自動削除されます。
  6. タスクスケジューラにバッチファイルを登録するためのXMLファイルを作成しました。文字コードはBOM付きのUnicode、改行コードはCRLFになります。

    次の内容になります。

    5行目のAuthorタグは、タスクを実行するユーザ名、46行目のCommandタグは、作成したバッチファイルを指定します。
  7. コンピューターの管理を起動します。

  8. タスク スケジューラ→タスク スケジューラ ライブラリをクリックします。
  9. タスクのインポートをクリックして、作成したXMLファイルをインポートします。
  10. タスク名や、トリガー欄の実行日時、操作欄のバッチファイルが間違っていないか確認後、OKをクリックします。
  11. 追加されたタスクを右クリック→実行するを選択、バックアップが行われるか確認します。

Linuxの場合

3番がシェルスクリプトになります。

内容はこのような感じでしょうか。

9番はcronになります。

次のような内容です。

こちらもWindowsと同じように、最新の2つのバックアップファイルが残る感じです。


これでお昼休み中にメールが自動バックアップされて、バックアップ後にNextcloudサーバへアップロードされるようになったかと思います。

作成したバッチファイルとXMLをコピー/変更することで、メール以外の他のフォルダも、同様なバックアップができるかと思います。

宜しければお試し下さい。

スポンサーリンク

フォローする

スポンサーリンク