如何通过 Shell 脚本定时执行备份并上传到云存储

舞夢輝影

舞夢輝影

2026-07-04

237人浏览

原创

健壮的备份脚本需包含路径检查、时间戳命名、tar压缩、sha256校验、日志记录和错误退出;云存储推荐rclone或官方cli,凭据不硬编码;cron需设环境变量、绝对路径、邮件通知及flock锁;本地与云端均须定期清理旧备份。

如何通过 shell 脚本定时执行备份并上传到云存储

用 Shell 脚本定时备份并上传到云存储,核心是三步:写好备份脚本、配置云存储 CLI 工具、用 cron 安排执行。关键不在“能不能做”,而在“是否可靠”——比如失败不报警、压缩没校验、旧备份不清理,都可能让备份形同虚设。

写出可重复、带日志和校验的备份脚本

不要只 tar 一下就完事。一个健壮的备份脚本应包含路径检查、时间戳命名、压缩、SHA256 校验、日志记录和简单错误退出。

  • date +%Y%m%d_%H%M 生成唯一文件名,避免覆盖
  • tar -czf 打包并压缩,加 --warning=no-file-changed 忽略瞬时变化警告
  • 运行 sha256sum backup.tar.gz > backup.tar.gz.sha256 生成校验文件
  • 所有 stdout/stderr 重定向到日志文件,例如 >/var/log/backup.log 2>&1
  • 每步后加 || { echo "步骤失败"; exit 1; } 做基础错误拦截

选对云工具并完成可信认证

推荐使用官方 CLI:AWS 用 aws-cli,阿里云用 aliyun-cli,腾讯云用 tencentcloud-cli,或通用方案 rclone(支持 70+ 存储,配置更统一)。

  • 避免在脚本里硬编码密钥,用 ~/.aws/credentialsrclone config 存储凭据
  • 测试上传:手动运行 aws s3 cp backup.tar.gz s3://my-bucket/ 确认权限和网络正常
  • 上传后建议加一步 aws s3 head-object --bucket my-bucket --key backup.tar.gz 验证对象存在

用 cron 精确调度并监控执行结果

cron 不只是“每天凌晨 2 点跑”,还要考虑环境变量缺失、路径不全、输出无声等问题。

  • 在 crontab 中显式声明 SHELL=/bin/bashPATH=/usr/local/bin:/usr/bin:/bin
  • 用绝对路径写脚本,例如 0 2 * * * /opt/scripts/backup.sh
  • 把执行结果邮件发给自己:0 2 * * * /opt/scripts/backup.sh | mail -s "Backup Report" admin@example.com
  • 加个简单的锁机制(如 flock -n /tmp/backup.lock -c "/opt/scripts/backup.sh"),防重复启动

自动清理旧备份,防止空间耗尽

备份不是越多越好,而是“够用且可验证”。本地和云端都要设保留策略。

  • 本地保留最近 7 天:find /backup -name "*.tar.gz" -mtime +7 -delete
  • 云端清理(以 S3 为例):aws s3api list-objects-v2 --bucket my-bucket --prefix "backup_" --query 'Contents[?LastModified
  • 更稳妥的做法:上传时用日期前缀(如 s3://my-bucket/20240501/backup.tar.gz),再按目录批量清理

不复杂但容易忽略细节。真正上线前,手动跑一次完整流程,检查日志、校验值、云上文件、清理动作,再放开定时任务。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

云存储

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

2025.12.13

301

14

Figma AI自动化智能数据填充与交互生成实战
Figma AI自动化智能数据填充与交互生成实战

告别机械重复,详细演示如何用 AI 填充业务真实数据,并自动为页面添加交互连线,将静态设计稿快速转变为动态原型。

2026.05.13

142

17

轻量应用服务器和云服务器的区别
轻量应用服务器和云服务器的区别

随着科技的快速发展,越来越多的企业和个人开始依赖于服务器来托管其应用程序和网站。然而,在选择服务器时,很多人对轻量应用服务器和云服务器之间的差异不够了解。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.27

258

3

注册云服务器的作用
注册云服务器的作用

注册云服务器的作用:1、可放置公司网站、电子商务平台、APP和其他应用程序等;2、使用云服务器来存储和共享数据,不仅高度安全,而且可以随时随地在线访问;3、当内存不够时,站长可自行增加,使资源充沛,保障了页面加载速度和优质的用户体验。想了解更多云服务器的相关内容,可以阅读本专题下面的文章。

2024.03.13

1022

9

云服务器的全部用途
云服务器的全部用途

云服务器的用途广泛,包括网站托管、应用程序部署、数据存储和备份、虚拟化和容器化、大数据处理、游戏服务器以及开发测试环境等。想了解更多云服务器的相关内容,可以阅读本专题下面的文章。

2024.03.21

4538

12

云服务器价格性价比高的服务商介绍
云服务器价格性价比高的服务商介绍

性价比较高的云服务器服务商,包括阿里云、腾讯云、亚马逊AWS和华为云。这些服务商提供丰富的产品线、亲民的价格、完善的生态体系和技术支持。想了解更多云服务器的相关内容,可以阅读本专题下面的文章。

2024.03.21

1409

9

云服务器的使用教程
云服务器的使用教程

使用云服务器需要遵循以下步骤:选择可靠的云服务提供商,注册账号并购买所需实例,配置安全组和网络,连接到服务器,配置服务器环境,定期管理和监控服务器,优化性能和成本。想了解更多云服务器的相关内容,可以阅读本专题下面的文章。

2024.03.21

2073

10

云服务器作用介绍
云服务器作用介绍

云服务器作为云计算的关键组成部分,广泛应用于弹性计算、数据存储处理、应用程序部署托管、灾备容灾、开发测试环境、虚拟化容器化等领域。想了解更多云服务器的相关内容,可以阅读本专题下面的文章。

2024.03.21

809

12

云服务器是什么
云服务器是什么

云服务器是一种在云计算环境中提供的虚拟服务器,它具有弹性、可扩展性和按需付费等特点。想了解更多云服务器的相关内容,可以阅读本专题下面的文章。

2024.06.21

3306

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
微信小程序开发--云开发篇
微信小程序开发--云开发篇

共15课时 | 1万人学习