rsync 实现实时增量备份

简介: Rsync + Crontab实现定时文件同步(首次全量+后续增量) 2015-04-14 19:02:11标签:增量更新 rsync crontab原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

Rsync + Crontab实现定时文件同步(首次全量+后续增量) 2015-04-14 19:02:11

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://lu2yu.blog.51cto.com/10009517/1632410

一、简介

    在配置HA的时候,需要配置多个节点的配置,节点间的配置很多时候都是类似重复的,也许可以通过scp等手段实现,但是每次的更改都需要手动scp也显得麻烦,这边我们可以通过rsync的方式来实现文件的同步。

    使用rsync+crontab做定时同步时,主服务器端开启rsync守护进程,而镜像服务器是运行rsync客户端,平时一般会利用crontab定时获取rsync服务器上的数据。

 

 

二、配置

  ①rsync的服务端(文件发送出去端)

    以守护进程的形式后台运行

 

 1.rsync的安装和文件包组成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@web1 ~] # yum install rsync
[root@web1 ~] # rpm -ql rsync 
/etc/xinetd .d /rsync          ##基于xinetd的管理
/usr/bin/rsync               ##rsync工具
/usr/share/doc/rsync-3 .0.6 
/usr/share/doc/rsync-3 .0.6 /COPYING 
/usr/share/doc/rsync-3 .0.6 /NEWS 
/usr/share/doc/rsync-3 .0.6 /OLDNEWS 
/usr/share/doc/rsync-3 .0.6 /README 
/usr/share/doc/rsync-3 .0.6 /support 
/usr/share/doc/rsync-3 .0.6 /support/Makefile 
/usr/share/doc/rsync-3 .0.6 /support/atomic-rsync 
/usr/share/doc/rsync-3 .0.6 /support/cvs2includes 
/usr/share/doc/rsync-3 .0.6 /support/deny-rsync 
/usr/share/doc/rsync-3 .0.6 /support/file-attr-restore 
/usr/share/doc/rsync-3 .0.6 /support/files-to-excludes 
/usr/share/doc/rsync-3 .0.6 /support/git-set-file-times 
/usr/share/doc/rsync-3 .0.6 /support/logfilter 
/usr/share/doc/rsync-3 .0.6 /support/lsh 
/usr/share/doc/rsync-3 .0.6 /support/mnt-excl 
/usr/share/doc/rsync-3 .0.6 /support/munge-symlinks 
/usr/share/doc/rsync-3 .0.6 /support/rrsync 
/usr/share/doc/rsync-3 .0.6 /support/rsyncstats 
/usr/share/doc/rsync-3 .0.6 /support/savetransfer .c 
/usr/share/doc/rsync-3 .0.6 /tech_report .tex 
/usr/share/man/man1/rsync .1.gz 
/usr/share/man/man5/rsyncd .conf.5.gz

     软件包组成中没有提供配置文件和相应的文件,因此需要自行添加如下:

1
2
3
4
5
[root@node1 ~] # mkdir /etc/rsyncd  ##创建配置目录 
[root@node1 ~] # touch /etc/rsyncd/rsyncd.conf  ##创建主配置文件 
[root@node1 ~] # touch /etc/rsyncd/rsyncd.secrets  ##创建用户密码文件 
[root@node1 ~] # chmod 600 /etc/rsyncd/rsyncd.secrets ##修改用户密码文件 
[root@node1 ~] # touch /etc/rsyncd/rsyncd.motd   ##创建定义服务器信息的文件

  

2.编辑配置rsyncd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@node1 ~] # vi /etc/rsyncd/rsyncd.conf
# Minimal configuration file for rsync daemon 
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script 
pid  file  /var/run/rsyncd .pid 
port = 873    ##监听端口 
address = 192.168.192.208   ##监听地址 
#uid = nobody 
#gid = nobody   
uid = root 
gid = root
use chroot =  yes    ##是否限制在指定目录,为了安装,一般需要启用 
read  only = no
 
