问题描述
由于 DR 原因,我们将 sql Server 备份上传到 OCI 对象存储。每当上传新备份时,应该删除最旧的备份。
是否可以使用 CLI 以某种方式删除最旧的备份?
使用生命周期策略或保留规则不是一种选择,因为只有在上传新文件后才应删除最早的备份,如果未上传任何内容,则不应删除任何内容。
我知道有 bulk-delete 命令,但我不知道您是否可以将其限制为仅删除最旧的文件。
解决方法
oci os object list --all --fields name,timeCreated --bucket-name <backup_bucket>
将 list 所有备份的名称和创建时间。
然后我会使用 jq 来轻松找到最旧的文件。
oci os object delete --force --bucket-name <backup_bucket> --object-name <older_backup_name>
将 delete 备份而不提示确认,这要归功于 force 参数(如果在脚本中使用,则很有用)