第一章 部署rsync守护进程模式
1. 服务端的配置:
检查是否安装rsync
配置rsyncd.conf
创建rsync进程管理用户
创建模块目录
修改存储目录的属主和属组权限
配置认证密码文件,授权600权限
启动rsync守护进程,
设置rsync服务自启动
进行测试
2. 客户端的配置:
创建密码文件,授权600
客户端进行测试
rsync -avzP /data/ rsync_backup@172.16.1.7::backup --password-file=/etc/rsync.password --delete
第二章 部署inotify实时同步软件
1. inotify的工作机制(属于出发机制)
客户端开启运行inotify服务进程,检测共享目录的数据变化。
获取到共享目录数据发生变化,通知执行rsync命令同步数据。
将变化发送到rsync服务端(开启rsync守护进程服务器)的共享目录中。
2. inotify查看系统是否支持
[root@backup backup]# uname -r
2.6.32-642.el6.x86_64
yum install inotify-tools -y
[root@backup backup]# ll /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 May 11 20:18 max_queued_events
-rw-r--r-- 1 root root 0 May 11 20:18 max_user_instances
-rw-r--r-- 1 root root 0 May 11 20:18 max_user_watches
显示这三个文件证明支持inotify程序功能
这三个文件用来限制通过inotify接口消耗内核内存的数量;
max_queued_events 设置inotifywait或inotifywatch命令可以监视的文件数量
max_user_instances 设置每个用户可以运行的inotifywait或inotifywatch命令的进程数
max_user_watches 设置inotify实例时间(event)队列可容纳的事件数量
3. inotifywait命令参数
命令参数 | 参数说明 |
---|---|
-m***** | –monitor |
-d|–daemon | 类似于-m参数,只是将命令运行在后台,记录触发的事件信息在指定文件中 |
-r***** | 递归监控目录数据信息变化 |
-o | 打印事件到文件中,相当于标准正确输出 |
-q***** | 输出信息少,只打印事件信息 |
–excludei | 排除文件或目录时,不区分大小写 |
–timefmt***** | 指定事件输出的格式 |
–format***** | 打印使用指定的输出类似格式字符串;即实时监控输出的内容。 |
-e***** | 指定监听指定的事件,如果省略,表示所有时间都进行监听。 |
事件名称 | 事件说明 |
---|---|
access | 文件或目录被读取 |
modify | 文件或目录内容被写入 |
attrib | 文件或目录属性改变 |
close_write***** | 文件或目录关闭,在写入模式打开之后关闭的 |
close_nowrite | 文件或目录关闭,在只读模式打开之后关闭的 |
close | 文件或目录关闭,不管读或写模式 |
open | 文件或目录被打开 |
moved_to | 文件或目录被移动到被监控的目录中 |
moded_from | 文件或目录被移动从被监控的目录中 |
move***** | 文件或目录不管移动或是移动出监控的目录都出发事件 |
create***** | 文件或目录创建在监控的目录中 |
delete | 文件或目录被删除在监控的目录中 |
unmount | 文件系统包含的文件或目录不能卸载 |
4. inotify手动测试
[root@nfs01 data]# inotifywait -mrq /data/ --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create
11/05/17 10:44 /data/tesa
5. 编写脚本后台运行
[root@CentOS7-111 data]# cat /server/script/inotifywait.sh
#!/bin/bash
#desc: monitor /data and push datainfo to backup_server
/usr/bin/inotifywait -mrq --format "%w%f" -e moved_to,delete,create,close_write /data|\
while read line
do
echo $line
rsync -az --delete /data/ rsync_backup@172.16.1.7::backup --password-file=/etc/rsync.password
done
第三章 inotify优缺点与sersync
1. inotify+rsync:
优点:监控文件系统事件变化,通过同步工具实现实时数据同步
缺点:并发如果大于200个文件,(0-100k),同步就会有延迟
前面写的脚本,每次都是全部推送一次,但确实增量的。也可以只同步变化的文件,不变化的不理。
监控到时间后,请用rsync同步时单进程的(加&并发),sersync是多进程同步。
2. Sersync功能信息:
支持配置文件管理
真正的守护进程(socket)
可以对失败文件定时重传(定时任务功能)
第三方的HTTP接口(例如更新cdn缓存)
默认多线程同步
第四章 查看端口的方法总结
1. ss
[root@nfs01 ~]# ss -lntup |egrep 22
udp UNCONN 0 0 *:57343 *:* users:(("rpc.statd",1223,7))
udp UNCONN 0 0 127.0.0.1:975 *:* users:(("rpc.statd",1223,4))
udp UNCONN 0 0 :::40163 :::* users:(("rpc.statd",1223,9))
tcp LISTEN 0 128 :::22 :::* users:(("sshd",1349,4))
tcp LISTEN 0 128 *:22 *:* users:(("sshd",1349,3))
tcp LISTEN 0 128 *:15735 *:* users:(("rpc.statd",1223,8))
tcp LISTEN 0 128 :::28156 :::* users:(("rpc.statd",1223,10))
2. netstat
[root@nfs01 ~]# netstat -lntup |egrep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1349/sshd
tcp 0 0 0.0.0.0:15735 0.0.0.0:* LISTEN 1223/rpc.statd
tcp 0 0 :::22 :::* LISTEN 1349/sshd
tcp 0 0 :::28156 :::* LISTEN 1223/rpc.statd
3. lsof
[root@nfs01 ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1349 root 3u IPv4 11110 0t0 TCP *:ssh (LISTEN)
sshd 1349 root 4u IPv6 11112 0t0 TCP *:ssh (LISTEN)
4. namp
[root@nfs01 ~]# nmap -p 22 10.0.0.41
Starting Nmap 5.51 ( http://nmap.org ) at 2017-05-12 15:07 CST
Nmap scan report for 10.0.0.41
Host is up (0.00028s latency).
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 00:0C:29:A0:B1:48 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
5. telnet
telnet 10.0.0.41 22