Day36实时复制应用与实践(课堂笔记)

Day36


作者:孙鹏鹏

归档:课后笔记

时间:2019/4/19


快捷键:

Ctrl + 1    标题1

Ctrl + 2    标题2

Ctrl + 3    标题3

Ctrl + 4    标题4

Ctrl + 5    程序代码

Ctrl + 6    正文

Ctrl + 7    实例1-1

格式说明:

蓝色字体:注释

黄色背景:重要

绿色背景:注意

老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结

学无止境,老男孩教育成就你人生的起点!

联系方式:

网站运维QQ交流群:

Linux 385168604架构师390642196

Python 29215534大数据421358633

官方网站:

http://www.oldboyedu.com 

目  录

第一章:







实时复制应用与实践:

Day36实时复制应用与实践(课堂笔记)_第1张图片
Day36实时复制应用与实践(课堂笔记)_第2张图片
Day36实时复制应用与实践(课堂笔记)_第3张图片
Day36实时复制应用与实践(课堂笔记)_第4张图片
Day36实时复制应用与实践(课堂笔记)_第5张图片
Day36实时复制应用与实践(课堂笔记)_第6张图片
Day36实时复制应用与实践(课堂笔记)_第7张图片
Day36实时复制应用与实践(课堂笔记)_第8张图片
Day36实时复制应用与实践(课堂笔记)_第9张图片
Day36实时复制应用与实践(课堂笔记)_第10张图片
Day36实时复制应用与实践(课堂笔记)_第11张图片
Day36实时复制应用与实践(课堂笔记)_第12张图片
Day36实时复制应用与实践(课堂笔记)_第13张图片
Day36实时复制应用与实践(课堂笔记)_第14张图片
Day36实时复制应用与实践(课堂笔记)_第15张图片
Day36实时复制应用与实践(课堂笔记)_第16张图片

#实时复制实践:

#前提:backup rsync服务端部署好。


##1)部署NFS客户端

[root@nfs01~]# echo 'export RSYNC_PASSWORD=oldboy' >>/etc/bashrc

[root@nfs01~]# source /etc/bashrc

[root@nfs01~]# echo $RSYNC_PASSWORD

oldboy

##测试推送

[root@nfs01~]# rsync -avz /data [email protected]::backup/

sendingincremental file list

sent164 bytes  received 25 bytes  126.00 bytes/sec

totalsize is 0  speedup is 0.00

##2)查看inotify支持情况

[root@nfs01~]# uname -r

3.10.0-957.5.1.el7.x86_64

[root@nfs01~]#  ls -l /proc/sys/fs/inotify/

总用量0

-rw-r--r--

1 root root 0 4月  19 09:45 max_queued_events

-rw-r--r--

1 root root 0 4月  19 09:45 max_user_instances

-rw-r--r--

1 root root 0 4月  19 09:45 max_user_watches


##3)安装inotify-tools

yuminstall epel-release -y

yuminstall inotify-tools -y

[root@nfs01~]# rpm -ql inotify-tools|head -2

/usr/bin/inotifywait

/usr/bin/inotifywatch

[root@nfs01~]# rpm -qa inotify-tools

inotify-tools-3.14-8.el7.x86_64

##4)命令参数和事件知识

 

##5)测试实践

inotifywait-mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /data

##6)思考:实现数据复制

监控哪些事件?

需要监控

[root@nfs01~]# inotifywait -mrq --format '%w%f' -e close_write,delete /data

/data/a.txt

/data/a.txt

/data/a.txt

##7)编写脚本

mkdir/server/scripts -p

rsync-az --delete /data/ [email protected]::backup

[root@nfs01/server/scripts]# /bin/sh /server/scripts/monitor1.sh &

[2]9199

[root@nfs01/server/scripts]# tail -2 /etc/rc.local

########################

/bin/sh/server/scripts/monitor1.sh &


#sersync实践:

##1)客户端推送成功

rsync-az /data [email protected]::backup

