gpt4 book ai didi

amazon-web-services - 是否可以从比 x 时间更早的 aws S3 同步文件中排除?

转载 作者:行者123 更新时间:2023-12-04 18:01:58 25 4
gpt4 key购买 nike

我正在尝试使用 aws s3将文件(然后删除本地副本)从服务器同步到 S3 存储桶的 CLI 命令,但找不到排除本地计算机中仍在使用的新创建文件的方法。
有任何想法吗?

最佳答案

这应该有效:

find /path/to/local/SyncFolder -mtime +1 -print0 | sed -z 's/^/--include=/' | xargs -0 /usr/bin/aws s3 sync /path/to/local/SyncFolder s3://remote.sync.folder --exclude '*'

这里有一个技巧:我们不是排除我们不想要的文件,而是排除所有内容,然后包括我们想要的文件。为什么?因为无论哪种方式,我们可能都会有太多的参数无法放入命令行。我们可以使用 xargs将长线路分成多个调用,但我们不能让 xargs拆分我们的排除列表,所以我们必须让它拆分我们的包含列表。

所以,从一开始,我们就有了 find命令。 -mtime +1查找所有早于一天的文件,以及 -print0告诉 find用空字节而不是换行符分隔每个结果,以防某些文件的名称中有换行符。

接下来, sed添加 --include=/每个文件名开头的选项,以及 -z选项包括让 sed知道使用空字节而不是换行符作为分隔符。

最后, xargs将喂养所有这些 include我们的选项结束 aws命令,调用 aws如果需要,多次。 -0选项就像 sed-z选项,告诉它使用空字节而不是换行符。

关于amazon-web-services - 是否可以从比 x 时间更早的 aws S3 同步文件中排除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33731556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com