gpscp

gpscp

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

概要

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

描述

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

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

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

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

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

选项

-f hostfile_gpssh
指定包含将参与此SCP会话的主机列表的文件的名称。主机文件的语法是每行一台主机, 如下所示:
<hostname>
-h hostname
指定将参与此SCP会话的单个主机名。用户可以多次使用-h选项来指定多个主机名。
-J character
-J选项允许用户指定单个字符来替代copy fromcopy to目标字符串中的hostname。 如果未指定-J,则默认的替代字符是等号(=)。
-v(详细模式)
可选。除SCP命令输出外还报告其他消息。
file_to_copy
必需。要复制到其他主机(或文件位置)的文件的文件名(或绝对路径)。这可以是本地主机上的 文件或另一台被提及主机上的文件。
copy_to_path
必需。用户希望将文件复制到指定主机上的路径。如果没有使用绝对路径,文件将被复制到相对 于会话用户的$HOME的位置。用户也可以使用等号'=' (或使用-J选项)指定的另一个字符代替hostname。这将随后在所提供 的主机文件(-f)或-h选项中指定的每个主机名中进行替换。
-?(帮助)
显示在线帮助。
--version
显示此工具的版本。

示例

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

gpscp -f hostfile_gpssh installer.tar =:/

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

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

另见

gpsshgpssh-exkeys