s3 删除事故?

起因

一次巡检s3备份查看时, 一回车手滑,出现了下面这种画面,生产事故?!!!
s3 删除事故?_第1张图片

现象

  • aws s3 rm s3://gfai-hk/upload.cmd 证实的确被删除了,
  • 推断后面的生产数据也被全删, 尝试用s3命令恢复
  • 发现需要该对象开启版本控制, rm被删除才有可能找回,否则永久删除
  • 于是尝试下面的命令
    • 先找出被删除文件
    • 后逐一执行恢复
aws s3api list-object-versions --bucket bucketname --prefix path/to/folder/ --query 'DeleteMarkers[].[Key,VersionId]' --output text | awk '{print $1 " " $2}' | while read objid versionid; do aws s3api delete-object --bucket bucketname --key $objid --version-id $versionid; done
  • upload.cmd 无法获取控制版本, 找不到它的删除标记信息

分析

  • 所使用的命令行账号权限不足?
  • 但问询后,没有操作记录
  • 关键: 是否开启版本控制,没开启被rm删,就真找不回了!!!
  • 马上查看生产情况,发现ad 目录下的文件都在…
  • 没删掉? 可upload.cmd 的确不见了…
  • 删目录和删对象不一样???

解决

查阅文档发现

  • 下面该命令只能删除空目录。如果 logs/ 目录下有对象或子目录,则该命令将不删除。
aws s3 rm s3://example-bucket/logs/ 	
  • 要删除目录及其下的所有对象,需要使用 --recursive 参数
aws s3 rm s3://your-bucket-name/path/to/directory/ --recursive  

结论

  • 一场因技术储备不足,误操作造成的虚假事故…

你可能感兴趣的:(s3)