You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2 cron备份S3:如何仅复制新增或修改文件以节省成本?

可行,两种方案实现增量备份

完全可以只备份新增或修改的文件,下面是具体实现方式:

1. 用aws s3 cp的--update参数

aws s3 cp本身支持--update参数,它会对比本地文件和S3上对应文件的最后修改时间与文件大小,只上传比S3版本更新或者大小不一致的文件。

  • 备份单个数据库转储文件:
aws s3 cp /path/to/your/db_dump.sql s3://your-backup-bucket/db_backups/ --update
  • 备份包含子文件夹的目录(需配合--recursive参数):
aws s3 cp /path/to/your/target_dir s3://your-backup-bucket/file_backups/ --recursive --update

2. 更推荐用aws s3 sync命令

s3 sync是专门为增量同步场景设计的,默认就只会同步新增、修改的文件,逻辑比cp --update更贴合备份需求,还支持排除/包含特定文件的规则。

  • 同步目录到S3(自动增量):
aws s3 sync /path/to/your/target_dir s3://your-backup-bucket/file_backups/

如果需要同步单个文件,cp --update更直接;sync则更适合目录级的增量备份场景。

注意事项

  • 确保EC2实例的IAM角色(或AWS凭证)拥有s3:PutObject权限,能正常访问目标S3存储桶。
  • cron任务执行时,建议指定完整的aws命令路径(比如/usr/local/bin/aws),避免环境变量缺失导致命令无法执行。
  • 数据库转储完成后,需等待文件写入完全结束再执行备份命令,可通过检查文件大小稳定或使用fsync命令确保文件完整性。
  • 可以先加--dry-run参数测试,预览哪些文件会被上传,确认逻辑正确后再正式运行:
aws s3 sync /path/to/your/target_dir s3://your-backup-bucket/file_backups/ --dry-run

内容的提问来源于stack exchange,提问作者emboole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:30:41