news 2026/10/8 18:15:42

Python自动备份脚本实战:数据不丢,代码不慌

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python自动备份脚本实战:数据不丢,代码不慌

前言

数据丢了才想起来备份?服务器宕机、误删文件、数据库清空,这些事故每天都在发生。备份这件事,手动做容易忘,忘了就出事。**让脚本每天自动备份,是最省心的方案。**今天分享一套Python自动备份脚本:数据库、文件、配置一键打包,定时自动执行,留存最近N份,磁盘不爆。—## 一、备份要备份什么-数据库:网站/项目的核心数据-重要文件:配置、代码、文档-服务器配置:nginx、面板设置等思路:每天定时打包 → 存到备份目录 → 只保留最近N份 → 可选上传云端。—## 二、核心备份脚本pythonimport shutilimport subprocessimport datetimeimport os# 备份目录BACKUP_DIR = "/root/backups"# 要备份的文件/目录TARGETS = [ "/root/site", # 网站代码 "/etc/nginx", # nginx配置]# 数据库信息DB_NAME = "myapp"DB_USER = "root"DB_PASS = "你的数据库密码"# 保留最近几份KEEP = 7def backup_files(): """打包文件""" date = datetime.datetime.now().strftime("%Y%m%d_%H%M") archive = os.path.join(BACKUP_DIR, f"files_{date}.tar.gz") os.makedirs(BACKUP_DIR, exist_ok=True) for target in TARGETS: subprocess.run(["tar", "-czf", archive, target], check=True) return archivedef backup_db(): """备份数据库""" date = datetime.datetime.now().strftime("%Y%m%d_%H%M") dump = os.path.join(BACKUP_DIR, f"db_{date}.sql") cmd = f"mysqldump -u{DB_USER} -p{DB_PASS} {DB_NAME} > {dump}" subprocess.run(cmd, shell=True, check=True) return dumpdef cleanup(): """清理旧备份,只保留最近K份""" files = sorted(os.listdir(BACKUP_DIR)) while len(files) > KEEP: os.remove(os.path.join(BACKUP_DIR, files.pop(0)))if __name__ == "__main__": backup_files() backup_db() cleanup() print(f"备份完成,保留最近{KEEP}份")核心逻辑:打包 → 导库 → 清理,三步搞定。—## 三、配置定时任务bashcrontab -e每天凌晨备份一次:0 2 * * * cd /root && python3 backup.py >> backup.log 2>&1凌晨2点自动备份,早上起来看日志确认。—

四、进阶:备份到云端本地备份不够稳(服务器挂了本地也没了),加一步上传云端:pythonimport boto3 # 或使用其他云存储SDKdef upload_to_cloud(local_file): # 示例:上传到对象存储 client = boto3.client("s3") client.upload_file(local_file, "my-backup-bucket", os.path.basename(local_file))云端留一份,双保险。—## 五、注意事项1.先手动跑一遍:确认备份文件能正常生成、能正常恢复2.定期测试恢复:备份再漂亮,恢复不了等于白备3.密码别写死在脚本里:用环境变量或配置文件管理—## 六、写在最后备份脚本的价值,是出事那天才知道的。配置一次,每天自动执行,留存最近7份,云端再存一份。从此"数据不丢"不是口号,是脚本在帮你兜底。服务器2核2G就够跑,云厂商官网新用户都有优惠活动,几十块一年。有问题评论区交流,关注我,自动化脚本系列持续更新。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 18:15:38

基于eFuse与STM32的电源路径保护及监控方案

前阵子做一块工业控制板的电源部分,24V输入要给后级各种负载供电,板卡要求热插拔不损坏、负载短路不烧板、故障能远程上报。用TPS259483AYWPR这颗eFuse加上STM32F302VC来做电源路径保护,算是把嵌入式系统的电源管理这个环节做扎实了。这块方案…

作者头像 李华
网站建设 2026/10/8 18:15:35

基于TPS259483与PIC18F45K80的智能电源路径保护设计

1. 为什么需要专门管电源路径 嵌入式系统和工业控制器里,电源设计往往是被低估的一环。很多人觉得“只要电压对、电流够就行”,可真正到了现场,上电瞬间的浪涌、负载短路、电源反接、甚至一路电源抖动导致整个板卡复位,这些问题远…

作者头像 李华
网站建设 2026/10/8 18:13:34

Claude Code 一站式体验:11 个 MCP 服务器赋能 TaoToken 统一接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/8 18:11:45

多线程测试实战:从竞态条件到死锁排查的完整指南

做后端开发这些年,我接手处理过不少线程应用程序的线上事故:功能测试全绿,一上线高并发就顶不住;代码明明没有死锁,可CPU却莫名飙到百分之百;日志里偶尔冒出一条脏数据,重启后一切正常。写多线程…

作者头像 李华