【问题标题】:Amazon S3: automatic deletion of certain files with s3cmdAmazon S3:使用 s3cmd 自动删除某些文件
【发布时间】:2012-08-18 13:40:33
【问题描述】:

我需要一个用于 s3cmd 的脚本,它为我的 Amazon S3 存储桶中的某些文件发送删除命令。我知道有this method 内置但它没有用。让我们看看为什么。

目前我有一个脚本,可以在每个午夜备份我的数据库,每个星期五和星期二(仍然在午夜)备份我的网站文件。

我正在寻找的脚本应该删除文件以便仅在存储桶上拥有:数据库和文件的每个月(假设是每个月的第一天)1 次备份。 并保留过去 7 天的所有备份(每天为 db 和周二和周五为文件,因此是“默认”行为)。

例如,如果我在 2012 年 6 月 17 日,情况应该是:

1st January 2012: db and files
1st february 2012: db and files
1st march 2912: db and files
1st april 2012: db and files
1st may 2012: db and files
10th june 2012: db
11th june 2012: db
12th june 2012: db and files
13th june 2012: db
14th june 2012: db
15th june 2012: db and files
16th june 2012: db

然后在 2012 年 7 月 2 日,存储桶应包含:

1st of jan, feb, march, apr, may, june: both db and files
last 7 days: "default" backups untouched (files backup only on tuesday and friday and db every midnight).

该脚本将自动执行我现在手动执行的操作(我上个月只有 1 次备份,因此我必须删除从 7 天前开始的备份,然后返回到上一个每月 1 日的备份)。

对不起,这个令人费解的问题,我希望它足够清楚。 :D

【问题讨论】:

    标签: amazon-s3 backup cloud database-backups s3cmd


    【解决方案1】:

    配置 s3cmd 以便能够在您的脚本中运行:

    s3cmd --configure
    

    从必须运行备份脚本或将生成的文件复制到该用户主目录的用户处运行此命令。

    要使用 s3cmd 删除文件,您可以使用 del 命令,因此,在您的脚本中,您应该像这样调用 s3cmd:

    s3cmd del s3://bucketname/file
    

    当然,你也可以使用通配符:

    s3cmd del s3://bucketname/file*
    

    您可以使用日期命名备份文件:

    db.backup.20130411.tgz

    并使用日期来删除以前的备份。

    顺便说一句,在s3ql 项目中有一个expire_backups 脚本可能已经在做你想做的事情了。

    【讨论】:

    • 我知道如何调用 s3cmd 并使用 del 删除文件,但我正在寻找确切的脚本来删除我解释过的那些文件 :-)
    • ... 并定期维护我解释的情况。 :)
    • 嗯,这是一个问答网站,而不是为您请求人员计划的地方。还有其他网站可以做到这一点。
    • 您的答案不是答案,因为您所说的已经包含在问题中
    • “需要详细的规范答案来解决所有问题。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 2016-01-06
    • 2015-06-05
    • 2012-03-28
    • 1970-01-01
    相关资源
    最近更新 更多