web-dev-qa-db-ja.com

リモートマシンからx分ごとに一方向にファイルを転送する方法

私のセットアップは次のとおりです。

  • Dell Dimension w/Ubuntu Server 12.10を24時間年中無休で実行し、内部ネットワークの外部にあるリモートロケーション

    • サーバーに接続された1TB ext HD、映画/テレビを積極的にダウンロード
  • Raspberry Pi w/OpenELECおよびローカルで実行されるXBMC

    • Piに接続された4TB HD、できればサーバーからコンテンツを受信する

ダウンロードが完了したら、ビデオファイルをサーバーからPiの外部HDにx分/時間ごとに転送したいと思います。リモートロケーションからそれらを自動的に削除する必要はありませんが、クリーンアップした場合、双方向の同期は必要ありません。

Pi側から使用できるスクリプト、スクリプト言語、または転送プロトコルに関する提案はありますか?

3
Noah

rsync はファイルをコピーし、 cron はrsyncコマンドを定期的に実行することをお勧めします。リモート(Piの観点からリモート)マシンにログインするには、 公開/秘密キーでリモートマシンにログインする が必要になるたびにパスワードを手動で入力する必要がありません。

デフォルトでは、rsyncはソースディレクトリで削除された宛先ディレクトリのファイルを削除しません(テストしたばかりです)。

2
Nobody

cronジョブでrsyncを実行するだけです。 Ubuntuでcrontab -eを実行し、以下を実行します。

*/5 * * * *  rsync -a user@raspi:/path/to/files /local/path

5分ごとに2つの場所に同期しようとします。それは十分に長くないかもしれず、それは不定に同期します(何かがまだ書かれているかどうか-例えばダウンロードされているかどうかに関係なく)、ここで注意する必要があります。


いいえ、それは嘘です...私は次のいずれかを行います...

  • UbuntuマシンにNFSサーバーをインストールし、Raspiからマウントし(実際にこれを行います)、ネットワーク上で物事をストリーミングします。最高品質の1080pコンテンツを使用するには、少なくとも12MB/s(96mbps)が必要です。
  • RaspiにNFSサーバーをインストールし、Raspiに直接ダウンロードします。 Raspiの遅いUSB IOとネットワークを考えると、これは理想的ではありません。
  • ファイルを集中管理された専用の場所に直接ダウンロードし(たとえば、ハードディスクをルーターに接続したり、別のネットワーク接続ストレージを追加したり)、そこからPiにストリーミングします。

それらはすべて、不格好な自動化されたコピーよりもわずかに利点があります。

2
Oli