您的位置:首页 > 其它

rsync数据镜像备份+inotify实时同步的简单实现

2017-09-21 20:34 901 查看
1.什么是rsync

       rsync是 Linux / UNIX 系统下的文件同步和数据传输工具,通过rsync可以将同一个服务器的数据从一个分区备份到另外一个分区,也可以将本地系统的数据通过网络传输方式备份到任何一个远程主机上,可以执行完整备份或增量备份。

2.rsync的安装与基本操作

2.1 yum安装rsync,或源码包安装

[root@test1 ~]# yum -y install rsync

2.2 rsync的基本操作

命令用法 :rsync    选项    源目录    目标目录

选项:

-a 归档模式,相当于-rlptgoD

-v 显示同步过程详细信息

-z 传输过程启用压缩

-H 保留硬连接文件

-A 保留文件的ACL权限

-n 测试同步过程,不做实际修改

--delete 修改目标文件夹的多余文件,保持源目录与目标目录的一致

2.3 本地同步

格式:

#  rsync    选项     本地目录1     本地目录2//将本地目录1同步到本地目录2的文件夹中

#  rsync    选项     本地目录1/    本地目录2//将本地目录1的子文件同步到本地目录2的文件夹中

2.4 rsync + ssh 同步

2.4.1 客户端与ssh服务端同步:

下行:rsync    选项    user@host:源目录    本地目录

上行:rsync    选项    本地目录    user@host:目标目录

2.4.2 服务端的要求

1)服务端应开启sshd服务,并提供授权的用户,密码

2)此用户必须对服务端的目录具有相应的权限

2.5 rsync + rsync 同步

2.5.1 客户端与rsync服务端同步

下行:rsync    选项    user@host::共享名    本地目录

上行:rsync    选项    本地目录    user@host::共享名

2.5.2 服务端要求

1)服务端主机运行 rsync 服务模式

2)指定要分享的文件夹,并设置分享名,分享权限

3)根据需要启用用户验证

2.5.3 rsync服务端配置

1)建立rsync账户

# vim /etc/rsyncd_users.db

user1:pwd123

user2:pwd456

# chmod 600 /etc/rsyncd_users.db

2)配置rsyncd.conf 文件

# vim /etc/rsyncd.conf

[tools] // 共享名

path = /usr/src

commet = Rsync Share Test

read onlu = yes

dont compress = *.gz *.bz2 *.tgz *.zip

auth users = user1

secrets file = /etc/rsyncd_users.db

3)启用rsync共享服务

# yum -y install xinetd

# chkconfig rsync on

# chkconfig xinetd on 

# service xinetd start

# rsync 192.168.14.1:://查看服务端192.168.14.1的共享资源

# rsync user1@192.168.14.1::tools//验证密码后可查看tools共享文件夹的资源

# rsync --password-file=密码文件//将密码保存在文件中,免除交互式验证



3.inotify 实时同步

3.1 源码包安装inotify

#  tar -xzf inotify-tools-3.13.tar.gz

# cd inotify-tools-3.13

# ./configure

# make && make install



3,2 inotifywait 监控命令

基本用法: inotifywait    选项    目标文件夹

选项:

-m 启用监控

-r 递归监控,监控本目录以及所有子目录

-q 减少输出信息

-e 设置要监视的事件类型

事件类型:modify, move, create, delete, attrib

//监控文件夹 /opt,当/opt 发生变动时,会输出相应信息

#  inotifywait  -mrq  -e  modify,move,create,delete,attrib  /opt

3.3 inotify + rsync 实现实时同步

基本思路:

-  inotifywait 监控文件夹   |  while    检测,同步

# vim /root/rsync.sh

#!/bin/bash

TARGET_DIR="/data/opt/"

RSYNC_CMD="rsync  -az  --delete  /data/opt/  /data/opt2/"

inotifywait  -mrq  -e  create,move,modify,delete,attrib  $TARGET_DIR  |

while  read  -n5  X

do

    eval  $RSYNC_CMD

done  &

#   chmod  u+x  /root/rsync.sh

#  /root/rsync.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: