バックアップを USB メモリと unison で

自宅 PC のバックアップをとってないことに気付いたので何とかしようと思いました。

  • とりあえずバックアップ対象は ~/ 以下だけでいいことにする
  • ~/ 以下が実は 200MB ぐらいしかないので USB メモリに入る

ということで以下,今日やったことをだらだらと書いてみます。なんかあたりまえなことがたくさん書いてあるかもしれません。

USB メモリのマウント

バイスファイルがどこかよくわからなかったりしました。結局 /dev/sdb1 だったようです。検索してみたら「メモリを挿して dmesg するとそれっぽい文字列が見える」というふうな情報を得たのでそうして当たりをつけましたが,もっと標準的な方法があるかもしれません。

とりあえず sudo mount /dev/sdb1 したらマウントポイントがわからんと怒られたので /etc/fstab に適当に書きました。

/dev/sdb1 /media/usb1 auto rw,user,noauto 0 0

書かなくても指定すればいいんですけど,まあ毎回指定するのも煩わしいので。

フォーマットからとりあえずコピーまで

USB メモリのフォーマットには,いくつかやり方があるみたいです。mkfs.ext4 というコマンドを見つけたので,とりあえず叩いてみたらできました。こんな感じで。*1

$ sudo mkfs.ext4 /dev/sdb1
$ sudo mount /dev/sdb1

バックアップを突っ込むところを作る。owner が root になってたので chown する。

$ cd /media/usb1
$ sudo mkdir backup
$ sudo chown kozima:kozima backup
$ cd backup

で,とりあえず何も考えずにコピーしてみました。(実際に打ったコマンド何だったか覚えてないけど)

$ mkdir -p home/kozima
$ cd home/kozima
$ cp -pr ~ .

風呂に入ってる間にコピー終わりました。なんかホームディレクトリ直下にたまたま syslog のコピー置いてたせいで permission denied とか言われてましたけど,まあどうでもよかったので無視しました。

その後の同期 (unison 使ってみる)

で,同期とるのに unison 使ってみようって思って profile 書きました。.unison/backup.prf に以下の内容を。

batch = true
owner = true
group = true
force = /

root = /
root = /media/usb1/backup

path = home/kozima

# safely skipped
ignore = Path home/kozima/tmp
ignore = Path home/kozima/backups

# cause an error
ignore = Path home/kozima/.unison/unison.log
ignore = Path home/kozima/.aptitude

# maybe ok to skip
# ignore = Regex home/kozima/\.unison/ar[0-9a-f]*
# ignore = Path home/kozima/\.mozilla/firefox/........\.default/Cache

*1:でも fdisk -l したら FAT16 になってるけど mount で見ると ext4 になってて,どういうことかよくわからない