码迷,mamicode.com
首页 > 其他好文 > 详细

rsync备份

时间:2018-01-13 18:49:28      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:实时   cal   user   uid   cti   加密传输   etc   通过   第一个   

运维人员基本职责
数据不能丢失(运维最重要的职责)
7*24小时提供服务,网站不宕机
提升用户体验

rsync备份服务介绍

Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具
rsync — a fast, versatile, remote (and local) file-copying tool
来自:http://www.samba.org/ftp/rsync/rsync.html
通过:man rsync
全量复制:是将所有备份数据都同步一遍
增量复制:只将变化的新增的数据,进行备份同步

rsync命令具有4种功能(1v4)

1、shell模式,也称作本地模式
2、远程shell模式,此时可以利用ssh协议承载其数据传输过程
3、列表模式,其工作方式与ls相似,仅列出源的内容:-nv
4、服务器模式,此时,rsync可以工作在守护进程,能够接收客
户端的数据请求;在使用时,可以在客户端使用rsync命令把文件发送
到守护进程,也可以像服务器请求获取文件

1.2.1 具有本地数据备份复制功能(类似于cp命令)
本地文件数据备份
[root@backup ~]# \cp /etc/hosts /tmp/
[root@backup ~]# ll /tmp/hosts
-rw-r--r-- 1 root root 371 Nov 28 09:05 /tmp/hosts

[root@backup ~]# rsync /etc/hosts /tmp/

、 [root@backup ~]# ll /tmp/hosts
-rw-r--r-- 1 root root 371 Nov 28 09:07 /tmp/hosts

本地目录数据备份
[root@backup ~]# mkdir /oldboy_dir/
[root@backup ~]# touch /oldboy_dir/{a..e}
[root@backup ~]# tree /oldboy_dir/
/oldboy_dir/
├── a
├── b
├── c
├── d
└── e

[root@backup ~]# cp -r /oldboy_dir/ /tmp/
[root@backup ~]# ll /tmp/oldboy_dir/ -d
drwxr-xr-x 2 root root 4096 Nov 28 09:10 /tmp/oldboy_dir/
[root@backup ~]# tree /tmp/oldboy_dir/
/tmp/oldboy_dir/
├── a
├── b
├── c
├── d
└── e

0 directories, 5 files

[root@backup ~]# rsync -r /oldboy_dir/ /tmp/
[root@backup ~]# ll /tmp/oldboy_dir/ -d
ls: cannot access /tmp/oldboy_dir/: No such file or directory
说明:备份目录下面的数据内容备份过去了,但目录本身没有备份

[root@backup ~]# rsync -r /oldboy_dir /tmp/
[root@backup ~]# ll /tmp/oldboy_dir/ -d
drwxr-xr-x 2 root root 4096 Nov 28 09:13 /tmp/oldboy_dir/
[root@backup ~]# tree /tmp/oldboy_dir/
/tmp/oldboy_dir/
├── a
├── b
├── c
├── d
└── e

0 directories, 5 files

总结说明:利用rsync命令在备份数据目录时
备份的数据目录后面有    /  类似这样形式/oldboy_dir/,表示只将oldboy_dir目录下面的内容进行复制
备份的数据目录后面没有  /  类似这样形式/oldboy_dir,  表示将oldboy_dir目录下面的内容以及目录本身进行复制

1.2.2 具有远程数据备份复制功能(类似于scp命令)
[root@backup ~]# scp /etc/hosts 172.16.1.31:/tmp/
root@172.16.1.31‘s password:
hosts 100% 371 0.4KB/s 00:00

[root@backup ~]# scp -r /oldboy_dir/ 172.16.1.31:/tmp/
root@172.16.1.31‘s password: 
Permission denied, please try again.
root@172.16.1.31‘s password: 
c                            100%    0     0.0KB/s   00:00    
d                            100%    0     0.0KB/s   00:00    
e                            100%    0     0.0KB/s   00:00    
b                            100%    0     0.0KB/s   00:00    
a                            100%    0     0.0KB/s   00:00
说明:scp命令属于全量复制

[root@backup ~]# rsync /etc/hosts 172.16.1.31:/tmp
root@172.16.1.31‘s password: 

[root@backup ~]# rsync -rv /oldboy_dir 172.16.1.31:/tmp/
root@172.16.1.31‘s password: 
sending incremental file list
oldboy_dir/
oldboy_dir/a
oldboy_dir/b
oldboy_dir/c
oldboy_dir/d
oldboy_dir/e
说明:rsync命令属于增量复制

1.2.3 数据删除功能(类似于rm命令)
[root@backup tmp]# mkdir /null
[root@backup tmp]# rsync -rv --delete /null/ /tmp/oldboy_dir/
sending incremental file list
deleting e
deleting d
deleting c
deleting b
deleting a

sent 24 bytes  received 12 bytes  72.00 bytes/sec
total size is 0  speedup is 0.00
[root@backup tmp]# tree /tmp/oldboy_dir/
/tmp/oldboy_dir/

0 directories, 0 files
[root@backup tmp]# 
说明:rsync命令清空目录内容或者清空文件内容效率比rm命令要高

1.2.4 可以进行数据信息查看(类似于ls命令)
[root@backup tmp]# rsync /etc/hosts
-rw-r--r-- 371 2017/11/27 12:15:46 hosts

