我正在尝试使用gcloud rsync实用程序来只同步与特定日期字符串(例如:14-9.2015)匹配的文件。
文件结构如下:bucket/123/CODE_14-Sep-2015.txt
因此,当我rsync时,我只想同步与特定日期匹配的文件。这是因为我们偶尔会从本地系统中删除旧文件,并且不希望继续对这些旧文件进行同步。
以下是我所尝试的:
gsutil -m rsync -n -x '[0-9]+/[A-Za-z0-9]+_((?!15-Aug-2015).*)' -r gs://bucket folder;
当我在测试环境中测试regex时,它似乎工作得很好,但它仍然在提取其他不符合日期的文件。
你知道为什么这不像预期的那样有效吗?有比rsync更好的方法来实现这一点吗?
发布于 2015-09-15 16:06:28
我的regexp是正确的,但由于某种原因,我的python/gsutil版本没有工作。不过,我找到了一种更简单的方法来达到预期的效果。
只需使用副本:
gsutil cp -r gs://bucket_name/*/*15-Sep-2015.txt destination_folder它只是使用通配符,不需要regexp。
注意: cp似乎没有复制像rsync这样的目录结构,例如.
gs://bucket/123/file.txt被复制到/目标区_文件夹/file.txt,而不是/目的地_文件夹/123/file.txt
更新:
因此,复制功能与文档一样工作,不幸的是,对我来说似乎有点违背直觉,但我找到了使用rsync的工作解决方案。
我有一个不匹配的额外目录层,所以它破坏了我的整个regexp。因此,值得注意的是,为了使regexp正常工作,必须在桶名之后匹配整个路径。
工作答案:
gsutil -m rsync -n -x '[0-9]+/[A-Za-z0-9]+_((?!15-Aug-2015).*)' -r gs://bucket/subfolder folder;发布于 2015-09-14 19:52:24
https://stackoverflow.com/questions/32571431
复制相似问题