rsync远程同步备份


作者Georgekai

归档:学习笔记

2018/1/22

本章正题:rsync远程同步备份

1.5.1 什么是rsync?

开源的、快速的、多功能的、可实现全量及增量备份的本地或远程数据同步备份方案

rsync官网:http://rsync.samba.org/documentation.html

1. 什么是全量、什么是增量?

全量备份:本地所有数据都进行传输复制,不管对端服务器是否有相同的数据,如果有进行覆盖

增量备份:只备份同步变化的的数据,对端服务器已存在的数据不进行传输复制

1.5.2 rsync软件命令特点

1. rsync == scp (scp是全量复制、rsync是增量复制),利用的是ssh协议

参数:-r  #递归

-p  #保证文件权限不变

-a  #包括多个参数

scp远程传输文件:scp -rp /oldboy_dir/oldboy_file1 172.16.1.31:/tmp

scp远程传输目录:scp -rp /oldboy_dir/ 172.16.1.31:/tmp

rsync远程传输文件:rsync -rp /oldboy_dir/oldboy_file1 172.16.1.31:/tmp

rsync远程传输目录:rsync -rp /oldboy_dir 172.16.1.31:/tmp

PS: 1.如果传输目录时,目录后面有“/”,表示将目录下面的数据内容传输过去

2.如果传输目录时,目录后面没有“/”,表示将目录本身及目录下面的数据内容进行传输过去

2. rsync == cp

cp本地传输文件或目录:cp  -a  /oldboy_dir/oldboy_file1 /tmp

rysnc本地传输文件或目录:rsync   -a  /oldboy_dir/oldboy_file1 /tmp

3. rsync == rm

创建空目录:mkdir /null

rsync清空目录:rysnc  --delete -r  /null/  172.16.1.31:/oldboy_dir/

4. rsync == ls

查看远程端的数据:rsync 172.16.1.31:/tmp/

1.5.3 rsync实现增量同步原理说明

1. rysnc通过quick check算法实现增量传输数据。

2. 同步方式: 1)CentOS 5中,把所有文件对比一遍,然后把差异数据进行同步

2)CentOS 6中,一边对比差异,一边把差异的数据进行同步(效率快)

3. 查看rsync版本

rsync --version

1.5.4 rsync软件的特点

1. 支持拷贝普通文件与特殊文件(如链接文件,设备)

2. 可以有排除指定文件或目录同步的功能,相当于tar的排除

3. 可以做到保持原文件或目录的权限时间,或软硬连接的属性不变

4. 可以实现增量同步,指同步发生变化的数据,所以传输速率很高

# 将备份/home 目录自 2008-01-29 之后修改过的文件

tar -N 2008-01-29 -zcvf /backups/inc-backup_$(date +%F).tar.gz /home

# 将备份 /home 目录昨天之后修改过的文件

tar -N $(date -d yesterday "+%F") -zcvf /backups/inc-backup_$(date +%F).tar.gz /home

# 添加文件到已经打包的文件

tar -rf all.tar *.gif

PS:这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

5. 可以使用rcp、rsh、ssh等方式来配置行进隧道加密传输文件(rsync本身不会对数据加密)

6. 可以支持socket(守护进程的方式)传输文件和数据(服务端和客户端)

7. 支持匿名或认证的进程模式传输,可是实现安全地进行数据备份及镜像


1.5.6 rsync的企业工作场景说明

1. 利用定时任务实现数据备份(crond+rsync)

2. 利用实时同步方式实现数据备份(inotify或sersync+rsync)

1.5.7 rsync的工作方式

1.本地数据备份方式,类似上面的cp命令

2.远程备份shell方式,类似上面的scp命令

语法结构:

Access via remote shell:
         Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST]
         Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST

实现远程备份方式,类似scp命令
   Pull(拉):
   rsync       ---数据备份命令
   [OPTION...]    ---指定备份数据命令参数
   [[email protected]]HOST:    ---定义以什么身份从相应主机上,拉取数据信息
                    (如果没有[[email protected]],表示以当前用户身份登录到远程主机,拉取数 据)
   SRC...         ---将要从远端服务拉取的数据信息(文件或目录)
   [DEST]         ---将拉取过来的数据,保存到本地路径信息
   
   Push(推):
   rsync       ---数据备份命令
   [OPTION...]     ---指定备份数据命令参数
   SRC...       ---将本地服务上数据信息(文件或目录),推送到远端
   [[email protected]]HOST:   ---定义以什么身份向相应主机上,推送数据信息
                    (如果没有[[email protected]],表示以当前用户身份登录到远程主机,推送数 据)
   DEST           ---将本地数据推送到远程服务器的路径信息

