需求
公司的电脑硬盘使用了很多年了有些重要的工做文件希望可以实现备份一份到新的硬盘或者把资料备份到公司局域网的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脚本


在这里找到刚才添加的任务,然后右键点击

点击运行

没有执行自动任务之前两个目录的情况

执行完知自动任务之后,两个文件夹目录完全一样了,是增量备份速度很快。

自动任务执行完之后会有这个窗口出来,这样可以很好的判断自动任务是否每天都有执行

424

被折叠的 条评论
为什么被折叠?



