全网备份遗留
备份客户机没有发送数据,如何让运维人员知道?
1 .备份客户机,判断rsync是否执行成功,用来判断
2 .服务器:判断是否有当前日期的指纹信息
实时数据同步
数据备份的方法
1 .内部人员数据,备份数据最短周期是1分钟
2 .外部人员数据(用户) 没有等待时间,实时备份
实现数据备份的原理
1 .监控存储服务器的目录数据信息变化
2 .利用同步传输数据软件 ,将变化的数据传输
3 .实现实时同步数据 inotify+rsync
数据监控软件inotify
作用:监控目录数据的信息变化
/usr/bin/inotifywait
重要--监控数据目录信息变化命令
/usr/bin/inotifywatch
了解-统计目录的产生的变化信息 修改了多少次
第二个里程:掌握inotify的用法
--exclude ---进行监控数据时,指定哪些数据信息,不进行监控
--excludei ---进行数据监控时,指定哪些数据信息,不进行数据监控,忽略大小写
-m|--monitor 指一直对目录进行监控
-r|--recusive 递归监控目录中的数据变化
--format 定义输出路径的格式
%w设置路径
%f 设置文件
%e 指定监控的事件
%T 调用时间格式--timefmt
--timefmt 定义时间格式信息,类似于date 命令格式,与date参数一样
-q | --quiet 将某些信息不进行输出显示
-e | --event --指定监控事件的信息
inotify的事件信息
access 一个文件或目录内容被读取时
modify 文件或目录内容被修改时
attrib 文件或目录的属性给修改时
close_write 文件或目录被关闭,在文件打开后,写入新的内容关闭时
close_nowrite:文件或目录被关闭,文件没有被编辑,关闭
关闭的解释:
开发:应用程序修改数据信息
逻辑过程: 打开文件---编辑文件---关闭文件
close:无论文件或目录是读或写,都被触发
open:文件或目录被打开
moved_to:文件或目录移动到被监控到目录,其他目录数据===>监控目录(参照目录)
moved_from:文件或目录移出监控目录,监控目录(参照目录)===>其他目录
move:只要监控目录,有数据移动操作
create:在监控目录中,创建目录或是文件
delete:在监控目录中,有文件或目录被删除时
监控记录
[root@nfs01 ~]# inotifywait -mr /backup -e create,close_write,delete,move --format="%w%f"
Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
/backup/3
/backup/3
[root@nfs01 /backup]# touch d
[root@nfs01 /backup]# touch 3
实现数据实时监控的方法
1 .编写脚本
[root@nfs01 /server/scripts]# cat jiankong.sh
#!/bin/bash
inotifywait -mr /backup -e create,close_write,delete,move --format="%w%f" | \
while read line
do
rsync -avz --delete /backup/ [email protected]::backup --password-file=/etc/rsync.password
done
脚本循环用法
01 .for循环, for 变量 in 循环信息;do 操作命令;done 这是有限制的循环
02 .while 循环,while条件表达式;do 操作命令 ;done 当条件为真时,是死循环,当条件为假时,是有限循环
03 .until 循环, unile 条件表达式;do 操作命令;done 当条件为假时,死循环,当条件为真时,结束循环
shell内置变量
$#
表示有几个传递的参数
$*
表示传递的参数是什么
01如何让一个脚本始终在后台运行?
nohup sh jiankong.sh &
02. 利用脚本数据同步完毕后, 脚本会依旧持续运行?
>cd /data && rsync -az -R "./oldboy02.txt" [email protected]::backup --password-file=/etc/rsync.password
cd /data && rsync -az -R --delete ./ --include="oldboy01.txt" --exclude=* [email protected]::backup --password-file=/etc/rsync.password
利用软件实时同步
第一个里程:下载部署sersync软件
https://github.com/wsgzao/sersync
第二个里程:将解压好的文件到指定目录
第三个里程:修改软件配置信息
第四个里程:启动服务
chmod +x sersync
[root@nf /server/tools/sersync_installdir_64bit/sersync/bin]# ./sersync -dro ../conf/confxml.xml
sersync的命令帮助信息
[root@nfs01 /server/tools/sersync_installdir_64bit/sersync/bin]# ./sersync -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
serync配置文件说明
4 为true表示进入调试页面
6 排除文件信息
7
8
9
10
11
12 表示监听的事件
13
14
15
16
17
18
19
20
21
23
24 监控本地目录的变化
25 要备份的远程ip和模块名称
26
27
28
29
30 本地传输的参数信息
31 远端传输的认证用户和认证用户的密码文件
32
33
34
35