Red Hat Linux でリモートマシンへバックアップ(rsync & cron)




Red Hat Linux で rsync コマンドと cron を使ってリモートマシンへ
定期的に自動でバックアップを取得する。

rsync コマンドの使用方法はこちらを参照。
Red Hat Linux でリモートマシンへバックアップ(rsync)

ここでのポイントは、パスワードを聞かれずに rsync でリモートマシンに接続すること。

今回は、ssh の認証に鍵による認証を利用することによって実現する。

設定は次の通り。

バックアップ元ホスト(rsync を実行する方)にて、rootのキーペアを作成

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@[host name]

上記コマンド実行後に作成された /root/.ssh/id_rsa.pub を
リモートホスト(バックアップ先)に設置する。
FTP や SSH やフロッピーディスクを使用してコピーする。

id_rsa.pub を /root/.ssh に置いたとして、
次にこれを鍵束に追加する。

# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

さらに、/etc/ssh/sshd_config を編集して SSH の認証方法を
パスワード認証から鍵による認証に変更する。

また、rsync でバックアップする際に root でログインする必要がある場合、
SSH を root でログインできるようにしておく必要があります。

root によるログインを許可
PermitRootLogin yes

パスワード認証を使わずに鍵による認証を使う
PasswordAuthentication no

sshd を再起動して設定を反映

/etc/init.d/sshd restart

rsync を実行する前に、まずは SSH で普通にログインしてみる。

# ssh root@1.1.1.2
Last login: Tue May 29 18:47:40 2007 from 1.1.1.1
[root@test2.rhel ~]#

鍵による認証が行われたため、何も聞かれずにログインできた。

続いて、rsync による接続を試してみる。

# rsync -avz --delete -e ssh /var/log/audit/ 1.1.1.2:/tmp/test
building file list ... done

sent 71 bytes recieved 20 bytes 16.55 bytes/sec
total size is 164700 speedup is 1809.89

今回は、差分がなかったためファイル転送は行われなかったが、
パスワード等を聞かれずに接続することができた。

これで、cron を使って rsync によるバックアップを自動実行することができる。