LoginSignup
0
2

More than 5 years have passed since last update.

バックアップツールbupを使ってみた

Last updated at Posted at 2017-09-19

Linuxでのファイルバックアップツールには、tar, rsync, unison等色々ありますが、ここではbupというツールを試してみました。
日本語の情報があまりに少ないので、色々試してみた結果をメモ程度に残しておきます。

bupとは

bupとは、gitと互換性のあるデータ構造を用いてファイルのバックアップを行うツールであり、操作体系もgitと似通っています。gitとの相違点として以下のような点があります。

  • デフォルトでリポジトリがホームディレクトリ(~/.bup/)に置かれる。(バックアップ先がリモートサーバーの場合はリモート上の~/.bup/)
  • 基本的にリポジトリがシステムごとに1個しか存在しないので、バックアップに名前を付けることができる。(この名前はgitでいうbranchに相当)

bupを用いたバックアップ

通常のバックアップ手順

  1. bup init ... システムにbupリポジトリを作成(1回のみ)
  2. bup index dir1/filename ... ファイルをINDEXに登録
  3. bup save -n dir1 dir1 ... ファイルをバックアップ(コミットを作成)

bup init

bup initを実行すると、ホームディレクトリに~/.bupディレクトリが作成されます。このディレクトリはgitでいう.gitディレクトリと同じ構造であり互換性があります。

bup index dir1/file1

以下のようなフォルダ階層を仮定します。

├── dir1
│   ├── dir3
│   │   └── file5
│   ├── file1
│   └── file2
├── dir2
│   ├── file3
│   └── file4
└── mnt

bup indexでは、バックアップを行いたいファイルを指定します。例えばbup index dir1/file1とすれば上記のfile1がバックアップ対象としてINDEXされます。また、bup index dir1/dir3のようにすればdir3中のすべてのファイル、すなわちfile5がバックアップ対象となります。バックアップ対象は同時に複数指定することもできます。

bup save -n dir1 dir1

bup saveでは、INDEXされたファイルをバックアップします。この際、~/.bup-nで指定した名前のブランチが作成され、変更内容のコミットが作成されます。このときのコミットメッセージは以下のようなものになります。

    bup save

    Generated by command:
    ['/usr/lib/bup/cmd/bup-save', '-n', 'dir1', 'dir1/']

なお、バックアップされるディレクトリはINDEXされたものの中で指定されたディレクトリdir1以下のもののみとなります。すなわち、dir2以下のファイルをINDEXした状態でbup save -n dir1 dir1をしたとしても当該ファイルのバックアップは行われず、INDEXされたままになります。

リモートへのバックアップ

bup saveの際、リモートを指定することでリモートサーバーにバックアップを行うことが出来ます。

$ bup save -r host:path -n dir1 dir1

ここでhostではsshで接続する際のホスト名を指定します。pathを省略するとデフォルトのパス(~/.bup)が使用されます。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2