LANDISK HACKING DIARY | ||
Since2005/8/17 | ||
TOPへ戻る | ||
INDEX | ||||||||||||||||||||||||||||||||||||||||
1. rsync によるディレクトリ間の同期 2. rsync with ssh |
||||||||||||||||||||||||||||||||||||||||
rsync によるディレクトリ間の同期 | ||||||||||||||||||||||||||||||||||||||||
ここでは、rsync による同期を行ってみることにする。いままでは、cp や tar によるバックアップしか使ったことがなかったが(筆者はこれでも十分だが)、rsync はもっと便利そうなのでようやく使ってみようかという気分になった(おそっ)。このページより前に、「第08回 「dump/restore によるインクリメンタルバックアップ」 というのも作成しているので合わせて見ておくといいかも(?)。同期をとる環境として、ネットワーク越しのマシンにバックアップしてもいいのだが、都合よくLinux が何台もあるわけではないので、USB接続された外付けHDDと同期をとってみることにする。 rsync にはいくつものオプションが装備されている。以下では、使いそうなものをピックアップしてみる。
rsync をインストールする。
バックアップ先のリムーバブルHDDをマウントする。リムーバブルHDDは2つのパーティションに切ってあり、バックアップ先(/dev/sda2)のマウントポイントを、/share/usb2 とする。
/etc ディレクトリを同期するには以下のようにする。/etc ディレクトリを /share/usb1/debian/etc/ にコピーしている。注意点として、bash の場合は末尾の / はあってもなくても同じ意味になるが、rsync の場合は、コピー元ディレクトリ名の末尾には、必ず / を付けておくようにする。そうでないと、バックアップした際に、/etc/etc/ とディレクトリが1階層深くなって保存されてしまう。/var/spool/squid は必要ないので、exclude に指定しておく。
一通り、バックアップに成功したのを確認したら、次にシェルスクリプトを作成する。ネットワーク上のマシンにコピーしているわけではないので、rm -rf /share などと操作ミスをしてしまえば、いくらリムーバブルHDDに保存したとはいえ、ファイルは一瞬のうちに消え去ってしまうので、バックアップが終了したら、Read Only にしておく。
2回目のバックアップからは更新されたファイルだけを検出し、バックアップを行うようになるのでシステムへの負荷が少なくて済むので大変便利ですね。 |
||||||||||||||||||||||||||||||||||||||||
rsync with ssh | ||||||||||||||||||||||||||||||||||||||||
どうせ、rsync について触れたのだから、ssh 経由でリモートマシンと特定のディレクトリを同期してみることにする。リモートマシンにも rsync をインストールしておこう。また、公開鍵、秘密鍵などは既に作成してあるもとして話を進める。また、slogin や scp などがマシン間ですでに行えていることが大前提だ。 以下のコマンド例では、/home/kororo/audio を172.16.50.2 へSSH経由でコピーしている。一見すると、コマンド名こそ違うが、scp コマンドと同じような動作をする。SCP と違う点は、rsync が両ディレクトリ間で同期できるという点だろう。このとき、相手先には、audio ディレクトリが存在しなくても自動で作成される。
|
||||||||||||||||||||||||||||||||||||||||
参考文献 | ||||||||||||||||||||||||||||||||||||||||
⇒rsync |
TOPへ戻る | ||
Copyright © KORO All Rights Reserved. |