SSH経由のRsync、または何か他のもの?


10

私はOSXからLinuxまたはUnixのボックスでrsyncを使用しようとしましたが、あまり制御できません。私はこのようなことをしてきました

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/ 

返されるエラーは次のとおりです。

bash:rsync:コマンドが見つかりませんrsync:接続が予期せず終了しました(これまでに受信した0バイト)[レシーバー] rsyncエラー:/SourceCache/rsync/rsync-37.3/rsync/io.c(452でリモートコマンドが見つかりません(コード127) )[receiver = 2.6.9]

ただし、ドキュメントを読んだ後、実際にリモートホストにrsyncデーモンをインストールする必要があると思い始めています。

  1. リモートホストにrsyncサーバーをインストールする必要がありますか?
  2. 無料の代替案- GUIまたは非GUI - リモートホスト上で何かをインストールする必要はありませんか

ありがとう!


1
現在のコマンドで正確な問題は何ですか?
fideli、2010

@fideli、申し訳ありませんが、そのことを忘れていました。今すぐ質問を編集
Dan Rosenstark、2010

1
この質問に感謝しますが、タグを付けてrsyncもらえますか?
Andrew Grimm、

回答:


21

サーバーでrsyncコマンドが必要ですが、デーモンを実行する必要はありません。

サーバーで動作するrsyncバイナリを取得し、それを家のどこかに置き、このフラグをコマンドラインに追加します--rsync-path=/home/user/path/to/rsync

サーバーにrsyncをコピーしたくない場合は、scpまたはsshfsを使用できます。

sshfs user@host ~/sync/user-host
rsync -av ~/local-dir ~/sync/user-host/remote-dir

その場合、rsyncは完全にローカルで実行されますが、変更はサーバーに伝播されます。


特にサーバーがGoDaddyの安価なホスティングプランであり、サーバー上でrsyncを実行できるとは思えないので、私はそのソリューションをとても気に入っています。今のところ+1!
Dan Rosenstark、2010

OSXにsshfsをインストールする最も簡単な方法は何ですか?MacFuseまたはそれより簡単なものはありますか?
Dan Rosenstark、2010

MacFuse +(MacFusionまたはsshfs-static-leopard)、私は思います(私はOSXユーザーではありません)
Tobu

はいMacFuseはそれを行います。sshfsバイナリのダウンロードページで、拡張子が.gzのバイナリが提供されるだけです。したがって、gunzipするのではなく、名前を変更する必要があります。迷惑ですが、大丈夫です!ありがとう
Dan Rosenstark、2010

6

あなたはリモートホストにrsyncを持っている必要があります-必ずしもrsyncサーバー(とにかくssl接続を処理しないと思う)ではありませんが、ローカルボックスのrsyncはリモートボックスのrsyncと通信する必要があります。2つをリンクするためにsshを使用しています。

rsyncがリモートボックスに存在すると仮定すると、それはログインシェルにログインしているsshのデフォルトの検索パスにありません。リモートボックスの設定と権限に応じて、

  • --rsync-path =オプションを使用する
  • リモートSSHシェルのデフォルトのPATHを変更する
  • リモートsshシェルでrsyncのエイリアスを追加する
  • 実行されたリモートコマンドをrsyncへの絶対パスに変更する

または同様のもの。実行可能(副サーバー)としてのrsyncがリモートホストに存在しない場合は、追加する必要があります。


これは1ので、便利でしたが、私はこのようなPCへのMacから、それを実行している場合、Windows側でのrsyncの開始ディレクトリを指定する方法を思ったんだけど:superuser.com/questions/1462861/...
ライアン

1

上で提案された創造的なsshfsソリューションにもかかわらず、リモートホストでrsyncデーモンを実行せずにrsyncを使用することはあまり意味がありません。rsyncの効率性の全体的な考え方は、2つのインスタンスにチェックサムをローカルで計算し、ネットワーク経由で比較して、実際に異なるファイルの部分の実際のデータのみを送信することにより、データセットのローカルコピーを比較させることです。

sshfsまたは任意のネットワークマウントを使用する場合、ローカルでチェックサムを計算し、その上に差異を送信するために、リモートホストからネットワーク全体にデータセット全体をコピーする必要があるという事実を隠すだけです。すべてをローカルで削除し、 'scp -r'を大量に削除するほうがより速く、より安価です。


3
正確ではありません。rsyncはファイルがサイズとタイムスタンプによって変更されているかどうかをチェックしますが、それでもすべてのファイルをscpするよりもはるかに効率的です。しかし実際、ファイル内のrsync増分更新メカニズムはsshfsよりも意味がありません。
Jaap Eldering 2011

0

SCPを試してください。すでにsshアクセス権を持っているので、リモートホストに他に何もインストールする必要はありません:)

リモートホストからローカルホストにファイルをコピーするには、次のコマンドを使用します。

# scp -R remoteuser@remotehost:/remote/dir /this/dir/ 

または、次のコマンドを使用して、ローカルホストからリモートホストにファイルをコピーします。

# scp -R /this/dir remoteuser@remotehost:/remote/dir 

1
リーのおかげで、SCPは素晴らしいですが、「同期」しませんか?
Dan Rosenstark、2010

1
小さな「r」である必要があります:scp -r
0x4a6f4672 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.