示例:

pull(拉):rsync -rp [email protected]:/etc/hosts /tmp/

以oldboy用户身份将31主机的hosts文件拉取到本地的/tmp/目录下

注:如果前面不写用户名表示以当前用户身份拉取数据

push(推):rsync -rp /etc/hosts [email protected]:/tmp/

以oldboy用户身份将本地hosts文件推送到41服务器的/tmp目录下

注:下图解释推和拉的概念

3. rsync守护进程方式,进行数据备份同步:(重点

语法结构:

Access via rsync daemon:
         Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]
               rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST]
         Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST
               rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST
实现守护进程方式,进行数据备份同步:
   Pull:
   rsync          ---数据备份命令
   [OPTION...]     ---指定备份数据命令参数
       [[email protected]]HOST::  ---指定认证用户身份信息,从相应主机,拉取数据信息
   SRC...          ---指定一个模块信息?
   [DEST]          ---将拉取过来的数据,保存到本地路径信息

Push:
   rsync          ---数据备份命令
   [OPTION...]      ---指定备份数据命令参数
   SRC...          ---将本地服务器上数据信息(文件或目录),推送到远端
   [[email protected]]HOST::      ---指定认证用户身份信息,将本地主机数据,推送到远端
   DEST           ---指定一个模块信息?

 

1.5.8 rsync守护进程模式部署步骤:

1. 服务端部署:

1)检查软件是否存在

rpm -qa|grep rsync (如果不存在,yum install rsync -y安装一下即可)

2)编写rsync软件的配置文件(编辑后面的步骤可以根据配置文件操作)

vim /etc/rsyncd.conf(默认是没有这个配置文件)

全局配置:

#注释信息:谁写的,时间,干什么用的

uid = rsync #远端的用户使用rsync访问共享目录

gid = rsync #远端的用户组使用rsync这个组访问共享目录

use chroot = no #是否将用户锁定在当前目录

max connections = 200 #用户最大连接数

timeout = 300 #等待超时时间定义

pid file = /var/run/rsyncd.pid #存放进程对应的pid号(进程号)

注:杀死进程的三种方式:1. kill pid号(会提示信息)

如:kill `cat /var/run/rsyncd.pid` (杀死rsync进程号)

2. killall 进程名(会提示信息)

3. pkill 进程名,类似的都会一起杀掉(不会提示信息)

lock file = /var/run/rsyncd.lock #进程的锁文件(超过max connections就锁了,其他用户不能进了)

log file = /var/log/rsyncd.log #日志文件,存放出错信息等

局部配置:

[backup] #模块(类似于变量,调用里面的信息)

comment = “bakcup dir by oldboy” #说明信息

path = /backup #(模块对应的位置)

ignore errors #忽略错误程序

read only = false #bakcup目录是否为只读权限

list = false #是否可以列表*(显示出所有模块)

hosts allow = 172.16.1.0/24 #白名单

hosts deny = 0.0.0.0/32 #黑名单

auth users = rsync_bakcup,george  #认证用户,不需要创建这个用户(通过这个用户拉或推数据)

secrets file = /etc/rsync.password  #认证用户的密钥文件(将认证用户的密码存放进去)

3)创建rsync备份目录的管理用户

useradd -s /sbin/nologin -M rsync

4)创建认证用户密钥文件

echo "rsync_bakcup:[email protected]" /etc/rsync.password

chmod 600 /etc/rsyncd.password #更改权限600

5)创建备份目录

mkdir /backup

chown rsync.rsync /bakcup #让远程用户rsync可以访问

6)启动rsync 守护进程服务

rsync --daemon

注:rsync默认端口号:TCP 873

2. 客户端部署:

1)进行测试传输备份数据:

NFS推送数据到rsync: rsync  -avz  /etc/hosts [email protected]::backup

rsync守护进程模式数据传输原理:

