| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
rsyncによるバックアップ
rsyncの構文は
rsync [オプション] コピー元 コピー先 |
である。
主なオプションは以下の通り
| オプション | 説明 |
|---|---|
| -a | オプションを「-rlptgoD」と指定するのと同じ。 基本的にこのオプションを利用する。 |
| -D | デバイスファイルを保持したままコピーする |
| -e シェル | リモートシェルを指定する。 デフォルトはSSH。 |
| -g | グループ情報を保持したままコピーする |
| -H | ハード・リンクをそのままコピーする |
| -l | シンボリック・リンクをそのままコピーする |
| -n(--dry-run) | 実際に処理は行わず、動作だけ表示。 |
| -o | オーナ情報を保持したままコピーする。 |
| -p | パーミッションを保持したままコピーする。 |
| -q | 転送情報を表示しない。 |
| -r | ディレクトリ以下の各ディレクトリを再帰的にコピーする。 |
| -t | タイムスタンプを保持したままコピーする。 |
| -u | 追加されたファイルのみコピーする。 |
| -v | 処理中のファイル名を表示する。 |
| -z | データを圧縮して転送する。 |
| --delete | コピー元で削除されたファイルは、コピー先でも削除する。 このオプションを指定しない場合、コピー元で削除されたファイルはコピー先に残る。 |
| --existing | 更新されたファイルのみをコピーし、追加されたファイルは無視する。 |
| --exclude=パターン | パターンに一致するファイルをコピーしない。 |
| --exclude-from=ファイル名 | ファイル名に記述されたパターンと一致するファイルをコピーしない。 |
| --include=パターン | パターンに一致するファイルをコピーする。 |
| --include-from=ファイル名 | パターンに一致するファイルをコピーする。 |
| --stats | rsyncアルゴリズムの転送効率を表示する。 |
| -h | ヘルプの表示。 |
「/home」以下のディレクトリを外付けハードディスクにバックアップする場合。
なお、外付けハードディスクを「/mnt/backup」にマウントし、「/mnt/backup/home」以下にバックアップするものとする。
Unix# rsync -avz --delete /home/ /mnt/backup/home/ |
コピー元のディレクトリ名の最後の「/」を付加するかどうかで挙動が変わる。
「/」を付加すると、ディレクトリ配下がバックアップされるが、付加しない場合、ディレクトリを含めてバックアップされる。
上記の例だと
Unix# rsync -avz --delete /home/ /mnt/backup/home/ <= 「/mnt/backup/home/」以下に「/home」以下がバックアップされる Unix# rsync -avz --delete /home /mnt/backup/home/ <= 「/mnt/backup/home/home/」以下に「/home」以下がバックアップされる |
バックアップ対象のマシンとは別のバックアップ用のマシンを用意し、バックアップ機へSSHによる接続を行い、バックアップを行う。
この時、自動でバックアップを行うようにする為、パスフレーズ無しでログイン出来るようにする。
また、バックアップ対象のファイルによっては読み取りにroot権限が必要な為、rootによるログインを許可し、鍵認証のみを許可する。
なお、SSHの基本的な設定は完了しているものとする。
バックアップ元マシンでの設定
rootになり、キーペアを作成する。
この時、パスフレーズを空にして作成する。
Unix# ssh-keygen -t rsa <= SSH2で公開鍵・秘密鍵を作成 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): <= 空Enter Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): <= 空Enter(パスフレーズを空にする) Enter same passphrase again: <= 空Enter(パスフレーズを空にする) Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: cc:8e:b4:8b:88:f0:4e:28:ce:80:67:48:5a:de:36:9c root@Unix.crimson-snow.net |
作成された「/root/.ssh/id_rsa.pub」をバックアップ機にコピーする。
コピー方法はフロッピー等の外部媒体を用いたりする。
バックアップ先マシンでの設定
バックアップ機からコピーした公開鍵を公開鍵群に追加する。
Unix# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys <= 公開鍵の追加 Unix# rm /root/.ssh/id_rsa.pub <= 元のファイルを削除 |
SSHサーバの設定を変更し、rootでのログインを可能とする。
ここでは主に設定する部分のみ記述しているので、その他は環境に合わせて設定すること。
Unix# vi /etc/ssh/sshd_config <= 設定ファイルの編集 PasswordAuthentication no <= パスワードでのログインを禁止(鍵方式のみ許可) PermitRootLogin yes <= rootでのログインを許可する Unix# /etc/init.d/sshd restart <= SSHサーバの再起動 |
一度、バックアップ元マシンからバックアップ先マシンへSSHでログインし、パスフレーズ無しでログインできる事を確認する。
なお、バックアップ先マシンのIPアドレスを「192.168.0.3」としている。
Unix# ssh root@192.168.0.3 <= バックアップ先マシンへSSHでログイン |
rsync+SSHによるバックアップ
バックアップ先マシンでrootになり、rsyncコマンドを実行する。
ここではバックアップ先マシンのIPアドレスを「192.168.0.3」とし、バックアップディレクトリを「/home」、
バックアップ先ディレクトリを「/home/backup_home」としてバックアップする場合。
Unix# rsync -avz --delete /home/ 192.168.0.3:/home/backup_home/ |
バックアップの自動実行
cronに登録して自動実行する。