前回の記事では、rsnapshot ユーティリティを使用してローカル UNIX ホストをバックアップする方法を確認しました。
この記事では、このユーティリティを使用してリモート Linux ホストをバックアップする方法を確認します。
1.キーベース認証のセットアップ
前に説明したように、ssh-keygen と ssh-copy-id の記事または openSSH の記事で説明されているように、鍵ベースの認証をセットアップします。
[root@local-host]# ssh-keygen [root@local-host]# ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
2.サーバー間でログインなしのパスワードを確認する
パスワードを入力せずに、ローカル ホストからリモート ホストにログインします。
[root@local-host]# ssh remote-host Last login: Sun Mar 15 16:45:40 2009 from local-host [root@remote-host]#
3. rsnapshot を構成し、リモート ホスト バックアップ ディレクトリを指定する
以下に示すように、/etc/rsnapshot.conf でリモート ホストの宛先バックアップ ディレクトリを定義します。この例では、
- root@remote-host:/etc – バックアップするリモート ホスト上のソース ディレクトリ。つまり、リモート バックアップ先ディレクトリです。
- リモート ホスト バックアップ/ – リモート ホストのバックアップが保存される宛先ディレクトリ。最後の手順で示したように、このディレクトリは local-host /.snapshots/{internal.n}/ ディレクトリの下に作成されることに注意してください。
# vi /etc/rsnapshot.conf backup root@remote-host:/etc/ remote-host-backup/ exclude=mtab,exclude=core
4. rsnapshot 構成のテスト
構成テストを実行して、rsnapshot が適切にセットアップされ、Linux rsync バックアップを実行する準備が整っていることを確認してください。
# rsnapshot configtest Syntax OK
5. rsnapshot の Crontab エントリを追加
rsync の毎時および毎日のバックアップ構成が rsnapshot cwrsync ユーティリティで適切にセットアップされていることを確認したら、次に示すように、この子犬を crontab にセットアップします。
# crontab -e 0 */4 * * * /usr/local/bin/rsnapshot hourly 30 23 * * * /usr/local/bin/rsnapshot daily
Linux crontab の例の記事をチェックして、crontab のセットアップと構成の方法を理解してください。
6.リモートホストのバックアップを手動で 1 回テストします
[root@local-host]# /usr/local/bin/rsnapshot hourly [root@local-host]# ls -l /.snapshots/hourly.0/ total 8 drwxr-xr-x 3 root root 4096 Jul 22 04:19 remote-host-backup drwxr-xr-x 3 root root 4096 Jul 13 05:07 localhost [root@local-host]# ls -l /.snapshots/hourly.0/remote-host-backup/ total 4 drwxr-xr-x 93 root root 4096 Jul 22 03:36 etc
トラブルシューティングのヒント
問題 :rsnapshot が エラー:/usr/bin/rsync が 20 を返しましたで失敗しました 以下に示すように。
[root@local-host]# /usr/local/bin/rsnapshot hourly rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(260) [receiver=2.6.8] ---------------------------------------------------------------------------- rsnapshot encountered an error! The program was invoked with these options: /usr/local/bin/rsnapshot hourly ---------------------------------------------------------------------------- ERROR: /usr/bin/rsync returned 20 while processing [email protected]:/etc/
解決策: これは通常、rsnapshot (rsync) を実行しているユーザーが、バックアップしようとしているリモート ディレクトリにアクセスできない場合に発生します。 rsnapshot を実行しようとしているユーザーに対して、リモート ホストのバックアップ ディレクトリに適切な権限があることを確認してください。