【发布时间】:2018-04-02 05:56:07
【问题描述】:
我需要将本地文件夹的内容与 AWS S3 存储桶进行比较,以便在存在差异的地方对本地文件执行脚本。 这个想法是本地文件(图片)被加密并上传到 S3。上传完成后,我会删除图片的加密副本以节省空间。第二天,新文件被添加到本地文件夹中。我需要在本地文件夹和 S3 存储桶之间检查哪些图片已经加密并上传,以便我只加密新添加的图片,而不是重新加密所有图片。我有一个脚本可以在两个本地文件夹之间执行此操作,但我正在努力调整它,以便在本地文件夹和 S3 存储桶之间执行比较。 感谢任何可以提供帮助的人。
这是我目前用于图片排序、加密和备份到 S3 的实际脚本:
!/bin/bash
perl /volume1/Synology/scripts/Exiftool/exiftool '-createdate
perl /volume1/Synology/scripts/Exiftool/exiftool '-model=camera model missing' -r -if '(not $model)' -overwrite_original -r /volume1/photo/"input"/ --ext . DS_Store -i "@eaDir"
perl /volume1/Synology/scripts/Exiftool/exiftool '-目录
cd /volume1/Synology/Pictures/"Pictures Glacier 备份"/"Glacier 的压缩加密图片"/post_2016/ && (cd /volume1/Synology/Pictures/Pictures/post_2016/; find .-type d !-名称。) | xargs -i mkdir -p "{}"
当 IFS= 读取 -r 文件时;做 /usr/bin/gpg --encrypt -r xxx@yyy.com /volume1/Synology/Pictures/Pictures/post_2016/**///$(basename "$file" .gpg) ; done
rsync -zarv --exclude=@eaDir --include="/" --include=".gpg" --exclude="" /volume1/Synology/Pictures/ Pictures/post_2016/ /volume1/Synology/Pictures/“Pictures Glacier 备份”/“Glacier 的压缩加密图片”/post_2016/ 查找 /volume1/Synology/Pictures/Pictures/post_2016/ -name ".gpg" -type f -delete
/usr/bin/aws s3 sync /volume1/Synology/Pictures/"Pictures Glacier 备份"/"Glacier 的压缩加密图片"/post_2016/ s3://xyz/Pictures/post_2016/ --exclude "" --include ".gpg" --sse
【问题讨论】: