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

描述

gpscpgpscp工具允许用户使用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