Windows使用python脚本实现文件夹每天自动增量备份

部署运行你感兴趣的模型镜像

需求

公司的电脑硬盘使用了很多年了有些重要的工做文件希望可以实现备份一份到新的硬盘或者把资料备份到公司局域网的samba服务器上面去,这样不至于老硬盘出问题了丢失数据。

尝试1

之前尝试过使用git来进行备份,大概思路就是在需要备份的A文件夹目录下面创建一个git仓库然后提交,在B文件夹中去git clone A文件件里头的git仓库,在Windows创建一个自动任务计划 每天执行这个任务计划。

任务计划的内容是:先去A文件夹把有更新的文件、新曾的文件全部提交到git仓库,然后去到B文件夹进行仓库同步,这样也能实现备份的目录。

这种方式如果是代码仓库可以怎么干的,但是如何不是代码仓库就没必要这样干了,使用过git的都知道 git有一个.git的目录是存放了一份整个git仓库文件的了的,也checkout了一个文件出来。相当于存放了两份文件了,备份的文件小还好,如果文件太大的话就非常浪费硬盘空间了。

尝试2

使用python脚本进行文件增量备份

新建一个file_sync.py文件把下面的python脚本复制到文件中,下面脚本来自ai。电脑需要安装有python,我电脑安装的是 Python 3.12.6这个版本。

import os
import shutil
import time


def incremental_backup(source_folder, destination_folder):
    if not os.path.exists(destination_folder):
        os.makedirs(destination_folder)

    for root, dirs, files in os.walk(source_folder):
        relative_path = os.path.relpath(root, source_folder)
        destination_subfolder = os.path.join(destination_folder, relative_path)

        if not os.path.exists(destination_subfolder):
            os.makedirs(destination_subfolder)

        for file in files:
            source_file_path = os.path.join(root, file)
            destination_file_path = os.path.join(destination_subfolder, file)

            if not os.path.exists(destination_file_path):
                shutil.copy2(source_file_path, destination_file_path)
            else:
                source_file_mtime = os.path.getmtime(source_file_path)
                destination_file_mtime = os.path.getmtime(destination_file_path)

                if source_file_mtime > destination_file_mtime:
                    shutil.copy2(source_file_path, destination_file_path)


if __name__ == "__main__":
    source_folder = r"C:\Users\test\Desktop\g-tmp" #需要备份的文件
    destination_folder = r"Y:\test\test-back" #把需要备份的文件备份到这个路径下面
    incremental_backup(source_folder, destination_folder)


在Windows创建自动任务计划

创建一个自动任务计划这样会每天自动执行就不用手动执行了,这样可以实现每天自动备份。

电脑左下角点击搜索图标按钮,按行输入 任务 进行搜索在这里插入图片描述
搜索结果如下,点击打开
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

选择每一天,这样就会每天执行。
在这里插入图片描述
设置每天触发跑脚本的时间,我电脑都是24小时开机的,我实际备份文件的操作是设置在凌晨1点执行,这个时候我不用电脑。
在这里插入图片描述
新建一个sync.bat文件,文件内容如下,

::根据实际情况填写上面创建的 file_sync.py脚本路径
python.exe C:\Users\test\Desktop\file_sync.py

pause

在这里插入图片描述
选择上面创建的sync.bat脚本
在这里插入图片描述

在这里插入图片描述

在这里找到刚才添加的任务,然后右键点击
在这里插入图片描述
点击运行
在这里插入图片描述

没有执行自动任务之前两个目录的情况
在这里插入图片描述
执行完知自动任务之后,两个文件夹目录完全一样了,是增量备份速度很快。

在这里插入图片描述

自动任务执行完之后会有这个窗口出来,这样可以很好的判断自动任务是否每天都有执行
在这里插入图片描述

参考献文Windows巧用git实现笔记自动备份

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值