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 によるバックアップを自動実行することができる。