linux数据同步备份工具之rsync

一、rsync基本配置及介绍

1.什么是rsync?
      rsync(rsync  —  a  fast,  versatile(通用的), remote (and local) file-copying tool 
)一款开源的,快速的,多功能可实现全量及增量的本地或者远程数据同步备份的优秀工具可适用于多个操作系统之上。rsync具有可以使本地和远程两台主机之间的数据快速的同步和备份的用能。
2.rsync的特性  
1)支持拷贝特殊文件如连接文件设备等  
2)可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能 --exclude
3)可以实现增量同步,即只同步发生变化的数据,因此效率很高

3.rsync1.基本的命令行与常用选项

1)本地拷贝,命令行:    rsync [OPTION]... src [src]... dest

比如,把/etc/hosts/文件拷贝到/tmp目录下,其功能相当于cp 。
rsync命令是客户端命令    
rsync -avz(保持属性)   /etc/hosts   /tmp

2)本地删除,相当于rm命令,把/tmp目录里面的内容置换成空。

rsync -avz --delete /null/  /tmp

3)远程拷贝rsync支持"本地->远程","远程->本地"双方拷贝,不支持"远程->远程"拷贝.rsync的网络功能通过两种方式:ssh服务和rsync --daemon服务.

push:把本地的/tmp拷贝到远端的:10.0.0.131:/tmp/

rsync -avzP -e ‘ssh -p 22‘  /tmp/  10.0.0.131:/tmp/
pull:把远端的10.0.0.131:/tmp拷贝到本地的/tmp/

rsync -avzP -e ‘ssh -p 22‘ 10.0.0.131:/data/  /tmp

4.rsync服务端配置.

rsync是一个C/S杂交体,它就一个程序即可以当客户端也可以当服务端用.--daemon一秒钟变身服务端.
/etc/services文件里记录了rsync默认使用873号端口.当然像别的服务一样,rsync同样是需要配置文件的.rsync默认是找
/etc/rsyncd.conf.但是此目录是事先不存在的。
具体的格式大家可以man一下rysncd.conf,里面有详细的介绍.其实就跟samba这种比较类似,下面是一个简单的rsyncd.conf:

#指定访问用户

uid = rsync

#指定访问组

gid = rsync

#禁止chroot(不可连接后切换用户)

use chroot = no

#允许访问目录列表

list = false

#最大的连接数

max connections = 2000

#超时时间

timeout=600

#存放进程号文件的路径

pid file = /var/run/rsyncd.pid

#存放日志文件的路径

log file = /var/log/rsyncd.log

#允许访问rsync 服务的地址范围

hosts allow = 10.0.0.0/24

#拒绝访问的rsync服务的地址范围

hosts deny = 0.0.0.0/32

#标识为不可读

read only = false

#虚拟用户文件

auth users=rsync_backup

#密码文件

secrets file=/etc/rsync.password

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

#此为开放的tag:

[data]

#备份路径

path = /data

#注释信息

comment =write by chen

[backup]

#备份路径

path = /backup

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

#Rsync server
#created by chen 2016.4.22 20:31
##rsyncd.conf start##
uid=rsync
gid=rsync
use chroot=no
max connections=2000
timeout=600
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
log file=/var/log/rsyncd.log
ignore errors
read only=false
list=false
hosts allow=10.0.0.0/24
hosts deny=0.0.0.0/32
auth users=rsync_backup
secrets file=/etc/rsync.password
########################################
[backup]
comment=backup server by chen 20:36 2016.04.22
path=/backup [备份路径]
###########end##########################

完成上面配置后即可启动rsync服务:rsync --daemon

5.查看服务是否启动命令

[[email protected] ~]# ps -ef|grep rsync
root      2833     1  0 20:53 ?        00:00:00 rsync --daemon
root      2835  2642  0 20:53 pts/0    00:00:00 grep --color=auto rsync
[[email protected] ~]# netstat -tunpl |grep rsync
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      2833/rsync          
tcp        0      0 :::873                      :::*                        LISTEN      2833/rsync          
[[email protected] ~]# lsof -i :873
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   2833 root    3u  IPv4  16376      0t0  TCP *:rsync (LISTEN)
rsync   2833 root    5u  IPv6  16377      0t0  TCP *:rsync (LISTEN)
[[email protected] ~]#

6.创建用户、备份目录和授权以及配置密码

useradd rysnc -s /sbin/nologin/ -M

id rysnc

mkdir /backup

chown  -R rsync.rsync /backup/

echo "rsync_backup:chen">/etc/rsync.password

chmod 600 /etc/rsync.password

7.客服端配置

echo "chen">/etc/rsync.password

chmod 600 /etc/rsync.password

完成上面所有步骤后即可实现本地和远端及其远端到本地的文件及目录数据备份

无差异同步:
rsync -avz --delete [email protected]::backup /tmp/ --password-file=/etc/rsync.password  ----操作此命令时需要备份本地数据

rsync排除某个文件:
排除单个文件
rsync -avz --exclude=/tmp/a /tmp/ [email protected]::backup --password-file=/etc/rsync.password
排除多个文件
rsync -avz --exclude={2,4,5,6}}a /tmp/ [email protected]::backup --password-file=/etc/rsync.password

rsync的优点:
1.增量备份同步,支持socket(daemon),集中备份
rsync的缺点:
1.大量小文件同步时,时间比较长。
2.同步文件比较大,10G这样的大文件有时候会出现问题,中断。未完成同步前,是影藏文件,传输完成则正常显示

rsync缺点:
1.大量小文件同步的时候,对比时间较长,有的时候,rsync进程停止。解决:a.将小文件打包后同步 b.drbd(文件系统同步)
2.同步大文件,10G这样的大文件有时候也会有问题,中断。未完整同步前,是影藏文件,同步完成改为正常文件。