##2)部署sersync服务(NFS

wgethttps://github.com/wsgzao/sersync/blob/master/sersync2.5.4_64bit_binary_stable_final.tar.gz

sersync_oldboy_64bit_20160928.tar.gz

[root@nfs01/server/tools]# mkdir /application -p

[root@nfs01/server/tools]# mv application/sersync /application/

[root@nfs01/server/tools]# tree /application/

/application/

└──sersync

    ├──bin

    │   └──sersync

    ├──conf

    │   ├──confxml.xml

    │   └──confxml.xml.ori

    ├──logs

    │   └──rsync_fail_log.sh

    └──readme.txt

4directories, 5 files

[root@nfs01/server/tools]# cd /application/sersync/

[root@nfs01/application/sersync]# ls

bin  conf logs  readme.txt

[root@nfs01/application/sersync]# cd conf/

[root@nfs01/application/sersync/conf]# ls

confxml.xml  confxml.xml.ori

#3)sersync配置文件:干两件事:

##1)完成监控配置:

inotifywait-mrq --format '%w%f' -e createFolder,close_write,delete,moveFrom,moveTo /data

##2)完整命令拼接:

rsync-az /data --timeout=100 [email protected]::backup




#4)启动服务

[root@nfs01/application/sersync/conf]# ../bin/sersync -h

setthe system param

execute:echo 50000000 >/proc/sys/fs/inotify/max_user_watches

execute:echo 327679 >/proc/sys/fs/inotify/max_queued_events

parsethe command param

_______________________________________________________

参数-d:启用守护进程模式

参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍

c参数-n: 指定开启守护线程的数量,默认为10个

参数-o:指定配置文件,默认使用confxml.xml文件

参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块

参数-m:单独启用其他模块,使用 -m socket 开启socket模块

参数-m:单独启用其他模块,使用 -m http 开启http模块

不加-m参数,则默认执行同步程序

________________________________________________________________

[root@nfs01/application/sersync/conf]# /application/sersync/bin/sersync -d -n 10 -o/application/sersync/conf/confxml.xml

最终

/application/sersync/bin/sersync-d

pkillsersync

二进制程序,不是yum安装的,所以不能systemctl start sersync


配置:systemctl start sersync启动方案

https://blog.51cto.com/oldboy/2155931

[root@nfs01/data]# tail -1 /etc/rc.local

/application/sersync/bin/sersync-d

配置:systemctl start sersync启动方案

https://blog.51cto.com/oldboy/2155931

[root@nfs01/data]# cat /etc/rc.d/init.d/sersync

#!/bin/bash

#chkconfig: 2345 21 81

#description: rsync service start and stop scripts

#Author: oldboy

#Organization: www.oldboyedu.com

chmod+x /etc/rc.d/init.d/sersync

[root@nfs01/data]# cat /usr/lib/systemd/system/sersync.service

[Unit]

Description=sersyncdservice

After=network.target

[Service]

Type=forking          

ExecStart=/etc/rc.d/init.d/sersyncstart  

ExecReload=/etc/rc.d/init.d/sersyncrestart

ExecStop=/etc/rc.d/init.d/sersyncstop    

PrivateTmp=true

[Install]

WantedBy=multi-user.target

chmod+x /usr/lib/systemd/system/sersync.service

[root@nfs01/data]# systemctl enable sersync.service

Createdsymlink from /etc/systemd/system/multi-user.target.wants/sersync.service to/usr/lib/systemd/system/sersync.service.

[root@nfs01/data]# systemctl status sersync.service

●sersync.service -sersyncd service

   Loaded: loaded(/usr/lib/systemd/system/sersync.service; enabled; vendor preset: disabled)

   Active: inactive (dead)

[root@nfs01/data]# systemctl stop sersync

[root@nfs01/data]# ps -ef|grep sersync|grep -v grep

[root@nfs01/data]# systemctl start sersync

你可能感兴趣的:(Day36实时复制应用与实践(课堂笔记))