linux sersync2 <ssh start="true",Rsync实时备份工具

Rsync实时备份工具使用

目录Rsync实时备份工具使用一、实时备份介绍1.1.1什么是实时备份:

1.1.2 企业中常用的备份工具:

1.1.3. 企业为什么要做实时备份:

二、实时复制实践(inotify-tools)2.1.1 inotify实时备份实战

2.1.2 inotifywait重要命令说明

2.1.3 inotify 优化

上述优化开机可能失效,可以把命令放到/etc/rc.local里面开机自启。三、sersync的使用3.1.1 sersync介绍

一、实时备份介绍

1.1.1什么是实时备份:

实时备份就是利用实时工具对重要数据和文件变化进行一个实时的监控与备份,一发生变化,我就备份。

1.1.2 企业中常用的备份工具:

有inotify和sersync(推荐使用) 两种。

1.1.3. 企业为什么要做实时备份:

1)防止数据的丢失。

2)保证数据的一致性。

3) 实时备份数据适合用户上传的普通文件(文档,视频,压缩包等)。

二、实时复制实践(inotify-tools)

2.1.1 inotify实时备份实战

检查内核版本

[root@nfs01 ~]# uname -r

3.10.0-1062.18.1.el7.x86_64

# 注意inotify需要2.6.13以上的内核

检查是否有inotify的三个参数文件

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

total 0

-rw-r--r-- 1 root root 0 May 1 16:53 max_queued_events

-rw-r--r-- 1 root root 0 May 1 16:53 max_user_instances

-rw-r--r-- 1 root root 0 May 1 16:53 max_user_watches

#这三个参数是优化的关键

安装inotify

[root@nfs01 ~]# yum install 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-9.el7.x86_64

2.1.2 inotifywait重要命令说明

重要参数说明

参数

说明

-m(monitor)

始终保持监听状态

-d (daemon)

类似于-m参数,之时间命令放到后台运行

-r

递归监控目录数据信息变化

q

减少输出

-e

监听指定的事件,如果省略,默认监听所有。

-e 后面接的参数说明

参数

说明

close_write

文件或目录关闭,在写入模式打开之后关闭

create

文件或目录创建在监控的目录中

delete

文件或目录被删除在监控目录中

实战

[root@nfs01 ~]# inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /data

结果

[root@nfs01 ~]# cd /data/

[root@nfs01 /data]# touch a.txt

[root@nfs01 /data]# touch b.txt

[root@nfs01 ~]# inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /data

01/05/20 17:23 /data/a.txt

01/05/20 17:23 /data/b.txt

编写监控脚本

[root@nfs01 ~]# cat /server/scripts/monitor.sh

#!/bin/bash

#auto by chenhj date 2019-1-13

#monitor rsync data bash file

CMD="/usr/bin/inotifywait"

$CMD -mrq --format '%w%f' -e close_write,delete /data |\

while read line

do

[ ! -e $line ] && cd /data && \

rsync -az --delete ./ rsync_backup@172.16.1.41::data --password-file=/etc/rsync.password && continue

rsync -az --delete $line rsync_backup@172.16.1.41::data --password-file=/etc/rsync.password

done

测试

[root@nfs01 ~]# cd /data/

[root@nfs01 /data]# touch {1..100}.txt

[root@nfs01 /data]# ls -lht

total 0

-rw-r--r-- 1 root root 0 May 1 18:45 100.txt

-rw-r--r-- 1 root root 0 May 1 18:45 91.txt

-rw-r--r-- 1 root root 0 May 1 18:45 92.txt

-rw-r--r-- 1 root root 0 May 1 18:45 93.txt

-rw-r--r-- 1 root root 0 May 1 18:45 94.txt

-rw-r--r-- 1 root root 0 May 1 18:45 95.txt

7.在backup上查看

[root@backup ~]# ls -lrt /data/

total 0

-rw-r--r-- 1 rsync rsync 0 May 1 18:45 1.txt

-rw-r--r-- 1 rsync rsync 0 May 1 18:45 9.txt

-rw-r--r-- 1 rsync rsync 0 May 1 18:45 8.txt

-rw-r--r-- 1 rsync rsync 0 May 1 18:45 7.txt

-rw-r--r-- 1 rsync rsync 0 May 1 18:45 6.txt

-rw-r--r-- 1 rsync rsync 0 May 1 18:45 5.txt

-rw-r--r-- 1 rsync rsync 0 May 1 18:45 4.txt

放在后台执行

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

[1] 1506

设置开机自动启动

[root@nfs01 ~]# vim /etc/rc.local #monitor shell

/bin/sh /server/scripts/monitor.sh &

授予执行权限

[root@nfs01 ~]# chmod +x /etc/rc.local

[root@nfs01 ~]# chmod +x /etc/rc.d/rc.local

2.1.3 inotify 优化