rsync软件实现增量复制原理

Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,
当然也可根据权限,属主等属性的变化同步

rsync软件特性总结

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

? 2) 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
#tar zcvf backup_1.tar.gz /opt/data -exclude=oldboy
说明:在打包/opt/data时就排除了oldboy命名的目录和文件。
? 3) 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。
? 4) 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。

将备份/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
    说明:这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

? 5) 可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
? 6) 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。重点掌握
? 7) 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
1.5 rsync软件工作原理

rsync软件工作方式

Local:  rsync [OPTION...] SRC... [DEST]

Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

1.6.1 本地数据备份功能(类似于cp)
Local: rsync [OPTION...] SRC... [DEST]
rsync ---数据备份命令
[OPTION...] ---命令相关参数
SRC... ---要进行本地备份的数据信息
[DEST] ---把数据备份到本地什么位置

1.6.2 远程数据备份功能
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

  拉过程语法解释说明
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  rsync         ---数据备份命令
  [OPTION...]   ---命令相关参数     
  [USER@]       ---以什么用户身份进行数据信息拉取
  HOST:         ---远程主机地址信息,或者可以写为远程主机名称信息  
  SRC...        ---要进行远程传输备份的远程数据信息
  [DEST]        ---把远程数据备份到本地什么位置

  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
  rsync         ---数据备份命令
  [OPTION...]   ---命令相关参数     
  [USER@]       ---以什么用户身份进行数据信息推送
  HOST:         ---远程主机地址信息,或者可以写为远程主机名称信息  
  SRC...        ---要进行远程传输备份的本地数据信息
  [DEST]        ---把本地数据备份到远程什么位置

1.6.3 守护进程方式进行数据备份传输(服务端和客户端)
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
  rsync         ---数据备份命令
  [OPTION...]   ---命令相关参数   
  [USER@]       ---远程连接认证用户身份信息,认证用户为一个虚拟用户,不需要进行创建
  HOST::        ---远程主机地址信息,或者可以写为远程主机名称信息 
  SRC...        ---要进行远程传输备份的远程模块信息
  [DEST]        ---把远程数据备份到本地什么位置

  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
  rsync         ---数据备份命令
  [OPTION...]   ---命令相关参数   
  [USER@]       ---远程连接认证用户身份信息,认证用户为一个虚拟用户,不需要进行创建
  HOST::        ---远程主机地址信息,或者可以写为远程主机名称信息 
  SRC...        ---本地要进行远程传输复制的文件或目录信息
  DEST          ---要进行远程传输备份的远程模块信息

rsync软件在企业中做数据备份的方式

1) 定时同步+rsync进行数据备份:一般是网站内部人员存储的数据信息,用定时同步
2) 实时同步+rsync进行数据备份:一般是网站外部人员存储的数据信息,用实时同步
会有全网数据备份项目说明

rsync守护进程模式部署

1.8.1 rsync守护进程服务端部署
第一个里程碑:检查部署软件服务是否存在
[root@backup /]# rpm -qa|grep rsync
rsync-3.0.6-12.el6.x86_64

第二个里程碑:进行rsync软件配置
vim /etc/rsyncd.conf --- 此配置文件默认不存在,需要创建生成
#rsync_config
#created by HQ at 2017
##rsyncd.conf start##

uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
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 = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup

第三个里程碑:创建rsync备份目录管理用户
[root@backup /]# useradd -s /sbin/nologin -M rsync
[root@backup /]# id rsync
uid=1000(rsync) gid=1001(rsync) groups=1001(rsync)

第四个里程碑:创建rsync服务端备份数据目录
[root@backup /]# mkdir /backup
[root@backup /]# chown -R rsync.rsync /backup/
[root@backup /]# ll -d /backup/
drwxr-xr-x 2 rsync rsync 4096 Nov 28 11:22 /backup/

第五个里程碑:创建用户认证文件
[root@backup /]# echo ‘rsync_backup:oldboy123‘ >/etc/rsync.passsword
[root@backup /]# chmod 600 /etc/rsync.passsword
[root@backup /]# cat /etc/rsync.passsword
rsync_backup:oldboy123
[root@backup /]# ll /etc/rsync.passsword
-rw------- 1 root root 23 Nov 28 11:24 /etc/rsync.passsword

第六个里程碑:启动rsync服务,启动守护进程
[root@backup /]# rsync --daemon
[root@backup /]# ps -ef|grep rsync

root 4566 1 0 11:26 ? 00:00:00 rsync --daemon
root 4568 2809 0 11:27 pts/0 00:00:00 grep --color=auto rsync
[root@backup /]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0: LISTEN 4566/rsync
tcp 0 0 :::873 :::
LISTEN 4566/rsync

1.8.2 rsync守护进程客户端部署
客户端测试过程:
rsync -av /etc/hosts rsync_backup@172.16.1.41::backup

rsync命令选项

-n:测试,在不确定命令是否能按照意愿执行时,务必要实现测试
-v:详细输出模式,--verbose
-q:--quiet,静默模式
-c:--checksum,开启校验功能,强行对文件传输进行校验
-r:--recursive,递归复制 表示增加文件的意思

rsync备份

标签:实时   cal   user   uid   cti   加密传输   etc   通过   第一个   

原文地址:http://blog.51cto.com/13547156/2060616

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!