二、rsync服务常见问题总结

问题一:

@ERROR: chroot failed

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器端的目录不存在或无权限。创建目录并修正权限可解决问题。

问题二:

@ERROR: auth failed on module tee

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。提供正确的用户名密码解决此问题。

问题三:

@ERROR: Unknown module ‘tee_nonexists’

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。

问题四:

password file must not be other-accessible

continuing without password file

Password:

原因:

这是因为rsyncd.pwd rsyncd.secrets的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd

问题五:

rsync: failed to connect to 218.107.243.2: No route to host (113)

rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]

原因:

对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp的873端口打开。

问题六:

rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]

原因:

/etc/rsyncd.conf配置文件内容有错误。请正确核对配置文件。

问题七:

rsync: chown "" failed: Invalid argument (22)

原因:

权限无法复制。去掉同步权限的参数即可。

时间: 2024-10-11 12:06:31

linux数据同步备份工具之rsync的相关文章

搭建中小规模集群之rsync数据同步备份

NFS重要问题 1.有关NFS客户端普通用户写NFS的问题. 1)为什么要普通用户写NFS. 2)exports加all_squash. Rsync介绍 什么是Rsync? Rsync是一款开源的.快速的.多功能的.可实现全量即增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix.linux.windows等多种操作系统平台. Rsync简介 Rsync英文全称Remote synchronization.从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快

rsync远程同步备份工具

rsync远程同步介绍 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,切采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用. rsync官方站点是http://rsync.samba.org/,由Wayne Davsion进行维护.作为一种常用的备份工具,rsync往往是Linux和Unix系统默认安装的基本组件之一. 在远程同步任务中,负责发起rsync同步操作的客户机称为发

使用rsync实现服务器数据同步备份

使用rsync实现数据实时同步备份 实验目标 rsync 远程同步 实战1: 备份/var/www/html 目彔 实战2: 使用ssh密钥实现无交互备份 实战3: 配置rsync 服务器及需要备份的目彔,不使用系统用户 实战4: 配置rsync+inotify实时同步 实战5: 防止网页被篡改 实验概述 软件简介 Rsync ( Remote sync)是一个远程数据同步工具,使用与unix/Linux/windows等多种平台.  可通过LAN/WAN 快速同步多台主机间的文件.Rsync

关于Linux/Unix数据自动备份工具

我们在编写程序的时候经常会需要对数据进行备份,那么就需要使用到自动备份工具,那么你对Linux/Unix数据自动备份工具了解有多少呢? 下面我们就一起去看看关于Linux/Unix数据自动备份工具的内容. primabackup.sh 说明文档 版本:2.0.1 0. 版本更新 * 2006-11-23 SWsoft.com.cn v2.0.2 - [fix] 修复resin路径 * 2005-03-28 ValueOf.com v2.0.1 - [fix] 备份resin和tomcat的配置

用 C# 写一个 Redis 数据同步小工具

用 C# 写一个 Redis 数据同步小工具 Intro 为了实现 redis 的数据迁移而写的一个小工具,将一个实例中的 redis 数据同步到另外一个实例中.(原本打算找一个已有的工具去做,找了一个 nodejs 的小工具,结果折腾了好久都没装上...于是就自己写了这个小工具) 之所以自己写一个工具而不是利用 redis 备份机制来实现,主要是因为我们用的是 redis 云服务,不能像自己的服务器一样 SSH 上去一顿操作,要把云服务的 redis 数据同步到自己服务器上的 redis 实例

linux之rsync远程数据同步备份

rsync服务是一种高效的远程数据备份的工具,该服务的port号为873, 是Liunx下的一种非独立服务.由xinetd超级服务管理,取代监听873port. 长处: 1.rsync能够利用ssh和ssl远程控制进行连接远程主机进行备份.依赖sshd服务 2,能够实现增量备份,在第一次建立连接时进行完整备份,以后仅仅同步变化的数据 3.能够使用自己的socket来进行同步.能够在服务端设置password限制訪问. 缺点:不能进行实时同步,须要安装lsyncd工具来辅助进行实时同步. 配置步骤

rsync从windows到linux的同步备份

名称 角色 IP地址 Windows server 2003 服务器 Eth0:192.168.1.1 RHEL5.5 客户端 Eth0:192.168.1.2 一.cwRsyncServer服务端配置 下载服务端cwRsyncServer 解压cwRsyncServer_4.0.3_Installer.zip,双击cwRsyncServer_4.0.3_Installer.exe 我的电脑—右键管理---服务和应用—服务 找到RsyncSever,双击—启动 提供桌面交互 打开E盘,创建要备份

Centos rsync+inotify 实现数据同步备份

最近公司做了一??分布式,便于管理安装了 server: 192.168.2.29 client: 192.168.2.230 先来配置client 安装就不介绍了 [[email protected]-tracker-230 rsync]# ll total 16 drwxr-xr-x. 2 root root 4096 Nov 13 04:23 bin -rw-r--r--. 1 root root 405 Nov 14 01:19 rsyncd.conf -rw-------. 1 roo

centos6,mysql 5.5 配置 master \ slave 数据同步备份

数据库A 做为主服务,数据库B做为同步库(注: 两边数据库库必须要一至,要不然会有不断的错误信息出来,改啊改,就是不成功) 1.配置 master vi /etc/my.cnf [mysqld] server-id=1 log-bin=log path binlog-do-db=xxxx //表示只备份xxxx这个库 ,可以配置多个库 binlog-ignore-db=yyy //表示忽略yyy库 注: 如果binlog-do-db,binlog-ignore-db不加会默认备份全部库 重启数据