前言:
现时各位老铁们对“ubuntu增量备份”都比较关心,大家都想要知道一些“ubuntu增量备份”的相关文章。那么小编同时在网络上网罗了一些对于“ubuntu增量备份””的相关资讯,希望小伙伴们能喜欢,兄弟们一起来了解一下吧!在运维过程中,通常有备份文件的需求,也就是把一些不能存储在数据库的文件备份到一个指定的目录。有人可能会说,使用系统的定时工具,写个脚本就好了,每隔一段时间执行一下备份任务。
但不失为一种方法,但我想在有数据变动的情况下才执行备份任务,没有变化的情况不执行,能否实现呢?
可以,在Linux下可以使用Inotify来解决。Inotify是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多,只要使用Inotify文件有变动+rsync命令同步有变化的文件,这样就达到增量备份的需求
Inotify安装
# 安装基本编译环境# Rhel && CentOSsudo yum install gcc make# Ubuntusudo apt install gcc make# 下载Inotify工具sudo wget 解压sudo tar -xf inotify-tools-3.14.tar.gzcd inotify-tools-3.14/# 配置、编译和安装sudo ./configuresudo make && make install
安装完成之后会在/usr/local/bin/inotifywait下生成可执行文件, 使用以下命令时,屏幕输出正常则安装成功。
[root@blog ~]# inotifywait --helpinotifywait 3.14命令用法
inotifywait [选项] 目标文件夹
#常用命令选项:-m,持续监控(捕获一个事件后不退出)-r,递归监控,包括子目录及文件-q,减少屏幕输出信息-e,指定监视的modify、move、create、delete、attrib等事件类别。不加此选项时,监控所有操作
来测试一下,在任一目录创建一个temp文件夹,使用inotifywait命令监控。
inotifywait -mrq temp/
另起一个shell窗口,创建一个空文件,可以发现监控中有多种事件产生。
由此可见,在对文件夹操作时,的确可以监控到时间。
脚本实现
脚本逻辑,当inotifywait捕获到事件时,将文件备份到指定文件夹中,基本逻辑:
while inotifywait -rq 监控文件夹 do #重复执行同步代码 done
比如:
#!/bin/bash#注意rsync下的源一定要加/while inotifywait -rq /tmp do rsync --delete -a /tmp/ root@192.168.0.2:/tmp done
大家也可以使用-e参数,只在指定的事件下执行,或搭配其它脚本命令使用。发挥想象力吧!
标签: #ubuntu增量备份