個人所有のファイルは、なくしてしまうと取り返しがつきません。 ぜひぜひ、バックアップをしましょう。 ここでは、cp をより強力にした rsync というコマンドでの ミラーリングによるバックアップを紹介します。
用意するもの
ports の net/rsync を使っても構いません。ソースからインストールする場合は、 展開して configure, make, make install でOKです。
% tar zxvf rsync-2.4.3.tar.gz
% cd rsync-2.4.3
% ./configure
% make
% su
Password:
# make install
rsync が /usr/local/bin にインストールされます。
トラブルシューティング
make したときに、という警告メッセージがでるかもしれません。 そのときは、 rsync のディレクトリ直下にある syscall.c の中の mktemp を mkstemp に書き直して make clean の後、make しなおします。 これは、テンポラルファイルの一意性を保証するための作業です。 ただし、これをやるとファイルの名前がちょっと変になるようです。
syscall.o: In function `do_mktemp': syscall.o(.text+0x2ed): warning: mktemp() possibly used unsafely; consider using mkstemp()
rsync ではリモートホスト間でのファイルの同期(ミラーリング)が できます。名前の通り、r 系コマンドなのですが、 ssh との共用もできるようです。
参考 URL:
http://funah02.eg.t.kanazawa-u.ac.jp/~sakai/computer/rsync.htmlしかしここでは、ローカルマシンに2台のハードディスクがある、 もしくは違うパーティションにあるディレクトリに ミラーリングする方法を紹介します。
(バックアップは違うハードディスクで取ることをお勧めします)/home を /home.bk にバックアップしたいとしましょう。 /home.bk はユーザに使われると面倒なので、 パーミッションを切っておきましょう。
# chmod 700 /home.bk rsync の基本的な使い方は、次の通りです。
ここで、/home/ や /home.bk/ の 最後の / を忘れないようにして下さい。
# rsync [options] /home/ /home.bk/ 主なオプションは次のようなものがあります。
-a : ファイルの属性などの情報を保ってコピーする -c : checksum を使う -u : より新しければ、更新しない -z : ファイルを圧縮しながら転送する --delete : 転送元のディレクトリにはないが、転送先のディレクトリにあるファイルを削除する --exclude: 転送元のディレクトリのうち、転送しないファイルを指定する例えば、次のような感じです。
# rsync -az --delete --exclude lost+found /home/ /home.bk/ ネットワーク越しに、今いるホストから、リモートの hostA に ssh を通して接続する場合には、-e ssh をつけます。
# rsync -az -e ssh --delete --exclude lost+found /home/ hostA:/home.bk/ コマンドラインで試して、よければ crontab に 登録して自動的にミラーリングするようにしておきます。