如果把模块对应目录的属主改成root,是没有权限访问rsync服务器的(rsync服务器只认被认证的用户)

微信公众号:linux运维菜鸟之旅

原文地址:http://blog.51cto.com/13055758/2063807

时间: 2024-08-12 11:15:49

rsync远程同步备份的相关文章

rsync远程同步备份工具

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

CentOS 6.x中用rsync远程同步文件

CentOS 6.x中用rsync远程同步文件 系统环境:Centos 6.9 x64  目的: 服务器110.112.200.12中/u01文件夹需要同步复制到110.210.250.58里面进行备份. 将200.12做xinetd 服务器,将其/u01 文件夹复制同步到250.58里面去,250.58做客户端. 一.服务器端的配置 在源服务器110.112.200.12中配置 [[email protected] test]#  yum -y install xinetd rsync 再修改

rsync 远程同步 linux 及 windows 主机

一.前言 1.rsync原理及rsync+inotify触发同步 http://nmshuishui.blog.51cto.com/1850554/1387048 2.本篇说明 为了保证数据的绝对可靠性: 首先,所有的服务器的数据都用脚本打包备份在本地一份,如上篇博客 其次,单独拿出一台pc机做备份机,为rsync客户端,每天定时却拉取各rsync服务器备份好的数据包 再次,使用rsync同步 linux 及 windows 服务器 3.服务器说明 rsync服务器:192.168.200.16

rsync远程同步服务

rsync远程同步服务,,在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等信息 rsync是xinetd的子服务 配置rsync服务器 rsync服务器主要有三个配置文件(需要自己手动创建) 1.rsyncd.conf 2.rsyncd.secrets 3.rsyncd.motd mkdir /etc/rsyncd         #创建配置目录 cd /etc/rsyncd touch rsyncd.conf               #创建主配置文件 touch rsyncd.s

rsync远程同步及rsync+inotify实时同步

rsync远程同步及rsync+inotify实时同步 思维代入 正确.有效的备份方案是保障系统及数据安全的重要手段.在服务器中,通常会结合计划性任务.shell脚本来执行本地备份.但有时候为了提高备份的可靠性,异地备份也是非常有必要的.那下面就给大家介绍一种异地远程备份的方法:rsync远程备份. rsync简介 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份.保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份.镜像服务等应用

Rsync远程同步工具

Rsync远程同步工具1配置rsync源服务器(http://rsync.samba.org/)(1)建立配置文件vim /etc/rsyncd.confuid = nobody //指定运行程序的用户gid = nobody //指定运行程序的组use chroot = yes //禁锢在源目录,指只能访问我指定的目录不允许访问其他目录,类似以vsftpd的禁锢address = 192.168.1.20 //指定监听的地址port 873 //指定监听的端口log file = /var/l

rsync远程同步(定期同步、实时同步)

关于rsync . 一款快速增量备份工具 1.Remote Sync,远程同步 2.支持本地复制,或者与其他SSH.rsync主机同步 3.官方网站: http://rsync.samba.org 配置rsync源服务器 rsync同步源: 指备份操作的远程服务器,也称为备份源 配置rsync源 基本思路: 1.建立rsyncd.conf配置文件.独立的账号文件 .启用rsync的--daemon模式 应用示例: 1.户backuper,允许下行同步 2.操作的目录为/var/www/html/

rsync+inotify同步备份MYSQL数据

rsync+inotify同步备份MYSQL数据 rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,但是rsync不能实时的去监测.同步数据.inotify 是一种强大的.细粒度的.异步的文件系统事件监控机制,通过inotify可以监控文件系统中添加.删除,修改.移动等各种细微事件. 实验环境:备份端192.168.1.123(rsync server) 备份源192.168.124(rsync client inotify mysql)

Linux之rsync 远程同步

Linux之rsync 远程同步 1. 案例 1. 开始部署 (1) 在1.10服务器上配置为服务端,修改rsync的配置文件/etc/rsyncd.conf,并启动rsync服务程序. (2) 在1.20上使用rsync命令验证是否能够从服务端(/var/www/html)下载文件到客户机端(/var/www/html). (3) 修改rsync的配置文件/etc/rsyncd.conf,实现客户机端(/var/www/html)能上传文件到服务端的(/var/www/html)位置.在客户机