构架备份服务项目实战
-
实时同步概述:确保指定备份目录中数据产生变化,就进行传输备份
-
实时同步应用:用户上传的数据信息,建议进行无差异实时同步
架构备份项目部署过程
如何监控发现备份目录数据变化:inotify-tools(监控目录数据信息变化)
监控数据变化软件部署:
第一个历程:安装软件程序
yum install -y inotify-tools
第二个历程:利用命令监控数据变化
/usr/bin/inotifywait ---监控目录中数据变化
语法格式:inotifywait 参数 被监控目录
参数信息:
--exclude <pattern> 指定排除(忽略)部分文件或目录,这些文件或目录上不监听任何事件,正则表达式书写(相对路径)
FMT: # --exclude 'Runtime' //忽略对Runtime目录的事件监听
--excludei <pattern> 与--exclude相同,区别是此选项正则表达式忽略大小写
-m 或 --monitor 持续保持监听(如果不加此选项,则监听到一次后便退出)
-d 或 --daemon 以守护进程方式后台运行(除了在后台运行外,与-m选项一样)
-r 或 --recursive 递归监听其下所有子目录及文件
-o 或 --outfile <file> 将事件输出到指定文件,而不输出到屏幕
FMT: -o /var/log/inotifywait.log
-s 或 --syslog 将错误发送到系统日志,而不是输出到屏幕
-q 或 --quiet 打印较少信息(仅打印事件)
-qq 不打印任何信息(静默方式)
--format <fmt> 设置打印屏幕的格式,
常见选项:%T时间;调用日志格式信息
%w触发事件文件所在绝对路径;
%f触发事件文件名称;
%e触发的事件名称;
FMT: # --format '%T %f %e'
--timefmt <fmt> 指定输出时间内容,相当于将时间赋值给%T
FMT: # --timefmt '%y-%m-%d %H:%M'
--c或--csv 标准列表信息输出格式
-t或 -timeout 监控数据超时时间
-e 或 -event 指定监控事件信息
ps:要重点关注的:创建 修改 删除 移动 重命名
Events: 事件
access 文件或目录被(访问)读取r
modify 文件或目录被写入w
attrib 文件或目录属性变更【理由:chmod更改属性】
close_write 文件或目录被写关闭【理由:文件内容被更改】
close_nowrite 文件或目录以只读方式打开后关闭
close 文件或目录被用编辑器(不管是读或写)关闭
open 文件或目录被用编辑器打开
moved_to 文件或目录被移动进来【理由:mv目录内重命名】
moved_from 文件或目录被移动出去
move 文件或目录不管是移出或移进
create 文件或目录被创建【理由:mkdir创建目录】
delete 文件或目录被删除【理由:rm删除】
delete_self 文件或目录自删除
unmount 文件系统取消挂载
监控目录数据信息变化:
inotifywait -mrq --format "%w%f" -e "modify,close_write,moved_to,moved_from,create,delete" /data
如何进行数据传输
利用脚本文件实现同步数据
#!/bin/bash
inotifywait -mrq --format "%w%f" -e "modify,close_write,moved_to,moved_from,create,delete" /data|\
while read info
do
rsync -az /data/ --delete rsync_backup@172.16.1.41::backup --passwd-file=/etc/rsync.password
done
扩展:脚本执行后,如何放在后台运行
nohup sh xxxxx.sh &
利用软件工具实现同步数据
sersync 中国人开发的
lsyncd软件(不讲,可以用 网上有配置教程)
软件部署安装过程
mkdir /server/tools -p
cd /server/tools/
wget https://github.com/wsgzao/sersync/archive/refs/heads/master.zip
第二个历程:解压软件程序包
unzip sersync-master.zip
cd sersync-master/
tar xf xxxxxx ---解压
mv GNU-Linux-x86/ /usr/local/sersync
第三个历程:服务程序配置操作
vim /usr/local/sersync/confxml.xml
第四个历程:启动服务程序进行测试
tail -1 /etc/profile
export PATH="/usr/local/sersync/:$PATH"
普通进程:只是瞬间出现瞬间消失
守护进程:一直存在于后台进程中
serync2 -dro /usr/local/sersync/confxml.xml
参数 -d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-o:指定配置文件,默认使用confxml.xml文件
停止服务程序
kill
kill 进程编号 ---停止某个服务进程
kill -9 进程编号 ---强制停止某个服务进程(慎用)
killall (yum install -y psmisc)
killall 进程名称
pkill
pkill 进程名称
pkill -f 进程名称