
在日常工作和数据管理中,文件备份是确保数据安全的重要环节。以下是几个典型的使用场景:
1、开发项目备份:定期备份代码库,防止意外修改或删除导致的工作损失;
2、文档资料保护:对重要文档进行定时备份,避免硬件故障造成数据丢失;
3、系统配置备份:保存系统配置文件,便于快速恢复系统状态;
4、多媒体文件存档:对照片、视频等重要媒体文件建立备份版本;
通过Python脚本实现自动化文件备份,主要包含以下步骤:
1、路径配置:设置源文件夹和目标备份文件夹路径;
2、时间戳管理:为每次备份创建带时间戳的唯一标识;
3、文件复制:递归复制源文件夹中的所有内容;
4、定时调度:设置定期执行备份任务的时间规则;
import os
import shutil
import schedule
import time
from datetime import datetime
def setup_backup_environment():
"""设置备份环境"""
# 配置源文件夹路径(根据实际需求修改)
source_path = "/path/to/source/folder"
# 配置备份根目录路径
backup_root = "/path/to/backup/root"
# 确保备份目录存在
if not os.path.exists(backup_root):
os.makedirs(backup_root)
return source_path, backup_root
def create_backup():
"""执行文件备份操作"""
source_path, backup_root = setup_backup_environment()
# 生成时间戳格式:年月日_时分秒
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
backup_dir = os.path.join(backup_root, f"backup_{timestamp}")
try:
# 创建备份目录
os.makedirs(backup_dir)
print(f"创建备份目录: {backup_dir}")
# 遍历源目录并进行备份
for item in os.listdir(source_path):
source_item = os.path.join(source_path, item)
target_item = os.path.join(backup_dir, item)
if os.path.isfile(source_item):
# 备份单个文件
shutil.copy2(source_item, target_item)
print(f"已备份文件: {item}")
elif os.path.isdir(source_item):
# 备份整个目录
shutil.copytree(source_item, target_item)
print(f"已备份目录: {item}")
print(f"备份完成: {timestamp}")
return True
except Exception as e:
print(f"备份过程中出现错误: {str(e)}")
return False
def schedule_backup():
"""设置备份调度"""
# 每天上午9点执行备份
schedule.every().day.at("09:00").do(create_backup)
# 可选:每周一额外执行一次备份
schedule.every().monday.at("09:00").do(create_backup)
print("备份调度器已启动...")
# 保持程序运行,检查定时任务
while True:
schedule.run_pending()
time.sleep(60) # 每分钟检查一次
if __name__ == "__main__":
# 立即执行一次备份(可选)
create_backup()
# 启动定时备份任务
schedule_backup()1、路径配置:修改 setup_backup_environment 函数中的路径为实际需要备份的目录;
2、定时设置:在 schedule_backup 函数中调整备份频率和时间;
3、错误处理:脚本包含基本的异常处理,可根据需要扩展;
4、日志记录:建议添加日志记录功能,便于跟踪备份历史;
通过自动化备份方案,可以有效保护重要数据,减少因意外情况导致的数据丢失风险。
“无他,惟手熟尔”!有需要的用起来!
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!