[root@nfs01 ~]# echo '50000000'> /proc/sys/fs/inotify/max_queued_events

#设置可监听文件的数量

[root@nfs01 ~]# echo '50000000'> /proc/sys/fs/inotify/max_user_watches

#设置inotify实例事件(event)队列可容纳的事件数量

[root@nfs01 ~]# cat < /proc/sys/fs/inotify/max_user_instances

128

#设置每个用户可以运行的命令进程数,默认就行。

上述优化开机可能失效,可以把命令放到/etc/rc.local里面开机自启。

三、sersync的使用

3.1.1 sersync介绍

sersync 是在inotify的基础上开发的,其功能比inotify更丰富,更实用,支持多线程。

安装部署sersync

[root@nfs01 /server/tools]# tar zxvf sersync_64bit_binary_stable_final.tar.gz

GNU-Linux-x86/

GNU-Linux-x86/sersync2

GNU-Linux-x86/confxml.xml

#解压即用

3.移动到软件安装目录下

[root@nfs01 /server/tools]# mv GNU-Linux-x86/ /application/

重命名

[root@nfs01 /application]# mv GNU-Linux-x86 sersync

[root@nfs01 /application]# ll

total 0

drwxr-xr-x 2 root root 41 Oct 26 2011 sersync

备份并编辑配置文件

root@nfs01 /application/sersync]# cp confxml.xml{,.bak}

[root@nfs01 /application/sersync]# ll

total 1776

-rwxr-xr-x 1 root root 2214 Oct 26 2011 confxml.xml

-rwxr-xr-x 1 root root 2214 May 1 22:47 confxml.xml.bak

-rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync2

#修改如下:

23

24

25

26

27

28

29

30

31

32

33

34

35

启动服务

[root@nfs01 /application/sersync]# ./sersync2 -d -o /application/sersync/confxml.xml

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

option: -d run as a daemon

option: -r rsync all the local files to the remote servers before the sersync work

option: -o config xml name: /application/sersync/confxml.xml

daemon thread num: 10

parse xml config file

host ip : localhosthost port: 8008

daemon start,sersync run behind the console

use rsync password-file :

user isrsync_backup

passwordfile is /etc/rsync.password

config xml parse success

please set /etc/rsyncd.conf max connections=0 Manually

sersync working thread 12 = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)

Max threads numbers is: 32 = 12(Thread pool nums) + 20(Sub threads)

please according your cpu ,use -n param to adjust the cpu rate

------------------------------------------

rsync the directory recursivly to the remote servers once

working please wait...

execute command: cd /data && rsync -artuz -R --delete ./ --timeout=100 rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password >/dev/null 2>&1

run the sersync:

watch path is: /data

#参数 -d -r -o的顺序一定不要错。否则会报错,坑坑啊!!

#在工作中尽量不要加-r ,-r(参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍),我们启动sersync服务的时候手工推送一遍测试一下就行了,因为工作环境数据时好几十个G如果你加上-r的话,很长一段时间你都无法实时推送数据,因为要等那十几个G的数据推送玩。

参数详解

[root@nfs01 /application/sersync]# ./sersync2 -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参数,则默认执行同步程序

________________________________________________________________

查看进程

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

root 2187 1 0 23:45 ? 00:00:00 ./sersync2 -d -r -o /application/sersync/confxml.xml

root 2231 2142 0 23:57 pts/1 00:00:00 grep --color=auto sersync

扩展命令 :pstree 查看服务有多少个线程

[root@nfs01 /application/sersync]# pstree

systemd─┬─agetty

├─crond

├─dbus-daemon

├─gssproxy───5*[{gssproxy}]

├─lvmetad

├─rpc.idmapd

├─rpc.mountd

├─rpc.statd

├─rpcbind

├─rsyslogd───2*[{rsyslogd}]

├─2*[sersync2───11*[{sersync2}]]

├─sshd───sshd───bash───pstree

├─systemd-journal

├─systemd-logind

└─systemd-udevd

测试一下效果就行了

[root@nfs01 /data]# ls

a.txt c.txt e.txt g.txt i.txt k.txt m.txt o.txt q.txt s.txt u.txt w.txt y.txt

b.txt d.txt f.txt h.txt j.txt l.txt n.txt p.txt r.txt t.txt v.txt x.txt z.txt

[root@backup /data]# ls /backup/

a.txt c.txt e.txt g.txt i.txt k.txt m.txt o.txt q.txt s.txt u.txt w.txt y.txt

b.txt d.txt f.txt h.txt j.txt l.txt n.txt p.txt r.txt t.txt v.txt x.txt z.txt

添加开机自启动

[root@nfs01 ~]# vim /etc/rc.local [root@nfs01 ~]# tail -2 /etc/rc.local

# sersync monitor server

/application/sersync/sersync2 -d -o /application/sersync/confxml.xml

完美

来源:https://www.cnblogs.com/woaiyunwei/p/12892785.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值