linux实时增量备份软件,如何在 Linux 下进行实时增量数据备份

备份的目的是为了防止自然灾害、病毒侵入、人为破坏等,随着数据量的增长,基于安全、性能以及存储空间的考虑,实时且增量地对数据进行备份成为企业的普遍需求。

今天,我们将和大家分享如何在 Linux 下将本地业务数据实时备份至 QingStor 对象存储的存储空间中。

本方案采用 lsyncd 实时地监控指定目录在文件系统层次的变化,当该目录下发生文件创建、重命名 、删除等操作时,qsctl 便会被自动调用以将数据同步至指定的 QingSor 对象存储的存储空间中。

因为 qsctl 支持增量同步,所以整个方案可以做到实时且增量的数据备份。

下面给大家介绍完整的配置步骤。

环境要求

本方案仅支持 Linux Kernel 2.6.13 及其以后的版本,且要求 Kernel 编译选项CONFIG_INOTIFY_USER 为开启状态 (默认为开启状态)。用户可以使用如下命令来确认自己的系统是否支持该方案:

$ grep INOTIFY_USER /boot/config-$(uname -r)

如果返回

CONFIG_INOTIFY_USER=y

则说明可以采用该方案。

软件配置

第一步:安装 lsyncd 。

使用系统对应的包管理器进行安装即可。

Debian、Ubuntu 等系统:

$ sudo apt install lsyncd

CentOS、Fedora 等系统:

$ sudo yum install epel-release && yum makecache $ sudo yum install lsyncd

第二步:使用 pip 安装并配置 qsctl。

qsctl 的详细配置可以参考 qsctl 的文档。

$ pip install qsctl -U

使用方法

假设需要同步的目录为 /tmp/example , 待同步的 Bucket 为 example-bucket , lsyncd 的配置文件为 ~/qingstor-backup.conf(lsyncd 没有默认的配置文件,需要在命令行中通过参数的形式给出)。

第一步:编辑 lsyncd 的配置文件

settings {  logfile    = "/tmp/lsyncd.log",  statusFile = "/tmp/lsyncd.status",  maxDelays = 10, } bash = {  delay = 5,  maxProcesses = 1,  onCreate = "/path/to/qsctl sync ^source ^target --delete",  onModify = "/path/to/qsctl sync ^source ^target",  onDelete = "/path/to/qsctl sync ^source ^target --delete",  onMove   = "/path/to/qsctl sync ^source ^target --delete",  onStartup = "/path/to/qsctl sync ^source ^target --delete", } sync { bash, source = "/tmp/example", target = "qs://example-bucket" }

注解: 如果不知道 qsctl 的完整路径,可以使用 which qsctl 以获取。

上述各配置项的含义如下:

logfile: 日志文件配置。

statusFile: 状态文件配置。

maxDelays: 当延时的事件到达此限制后将会直接运行,即使还没有到达延时的事件,单位为秒。

delay: 延时设置,事件触发后将会等待对应时间再运行,单位为秒。

maxProcesses: 最大进程数配置,最多允许同时运行的进程数。

第二步:测试配置

前台运行 lsyncd。

$ lsyncd -nodaemon ~/qingstor-backup.conf

创建一个文件并等待五秒左右。

echo "Hello, QingStor!" > /tmp/example/hello.txt

查看 “hello.txt” 是否在 Bucket “example-bucket” 中存在,若存在,则表示配置成功,否则表示配置存在问题。

$ qsctl ls qs://example-bucket

第三步:后台运行 lsyncd

当测试配置没有问题,且测试时运行结果符合预期时,可以将 lsyncd 放入后台运行。

$ lsyncd ~/qingstor-backup.conf

查看配置文件中指定的状态文件以了解 lsyncd 运行的状态。

$ cat /tmp/lsyncd.status Lsyncd status report at Mon Jan 16 02:31:48 2017 Sync1 source=/tmp/incron/ There are 0 delays Excluding: nothing. Inotify watching 2 directories 1: /tmp/incron/ 2: /tmp/incron/test/

查看配置文件中指定的日志文件地址以了解 lsyncd 的运行日志。

$ cat /tmp/lsyncd.log Mon Jan 16 02:10:49 2017 Normal:——Event Init spawns action "/home/xuanwo/.pyenv/shims/qsctl"

Mon Jan 16 02:10:51 2017 Error:——Failure on startup of "/tmp/incron/".

...... Mon Jan 16 02:31:38 2017 Normal:——Startup of "/tmp/incron/" finished.

Mon Jan 16 02:33:46 2017 Normal:——--- TERM signal, fading ---

更多详细信息请点击阅读原文。

- FIN -

43dfe4d6297427844676c0063f8dd0ff.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值