从 Linux 同步到 AWS S3 Bucket 时保留所有者和文件权限信息
Retain owner and file permissions info when syncing to AWS S3 Bucket from Linux
我正在将目录从 Linux 服务器同步到 AWS S3 以进行备份。
rsync -a --exclude 'cache' /path/live /path/backup
aws s3 sync path/backup s3://myBucket/backup --delete
但是,我注意到当我想像这样恢复备份时:
aws s3 sync s3://myBucket/backup path/live/ --delete
所有者和文件权限不同。我可以做些什么或更改代码以保留文件的原始 Linux 信息吗?
谢谢!
我在寻找其他东西时偶然发现了这个问题,并认为您(或某人)可能想知道您可以使用其他可以保留原始 (Linux) 所有权信息的工具。
肯定还有其他的,但我知道 s3cmd 可以保留所有权信息(存储在存储桶中对象的元数据中)并在将其同步回 Linux 框时恢复它。
同步语法如下
/usr/bin/s3cmd --recursive --preserve sync /path/ s3://mybucket/path/
您可以使用相同的命令将其同步回来,只需反转 from/to。
但是,您可能知道(如果您对 S3 成本优化做了一点研究),根据情况,使用压缩文件可能更明智。
它可以节省 space 并且应该减少请求,这样您就可以在月底节省一些钱。
此外,s3cmd 不是与 S3 同步最快的工具,因为它不像其他工具那样使用 multi-threading(和 is not planning to),因此您可能需要寻找其他工具保留 multi-threading 的所有权和利润,如果这仍然是您要找的东西。
要使用 s3cmd 加速数据传输,您可以使用不同的 --exclude --include 语句执行多个 s3cmd。
例如
/usr/bin/s3cmd --recursive --preserve --exclude="*" --include="a*" sync /path/ s3://mybucket/path/ & \
/usr/bin/s3cmd --recursive --preserve --exclude="*" --include="b*" sync /path/ s3://mybucket/path/ & \
/usr/bin/s3cmd --recursive --preserve --exclude="*" --include="c*" sync /path/ s3://mybucket/path/
我正在将目录从 Linux 服务器同步到 AWS S3 以进行备份。
rsync -a --exclude 'cache' /path/live /path/backup
aws s3 sync path/backup s3://myBucket/backup --delete
但是,我注意到当我想像这样恢复备份时:
aws s3 sync s3://myBucket/backup path/live/ --delete
所有者和文件权限不同。我可以做些什么或更改代码以保留文件的原始 Linux 信息吗?
谢谢!
我在寻找其他东西时偶然发现了这个问题,并认为您(或某人)可能想知道您可以使用其他可以保留原始 (Linux) 所有权信息的工具。 肯定还有其他的,但我知道 s3cmd 可以保留所有权信息(存储在存储桶中对象的元数据中)并在将其同步回 Linux 框时恢复它。
同步语法如下
/usr/bin/s3cmd --recursive --preserve sync /path/ s3://mybucket/path/
您可以使用相同的命令将其同步回来,只需反转 from/to。
但是,您可能知道(如果您对 S3 成本优化做了一点研究),根据情况,使用压缩文件可能更明智。 它可以节省 space 并且应该减少请求,这样您就可以在月底节省一些钱。
此外,s3cmd 不是与 S3 同步最快的工具,因为它不像其他工具那样使用 multi-threading(和 is not planning to),因此您可能需要寻找其他工具保留 multi-threading 的所有权和利润,如果这仍然是您要找的东西。 要使用 s3cmd 加速数据传输,您可以使用不同的 --exclude --include 语句执行多个 s3cmd。
例如
/usr/bin/s3cmd --recursive --preserve --exclude="*" --include="a*" sync /path/ s3://mybucket/path/ & \
/usr/bin/s3cmd --recursive --preserve --exclude="*" --include="b*" sync /path/ s3://mybucket/path/ & \
/usr/bin/s3cmd --recursive --preserve --exclude="*" --include="c*" sync /path/ s3://mybucket/path/