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

rsync 实现实时增量备份的更多相关文章

  1. NFS +inotify+rsync 实现数据的远程挂载与实时增量备份

    NFS 网络文件系统 功能: 用户可以像访问自己的本地文件系统一样使用网络中的远端系统上的文件 原理: 用户进程-->RPC服务(portman)-->tcp/ip协议栈-->远端主 ...

  2. Rsync + sersync 实时同步备份

    一      Rsync + Sersync  实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 ...

  3. linux下rsync和tar增量备份梳理

    前面总结过一篇全量备份/增量备份/差异备份说明,下面介绍下linux下rsync和tar两种增量备份的操作记录: 1)rsync备份 rsync由于本身的特性,在第一次rsync备份后,以后每次都只是 ...

  4. rsync数据定时增量备份知识管理服务器数据

    为了保证公司知识管理服务器数据的安全性,所以计划每天同步confluence服务器上面数据 一.安装rsync服务端 1.查看是否安装rsync ps -ef | grep rsync 2.添加配置文 ...

  5. Linux rsync数据定时增量备份

    一.安装rsync服务端 1.查看是否安装rsync ps -ef | grep rsync 系统一般默认已安装,安装方法: yum -y install rsync 2.添加配置文件 rsync没有 ...

  6. mysql实时增量备份

    采用binlog日志的好处 掌控所有更改操作,必要时可用于恢复数据 数据库主从复制的必要条件 [root@localhost~]# vim /etc/my.cnf [mysqld] .. .. log ...

  7. 三十三.mysqldump 实时增量备份 、innobackupex

    1.数据库备份与恢复 逻辑备份工具 mysqldump 使用mysql 恢复数据库   1.1备份MySQL服务器上的所有库 ]# mysqldump -u root -p123456 --all-d ...

  8. rsync实现数据增量备份

    环境说明: 主机ip:192.168.0.201 需备份的目录:/opt/mail 备份机器ip:192.168.0.215 1.编辑/etc/rsyncd.conf文件(etc目录不存在的话,需要手 ...

  9. rsync无密码实时增量同步

    rsync -azvP /rsync/ --password-file=/etc/rsyncd/rsyncd.password  ruiy@192.168.11.199:/rsync/ rsync - ...

随机推荐

  1. iphone dev 入门实例1:Use Storyboards to Build Table View

    http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/ Creating Navig ...

  2. HtmlParser

    HtmlParser 基本类库使用 HtmlParser 提供了强大的类库来处理 Internet 上的网页,可以实现对网页特定内容的提取和修改.下面通过几个例子来介绍 HtmlParser 的一些使 ...

  3. DBA_Oracle LogMiner分析重做和归档日志(案例)

    2014-08-19 Created By BaoXinjian

  4. 洛谷 P1060 开心的金明

    开心的金明 Problem Description: 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些 ...

  5. HDU 2087 剪花布条(KMP,不可重叠重复子串)

    给KMP传的数组一定要从0开始!! 显然,我们要先把模式串放到前面,之后主串放后面,中间隔开,这样就可以根据前缀数组的性质来求了. 这题和我上一篇博客类似,只不过不可重叠,我看了数据范围不大,所以就开 ...

  6. [MySQL] 两个优化数据库表的简单方法--18.3

    这里介绍两个简单的优化MySQL数据库表的方法 一.定期分析表和检查表 1.分析表语法如下: alalyze [local|no_write_to_binlog] table table_name1[ ...

  7. JAVA 单选按钮、复选按钮

    //单选按钮和复选按钮 import java.awt.*; import javax.swing.*; public class Jiemian6 extends JFrame{ JPanel mb ...

  8. Python标准库02 时间与日期 (time, datetime包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python具有良好的时间和日期管理功能.实际上,计算机只会维护一个挂钟时间(wa ...

  9. IIS6.0中布署MVC站点(转)

    昨晚我写的API上线,API是vs2010 + MVC4开发的,需要布署到windows 2003 server + IIS6.0的环境中,之前一直是布在IIS7.0,比较熟悉, 换到IIS6.0,添 ...

  10. 最简的Dubbo例子部署

    dubbo 中包含下面4个核心组件: 生产者.消费者.注册中心.监控中心.   简单部署的模块关系 生产者.消费者 最简版本的Dubbo部署只运行Demo Provider和Demo Consumer ...