#limit access to private LANs 
hosts allow=192.168.192.0 /255 .255.255.0    ##允许网段 
hosts deny=*
 
max connections = 5 
motd  file  /etc/rsyncd/rsyncd .motd
#This will give you a separate log file 
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync 
#transfer logging = yes
log  format  = %t %a %m %f %b 
syslog facility = local3 
timeout = 300
 
##定义一个同步目录
[webdir] 
path =  /var/www/html 
list= yes 
ignore errors 
auth  users  = apache 
secrets  file  /etc/rsyncd/rsyncd .secrets   ##指定上述账号密码文件 
comment = web home
exclude =   data/    ##排除目录

 

3.添加账号密码文件

1
2
3
[root@node1 ~] # vi /etc/rsyncd/rsyncd.secrets
apache:123456
##注意,这个账号是系统账号,但没有使用系统账号的密码,而是自定义密码

 

4.让rsync以守护进程运行

1
[root@node1 ~] # /usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf

 

5.开机自动启动

1
[root@node1 ~] # echo "/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf" >> /etc/rc.d/rc.local

 

②配置rsync的客户端

  客户端同样需要安装rsync,但是只需要配置如下文件即可

1
2
3
[root@node2 ~] # mkdir /etc/rsyncd  ##创建配置目录 
[root@node2 ~] # echo “passowd123”> /etc/rsyncd/rsyncd.password  ##创建密码文件,密码为服务器端rsyncd.secrets文件中的密码。
[root@node2 ~] # chmod 600 /etc/rsyncd/rsyncd.password

 

 

 

③同步操作

1
2
3
4
5
6
7
8
9
10
11
12
[root@node2 ~] # rsync -avzP --delete  --password-file=/etc/rsyncd/rsyncd.password apache@192.168.192.208::webdir /var/www/html/
 
说明:
--delete:本地与服务器完全一样,如果本地存在不一样的,则删除,慎用
--password- file :指定密码文件,如果不指定,则需手动输入
-a :参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件; 
-z :传输时压缩; 
-P :传输进度; 
- v  :传输时的进度等信息
apache@192.168.192.208::webdir  用双冒号引用主配置文件中的定义资源,也可以使用单引号跟绝对路径
 
以后同步时,只会同步新增内容。

 

 

1
rsync  -avzP --delete  --password- file = /etc/rsyncd/rsyncd .password apache@192.168.192.208::webdir
目录
相关文章
|
8月前
|
监控 安全 Unix
Rsync+Inotify实现数据实时同步
Rsync+Inotify实现数据实时同步
|
监控
inotify+rsync实现实时同步数据
inotify+rsync实现实时同步数据
123 0
02-rsync备份方式
1.Rsync应用场景 数据同步的方式 ​ 推:push,上传(upload) ​ 将客户端的数据上传到rsync服务端
168 0
02-rsync备份方式
01-rsync备份方式
Rsync备份方式 1.rsync概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份,因此非常适合用于架构集群中本地备份或异地备份等应用 Samba服务:文件共享,基于cifs协议 rsync官方地址:https://rsync.samba.org/ rsync监听端口:873 rsync运行模式:C/S rsync两种备份方式 完整备份 ​ 将file{1…3}全部备份至服务端
274 0
01-rsync备份方式
|
监控 数据安全/隐私保护 Linux
rsync+Inotifywait实现文件实时同步
rsync+Inotifywait实现实时同步 背景: 某客户想实现实现异地灾备,想达到的是A机房出现断电的时候。数据能实时的将数据同步到B上,并且域名切换到B之后能提供业务 。使用rsync+inotify做web数据和ftp(ftp主要是用户上传的图片文件)的数据实时同步. 一:软件介绍: rsyncrsync是一个开源的快速备份工具,可以再不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,再传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
2216 0
|
数据安全/隐私保护 算法 Shell
|
网络安全 Shell 应用服务中间件
|
监控 开发工具 数据安全/隐私保护
|
网络安全 数据安全/隐私保护