我有一個要求從15個不同的主機獲取一組文件。 這些在本質上只是文本文件。多臺主機上的並行rsync
我已經能夠設置ssh密鑰和東西,以便現在scp,ssh,rsync等無密碼。
現在我正在尋找正確的方式來獲取這些文件,即取他們快速的方式我可以跟蹤(即不是一個後臺進程,我希望將某個時候完成的,然後開始處理這些文件)
截至目前我是語言不可知論者。 任何shell,perl,python,ruby等都可以。
雖然我應該問這裏的專家。
我有一個要求從15個不同的主機獲取一組文件。 這些在本質上只是文本文件。多臺主機上的並行rsync
我已經能夠設置ssh密鑰和東西,以便現在scp,ssh,rsync等無密碼。
現在我正在尋找正確的方式來獲取這些文件,即取他們快速的方式我可以跟蹤(即不是一個後臺進程,我希望將某個時候完成的,然後開始處理這些文件)
截至目前我是語言不可知論者。 任何shell,perl,python,ruby等都可以。
雖然我應該問這裏的專家。
嘗試的Perl Net::OpenSSH::Parallel:
use Net::OpenSSH::Parallel;
my $pssh = Net::OpenSSH::Parallel->new;
$pssh->add_host($_) for @hosts;
$pssh->push('*', scp_get => '/remote/file/path', '/local/file/path-%HOST%');
$pssh->run;
# do whatever you want with the local files.
使用fabric!特別是,您可能會發現Parallel execution頁面很有趣。
例子:
from fabric.api import env, run
env.user = 'implicit_user'
env.hosts = ['host1', '[email protected]', 'host3']
def print_user():
with hide('running'):
run('echo "%(user)s"' % env)
輸出:
$ fab print_user
[host1] out: implicit_user
[[email protected]] out: explicit_user
[host3] out: implicit_user
Done.
Disconnecting from host1... done.
Disconnecting from host2... done.
Disconnecting from host3... done.
直視PDSH,它可以幫助你,PDSH可以並行運行多個遠程命令。 pdsh使用線程的「滑動窗口」(或扇出)來節省啓動主機上的資源,同時允許某些連接超時 – avasal 2012-02-07 05:58:27