gpscp

一次在多个主机之间复制文件。

概要

  1. gpscp { -f hostfile_gpssh | -h hostname [-h hostname ...] }
  2. [-J character] [-v] [[user@]hostname:]file_to_copy [...]
  3. [[user@]hostname:]copy_to_path
  4. gpscp -?
  5. gpscp --version

描述

gpscp工具允许用户使用SCP(安全复制)在一个命令中将一个或多个文件从指定的主机 复制到其他指定的主机。例如,用户可以同时将文件从Greenplum数据库的Master主机复制到所有的 Segment主机。

要指定SCP会话中涉及的主机,请使用-f选项指定包含主机名列表的文件,或使用 -h选项在命令行上命名单个主机名。至少需要一个主机名(-h) 或主机文件(-f)。-J选项允许用户指定单个字符来替代 copy from和copy to的目标字符串中的hostname。 如果未指定-J,则默认的替代字符是等号(\=)。例如,以下命令 将从本地主机将.bashrc复制到hostfile_gpssh中指定的 所有主机上的/home/gpadmin:

  1. gpscp -f hostfile_gpssh .bashrc =:/home/gpadmin

如果未在主机列表中指定用户名,或者在文件路径中指定了user@, 则gpscp将以当前登录用户的身份复制文件。要确定当前登录的用户,请执行 whoami命令。默认情况下,登录后gpscp将转到远程 主机上会话用户的$HOME。为确保将文件复制到远程主机上的正确位置, 建议使用绝对路径。

在使用gpscp之前,用户必须在涉及SCP会话的主机之间建立可信的主机设置。 用户可以使用工具gpssh-exkeys更新已知的主机文件并在主机之间交换公钥 (如果尚未这样做的话)。

选项

-f hostfile_gpssh

指定包含将参与此SCP会话的主机列表的文件的名称。主机文件的语法是每行一台主机, 如下所示:

  1. <hostname>

-h hostname

指定将参与此SCP会话的单个主机名。用户可以多次使用-h选项来指定多个主机名。

-J character

-J选项允许用户指定单个字符来替代copy from和copy to目标字符串中的hostname。 如果未指定-J,则默认的替代字符是等号(\=)。

-v(详细模式)

可选。除SCP命令输出外还报告其他消息。

file_to_copy

必需。要复制到其他主机(或文件位置)的文件的文件名(或绝对路径)。这可以是本地主机上的 文件或另一台被提及主机上的文件。

copy_to_path

必需。用户希望将文件复制到指定主机上的路径。如果没有使用绝对路径,文件将被复制到相对 于会话用户的$HOME的位置。用户也可以使用等号’\=’ (或使用-J选项)指定的另一个字符代替hostname。这将随后在所提供 的主机文件(-f)或-h选项中指定的每个主机名中进行替换。

-?(帮助)

显示在线帮助。

--version

显示此工具的版本。

示例

将名为installer.tar的文件复制到文件hostfile_gpssh 中的所有主机上的/路径下。

  1. gpscp -f hostfile_gpssh installer.tar =:/

将名为myfuncs.so的文件复制到名为sdw1和 sdw2的主机上的指定位置:

  1. gpscp -h sdw1 -h sdw2 myfuncs.so =:/usr/local/greenplum-db/lib

另见

gpsshgpssh-exkeys