ファイルをコピーしたい200以上のUbuntuシステムがあります。
ネットワーク上の複数のホストにファイルをコピーするにはどうすればよいですか?どのような可能性がありますか?
注:この質問は buntuマシンのバージョンをリモートで見つける方法?に関連しています
あなたはおそらくシンプルなものだけが欲しいと思うのですが、これを行う方法はたくさんあります。しかし、最初にすべてのコンピューターを一度に制御できるようにしたいと考えています。
これは奇妙な方向に思えるかもしれませんが、シャットダウン、再起動、すべてのコンピューターへのアップグレードを送信する時間を節約できます。
clusterssh
clusterssh
をインストールして、すべてのサーバーに一度に接続するコマンドを実行してみましょう(これは一度に200台では実行できない場合があります。テストするコンピューターが200台ありません!)
Sudo apt-get install clusterssh
cssh user@first_computer:port user@second_computer:port ...
これにより、接続ごとに小さな出力ウィンドウが生成され(200がストレッチであると言う理由)、1つのグローバル入力ダイアログが表示されます。そこから、同じコマンドをすべてのサーバーに送信できます。
コマンドラインから実行したい場合、これが200接続をサポートする可能性がある場合、cssh
の-a
フラグを確認できます。各サーバーにコマンド(またはコマンドの文字列)をスローできます。接続し、実行し、接続を閉じます。
cssh -a 'cd directory; ls' user@first_computer:port user@second_computer:port
clusterssh
の強力な構成を使用して、接続を簡素化できます。 man cssh
を開き、FILES
セクションに進みます。 /etc/clusters
ファイルを作成して、次のようなグループ(タグと呼ばれる)をすばやく作成する方法を説明します。
clusters = <tag1> <tag2> <tag3>
<tag1> = Host1 Host2 Host3
<tag2> = user@Host4 user@Host5 Host6
<tag3> = <tag1> <tag2>
その後、次のことができます。
cssh -T 'tag2' -a 'cd directory; ls'
私はdebレポを意味するわけではありません(しかし、それも可能だと思います)、むしろgit
またはbrz
のようなものです。 Webサーバーやネットワーク共有のような単純なものでもかまいません。ネットワーク帯域幅に場所のボトルネックがある場合、トレントサーバーのようなものが最良のコースである場合もあります(Facebookがすべてのノードを更新する方法です)
ここからは、ドットをつなぐだけです。 cssh
を使用すると、すべてのコンピューターにファイルを取得し、必要な処理を実行するように指示するだけです。
小さく始めることをお勧めします。ファイルを共有してから、2、3台のコンピューターの単純なクラスターを試して、それがどうなるかを確認します。それを展開します。
メイングループに物事をプッシュする前に、テストが完了した後でも、テストのために数台のコンピューターのクラスターを保持することをお勧めします。
または、プッシュベースのままにしておくこともできます。その最も簡単な方法は、次のようなスクリプトを書くことです。
サーバーに接続し、ファイルをコピーします(ここでは2つのオプション)。
sshfs
を使用してリモートファイルシステムをローカルにマウントし、cp
/rsync
を使用して、fusermount -u
マウントしたディレクトリ(リモートシステムをアンマウントするため)。継続する。rsync
のネットワーク機能を使用して、ファイルをコピーします。
rsync /localdir/ user@remote:/remotedir
[入力中にオリの答えが出ました]
Clustersの代替手段はparallel-scpです。 psshパッケージ の一部です
ホストのリストをテキストファイル(hosts.txtなど)で提供する必要があります。次に、次を発行します。
parallel-scp -h hosts.txt file2copy.dat /target/directory
Manページを参照して、特定のニーズに対応してください。これは、csshが連続して試行するため、すべての接続をライブで開く必要がないため、接続が多すぎる場合に制限に達することはありません。
PS:鍵ベースの認証を設定すると、もちろんこれがはるかに簡単になりますが、最初に200台のシステムに鍵を配布することが、この質問をしている理由かもしれません...