python自动增量备份文件_文件系统增量备份 -- Python

对于数据备份,我一向比较小心,一般会定时进行相关备份,但即便如此,也吃过亏,主要是一些存放于虚拟机里的资料,由于没有及时备份,有一次虚拟机故障导致文件丢失损失惨重,究其原因,主要是文件太多,完全备份太麻烦,而手工的增量备份,肯定会存在漏网之鱼

基于此,前段时间刚好不太忙,花了将近一天时间,开发了一个针对文件系统的自动增量备份脚本

该脚本的主要特点是:

1. 有不错的效率。我测试了自己的电脑上的某个目录,该目录总共53G的文件(文件数量27万多个,文件夹数量1万7千多个),增量更新查询用时3分钟,这里只提供查询的时间(不备份),因为备份文件的话,由于无法评估待更新的文件数量,所以没办法做一个比较

2. 可以设置不备份的路径,通过指定IgnorePath.txt的内容即可

3. 完善的日志提示

脚本代码如下

# -*- coding:utf-8 -*-

"""

@作者: Jaymi

@日期: 20190906

@其他说明: 因为使用了日志打印输出有使用中文,某些(linux)系统的sys.stdout.encoding是不支持中文的

查询指令 import sys print(sys.stdout.encoding)

此时运行脚本在标准输出的打印可能是乱码,这种情况用下下面的方法运行脚本即可

PYTHONIOENCODING=gbk python3 backup_fb.py

"""

import os

import datetime

import sys

import logging

import shutil

# 源路径 -- 该目录的文件应是更新/更全的

path_a = '/lib'

# 目的路径 -- 用于备份源目录,该目录的文件应该较旧和不全的

path_b = '/home/lib_1'

# 开始的时间

now_begin = datetime.datetime.now()

# 忽略不处理的路径

ignorepath = []

# 需要递归处理的目录

recursion_path = []

recursion_path.append(path_b)

# 编码错误的文件列表

unicode_error = []

# 编码错误的文件列表

permission_error = []

# 其他错误的文件列表

other_error = []

# 待复制的文件/文件夹数量

newfile_count = 0

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值