我登录到一个远程服务器,它的dir结构如下-
cd /exp/gc/data/tmp/
ABCD
GED
TROOP
这些目录可能有子目录,也可能没有子目录。我的要求是将文件从远程服务器复制到hadoop(最终目的地),一次复制一个,保持目录结构与源目录相同。
例如:来源:
cd /exp/gc/data/tmp/ABCD
现在d有3个文件和两个子目录。所以我的目标位置(hadoop)也应该有相同的目录结构,即d必须有3个文件和两个子目录。使用rsync iam可以复制目录结构,但是名称中带有空格或特殊字符的目录不会被复制。代码段:result=$(ssh)username@hostname $result do rsync-arsv中文件的“find/path/-type f”)username@hostname /路径源//target path tmp/hadoop fs-copyfromlocal/target path tmp//hadoop-location/rm-rf/target path tmp/*
1条答案
按热度按时间cig3rfwq1#
我想你要找的是rsync,试一下如下:
这将递归地将所有文件从机器foo上的src/bar目录传输到本地机器上的/data/tmp/bar目录。档案在档案中转移权限、所有权等在转移中保留。此外,压缩将用于减小传输的数据部分的大小。
例子