KennyQi Blog
KennyQi(ケニーチー)のブログへようこそ
Web制作のメモや息抜きブログ。
ウェブ開発・デザイン・Nucleusのメモや旅日記などを綴っています
サーバ間でのファイル同期をrsyncとsshで実現
10/18 | Webシステム | Posted by: kennyqi
CentOSにて、SSHとrsyncを使ってファイル同期する方法です。
WWWサーバを複数台用意して負荷分散する場合に、
両方にファイルアップするのが面倒になったんで、調べました。
★ファイル同期のイメージ
サーバA(仮にIP=192.168.0.5 同期元=こちらのファイルを同期します)
サーバB(仮にIP=192.168.0.6 同期先=こちらにファイルをコピー&上書きします)
A$ サーバAにtelnetもしくはssh接続しています
B$ サーバBにtelnetもしくはssh接続しています
$は一般ユーザ
#はroot
をあらわします。
ここで同期するのはディレクトリとそれ以下のファイルです。
rsync のオプションでいろいろと設定できるようです。
今回は、
■同じファイルやディレクトリがある場合は、新しいファイルだけを上書きします。
■元のパーミッションやグループ、タイムスタンプなどを保持したまま同期します。
■コピーしたファイルのログをとります。
1)サーバBにユーザをつくる。
サーバA上の同期するファイルの所有者と同じにユーザ名にしておきます。
B# useradd test
B# passwd test
以下、パスワードを設定する
2)サーバBのホームディレクトリにssh公開鍵の置き場をつくります。
B# su - test
B$ mkfir /home/test/.ssh
3)サーバAにユーザtestで接続して、公開鍵を作ります。
パスフレーズを何も入力しないのがポイントです。
A$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Created directory '/home/test/.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:
e2:41:ee:8d:63:08:f9:f4:xx:xx::xx:xx:xx test@192.168.0.5
4)3で作成した公開鍵をコピー先(サーバB)にコピーする
A$ cd /home/test/.ssh
A$ scp id_rsa.pub test@192.168.0.6:~/.ssh/
test@192.168.0.5's password:********
5)転送先サーバーで公開鍵の名前を変更します。所有者、権限も設定します。
B$ mv id_rsa.pub authorized_keys
B$ chown test:test /home/test/.ssh/authorized_keys
B$ chmod 600 authorized_keys
6)パスワード入力無しでsshログインできるか確認します。
AからBに接続しにいきます。
A$ ssh test@192.168.0.6
7)接続できたらcronを設定します。ここでは5分おきにバックアップしています。
A$ crontab -e
*/5 * * * * rsync -auz -e ssh /home/test/data/ test@192.168.0.6:/home/test/data/ > /home/test/logs/rsync.log 2>
WWWサーバを複数台用意して負荷分散する場合に、
両方にファイルアップするのが面倒になったんで、調べました。
★ファイル同期のイメージ
サーバA(仮にIP=192.168.0.5 同期元=こちらのファイルを同期します)
サーバB(仮にIP=192.168.0.6 同期先=こちらにファイルをコピー&上書きします)
A$ サーバAにtelnetもしくはssh接続しています
B$ サーバBにtelnetもしくはssh接続しています
$は一般ユーザ
#はroot
をあらわします。
ここで同期するのはディレクトリとそれ以下のファイルです。
rsync のオプションでいろいろと設定できるようです。
今回は、
■同じファイルやディレクトリがある場合は、新しいファイルだけを上書きします。
■元のパーミッションやグループ、タイムスタンプなどを保持したまま同期します。
■コピーしたファイルのログをとります。
1)サーバBにユーザをつくる。
サーバA上の同期するファイルの所有者と同じにユーザ名にしておきます。
B# useradd test
B# passwd test
以下、パスワードを設定する
2)サーバBのホームディレクトリにssh公開鍵の置き場をつくります。
B# su - test
B$ mkfir /home/test/.ssh
3)サーバAにユーザtestで接続して、公開鍵を作ります。
パスフレーズを何も入力しないのがポイントです。
A$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Created directory '/home/test/.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:
e2:41:ee:8d:63:08:f9:f4:xx:xx::xx:xx:xx test@192.168.0.5
4)3で作成した公開鍵をコピー先(サーバB)にコピーする
A$ cd /home/test/.ssh
A$ scp id_rsa.pub test@192.168.0.6:~/.ssh/
test@192.168.0.5's password:********
5)転送先サーバーで公開鍵の名前を変更します。所有者、権限も設定します。
B$ mv id_rsa.pub authorized_keys
B$ chown test:test /home/test/.ssh/authorized_keys
B$ chmod 600 authorized_keys
6)パスワード入力無しでsshログインできるか確認します。
AからBに接続しにいきます。
A$ ssh test@192.168.0.6
7)接続できたらcronを設定します。ここでは5分おきにバックアップしています。
A$ crontab -e
*/5 * * * * rsync -auz -e ssh /home/test/data/ test@192.168.0.6:/home/test/data/ > /home/test/logs/rsync.log 2>
Search
New Items
12/22, 2008
Postfix ハイフン始まりのメールアドレスが受信できないとき
More...
12/22, 2008
Linuxコマンドでマシンスペックを確認する方法
More...
11/15, 2008
SSDと7200rpmのHDDどっちが速い?
More...
10/18, 2008
PHPでUTF8の携帯サイト~Form入力値でAUだけ文字化け
More...
10/18, 2008
サーバ間でのファイル同期をrsyncとsshで実現
More...
New Comments
06/10 17:48:27
ああああ
ああああ>>
01/09 00:43:25
kennyqi
どうもありがとうございます。 写真はわけたほうがみやすい...>>
01/09 00:36:48
Motoo
早速旅行記おめでとうございます。 ただ、画像がおおきすぎ...>>
01/08 07:41:43
kennyqi
FuncyURLにしたため、テンプレートを変更しました。 Google/...>>
01/06 17:07:07
kennyqi
テストどうもありがとうございますw コメント投稿時のメ...>>
Archives
カテゴリ別記事リスト
12月, 2008
11月, 2008
10月, 2008
9月, 2008
5月, 2008
3月, 2008
2月, 2008
1月, 2008
12月, 2007
Memo
» MuKuLCast.comを聴く
New Items
12/22, 2008
Postfix ハイフン始まりのメールアドレスが受信できないとき
More...
12/22, 2008
Linuxコマンドでマシンスペックを確認する方法
More...
11/15, 2008
SSDと7200rpmのHDDどっちが速い?
More...
10/18, 2008
PHPでUTF8の携帯サイト~Form入力値でAUだけ文字化け
More...
10/18, 2008
サーバ間でのファイル同期をrsyncとsshで実現
More...
New Comments
06/10 17:48:27
ああああ
ああああ>>
01/09 00:43:25
kennyqi
どうもありがとうございます。 写真はわけたほうがみやすい...>>
01/09 00:36:48
Motoo
早速旅行記おめでとうございます。 ただ、画像がおおきすぎ...>>
01/08 07:41:43
kennyqi
FuncyURLにしたため、テンプレートを変更しました。 Google/...>>
01/06 17:07:07
kennyqi
テストどうもありがとうございますw コメント投稿時のメ...>>
Archives
カテゴリ別記事リスト
12月, 2008
11月, 2008
10月, 2008
9月, 2008
5月, 2008
3月, 2008
2月, 2008
1月, 2008
12月, 2007
Memo
» MuKuLCast.comを聴く