リモート同士でrsync

このエントリーをはてなブックマークに追加
[`livedoor` not found]
[`yahoo` not found]
このエントリーを Google ブックマーク に追加
[`evernote` not found]

リモート同士でrsyncってあんまりやらないんですかね?
前にやった記憶あるけど、忘れてしまって探したけど検索しても自分の探してる情報になかなかたどりつけなかった。
なんかもっと簡単な方法があったっけ・・・と思いつつ、とりあえず以下のような形。

A とB とCってサーバーがあって
AのuserとBのuser1は相互にsshでの接続許可
AのuserとCのuser2も相互にsshでの接続許可
Bのuser1とCのuser2間は sshで接続は許可されていない。

この状態でBからCにrsyncしたかった。
ちなみに鍵認証のパスワード入力いらずの接続前提。

Bサーバーのuser1の /home/user1/hoge.txt

Cサーバーのuser2の /home/user2/
にrsyncしたいとして

Bにuser1でログインしてから

rsync -av -e "ssh -l user Aサーバー ssh" /home/user1/hoge.txt user2@Cサーバー:/home/user2/

もっとやってしまうと
Aサーバーにuserでログインしている状態でこんな風

ssh -l user1 Bサーバー "rsync -av -e \"ssh -l user Aサーバー ssh\" /home/user1/hoge.txt user2@Cサーバー:/home/user2/"

phpとかのスクリプトからなんとかしたいときはexecとかでこれを実行すればさくっと同期はできるはず。

3000台のサーバーがあったとしてその中の1台(=Aサーバー)だけ全サーバーと相互にsshできるのであれば、その1台を中継させてどのサーバーからもrsyncできるってことになるので1台1台ログインしなくてもAサーバー上でスクリプト回せば簡単同期。

使わない時はAサーバーのsshを/etc/hosts.allow /etc/hosts.denyとか単純な方法ででも、各サーバーからAサーバーへののssh通信を制限しておいたほうがいいとは思う。

 

hidezushi について

有限会社ネットグルーヴワークス
カテゴリー: ひとりごと。 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です