python用脚本来自动备份文件

脚本功能:
备份指定目录中的所有文件。
如果备份目录不存在,则自动创建。
可以设置定时备份(例如每天备份一次)。
代码示例:

import os
import shutil
import time
from datetime import datetime

# 配置源目录和备份目录
SOURCE_DIR = '/path/to/source'  # 替换为你要备份的源目录
BACKUP_DIR = '/path/to/backup'  # 替换为你想存放备份的目录

# 创建备份目录(如果不存在)
def create_backup_directory():
    if not os.path.exists(BACKUP_DIR):
        os.makedirs(BACKUP_DIR)
        print(f"备份目录已创建: {BACKUP_DIR}")
    else:
        print(f"备份目录已存在: {BACKUP_DIR}")

# 备份文件
def backup_files():
    timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
    backup_subdir = os.path.join(BACKUP_DIR, f"backup_{timestamp}")
    
    try:
        # 创建带有时间戳的子目录
        os.makedirs(backup_subdir)
        print(f"正在备份文件到: {backup_subdir}")
        
        # 遍历源目录中的所有文件并复制到备份目录
        for foldername, subfolders, filenames in os.walk(SOURCE_DIR):
            for filename in filenames:
                src_file = os.path.join(foldername, filename)
                dst_file = os.path.join(backup_subdir, os.path.relpath(src_file, SOURCE_DIR))
                
                # 确保目标目录存在
                os.makedirs(os.path.dirname(dst_file), exist_ok=True)
                
                # 复制文件
                shutil.copy2(src_file, dst_file)
                print(f"已备份: {src_file} -> {dst_file}")
        
        print("备份完成!")
    except Exception as e:
        print(f"备份过程中出现错误: {e}")

# 定时备份(例如每隔一天备份一次)
def schedule_backup(interval_hours=24):
    while True:
        create_backup_directory()
        backup_files()
        print(f"等待 {interval_hours} 小时后进行下一次备份...")
        time.sleep(interval_hours * 3600)

if __name__ == "__main__":
    # 手动执行一次备份
    create_backup_directory()
    backup_files()

    # 如果需要定时备份,取消下面这行的注释
    # schedule_backup(interval_hours=24)

使用说明:
配置路径 :将 SOURCE_DIR 和 BACKUP_DIR 替换为你实际的源目录和备份目录路径。
手动备份 :运行脚本时,它会立即执行一次备份操作。
定时备份 :如果你想让脚本每隔一段时间自动备份,可以取消 schedule_backup(interval_hours=24) 的注释,并设置你想要的备份间隔(以小时为单位)。
依赖:
该脚本不需要额外安装任何库,只需要 Python 环境即可运行。
运行方式:
将脚本保存为 backup_script.py。
在终端中运行:python backup_script.py。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值