2016-06-11 9 views
1

ruby​​でバックアップスクリプトを作成したいが、フォルダ/ファイルをインスタンスから別のインスタンスにコピーするための解決策が見つかりませんでした。 localhost。localhostからスクリプトを実行しているserver1からserver2にフォルダをコピーする

Net::SSH.start("ip_address", "username",:password => "*********") do |session| 
    session.scp.download!("/home/logfiles/*", "/home/backupstorage", :recursive => true) 
end 
+0

FTPはこれに適していますか?ファイル転送のようなものです。 –

答えて

3

このようにすれば、まったく変更されていないファイルを置き換えることができます。この場合、rsyncを使用する方が良いでしょう。 を参照してくださいrsync backup またはこのrsync gemあなたが本当にルビーを使用したい場合は

+0

はい、間違いなくrsyncを使用しますが、2台のサーバー間でこれを使用し、localhostからこのスクリプトを実行したい(これは私が助けが必要な部分です) –

+0

なぜローカルホストからですか?あなたはそれを1台のマシンに入れてcronジョブで起動できませんか? sshでリモートコマンドを実行することもできます。それを見てください[ここ](http://www.cyberciti.biz/faq/unix-linux-execute-command-using-ssh/) –

+0

はいいいえideea、ありがとうございます、私はこれでNet :: SSHで解決しましたNFSサーバーとそこからターゲットマシン上のシステム(rsync .....)に移動します。 –

2

マノエルの答えが正しい方向にあるが、ここではrsyncを使用しての詳細は、次のとおりです。

rsync -avz /home/logfiles/* [email protected]:/home/backupstorage/ 
  • rsyncがSSHを介して動作しますので、あなたのバックアップサーバにsshを持っていれば、あなたはうまくいくでしょう
  • rsyncはデルタを使ってバックアップします。つまり、それは異なるブロックだけをコピーするので、初めて実行すると時間がかかることがありますそれ以降はそれだけをコピーするr変更されたもの
  • -avzは、rsyncにアーカイブと圧縮を行い、冗長にして(STDOUTに何をしているかを出力する)よう指示します。
  • ユーザーは、バックアップサーバーのユーザーです。
  • my-awesome-backup-machineは、バックアップサーバーのIPアドレスまたはホスト名です。

また、あなたのホストマシン上でなくなったファイルを削除したい場合、あなたは--deleteオプションを使用してに見てみたいことがあります。

scp一度にファイルをコピーするため、種類があります。あなたは以下のOPのコメントに基づいなど

UPDATE

更新、再帰的に、ディレクトリツリー全体をコピーするファイルパターンを除外することができますので、rsyncのは素晴らしいです。

マシンから最初のサーバーにSSHを実行し、コマンドを実行して2番目のサーバーに物をコピーすることができます。個人的に両方のマシンにアクセスできる場合は、SSHのForwardAgentオプションを使用してSSHをフォワードすることができます。これにより、server1からserver2へのrsync時にフォールバックして鍵ペアの使用を試みます。参照:https://developer.github.com/guides/using-ssh-agent-forwarding/

SSHエージェントの転送をオンにしたくない場合は、server1のユーザーの新しいキーペアを生成し、公開鍵をrsyncで使用しているユーザーの~/.ssh/authorized_keysファイルに置くことができますserver2。

キーを使用する代わりに、server2でホストベースの認証を有効にするオプションもあります。これにより、キーペアを生成する必要がなくなります。

+0

はい、間違いなく私はrsyncを使用しますが、私は2台のサーバーの間でこれを使用し、localhostからこのスクリプトを実行したい(これは私が助けが必要な部分です) –

+0

私はいくつかの情報で答えを更新しました。あなたはすべての作品を持っています、あなたはそれらを使用する必要があります。がんばろう。 –

関連する問題