rsync 服务部署详解
第1章 rsync 软件介绍
1.1 什么是rsync
rsync 是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。
http://www.samba.org/ftp/rsync/rsync.html
1.1.1 全量及增量
全量:将全部数据,进行传输覆盖
增量:只传输差异部分的数据
1.2 实现增量复制的原理
Rsync通过其独特的“quick check”算法,实现增量传输数据
[root@backup ~]#man rsync
Rsync finds files that need to be transferred using a “quick check” algorithm (by default) that looks for files that have changed in size or in last-modified time. Any changes in the other preserved attributes (as requested by options) are made on the destination file directly when the quick check indicates that the file’s data does not need to be updated.
在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据。
centos 5 rsync 2.x 先比对再同步,速度较慢
centos 6 rsync 3.x 一边比对,一边对差异部分进行同步
1.2.1 软件版本
[root@backup ~]#个特性信息说明)
01. 支持拷贝普通文件与特殊文件如链接文件,设备等。
02. 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
#tar zcvf backup_1.tar.gz /opt/data -exclude=oldboy
说明:在打包/opt/data时就排除了oldboy命名的目录和文件。
03. 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。
04. 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(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是表示增加文件的意思。
05. 可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
06. 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。重点掌握
07. 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
1.5 Rsync的企业工作场景说明
01. 两台服务器之间数据同步(定时任务cron+rsync)
同步网站内部人员数据信息(定时任务最小周期为1分钟)
02. 两台服务器之间数据同步(实时任务inotify/sersync/lrsyncd+rsync)
同步网站用户人员数据信息
第2章 rsync使用方式
2.1 rsync软件工作方式
SYNOPSIS
本地数据同步方式
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
2.1.1 本地数据同步方式(类似于cp)
Local: rsync [OPTION...] SRC... [DEST]
|
参数 |
含义 |
|
rsync |
数据同步命令 |
|
[OPTION...] |
rsync命令参数信息 |
|
SRC |
要同不得数据信息(文件或目录) |
|
[DEST] |
将数据传输到什么位置 |
2.1.1.1 实例演示命令:
[root@backup ~]# rsync /etc/hosts /tmp/
[root@backup ~]# ls /tmp/hosts
/tmp/hosts
2.1.2 远程数据同步方式(类似scp)---又称为隧道传输
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
说明:需要进行交互传输数据。如果想实现免交互传输数据,需要借助ssh+key方式实现
|
pull: 拉: |
|
|
[USER@] : |
以什么用户身份传输数据信息 |
|
HOST: |
远程主机信息(IP地址信息 主机名称信息) |
|
SRC: |
远端要恏过来的数据信息 |
|
[dest] |
恏到本地什么位置 |
|
push:推: |
|
|
SRC: |
本地要怼过去的数据信息 |
|
DEST |
怼到远端什么位置 |
2.1.3 【实践操作】pull 拉
从远端拉文件到当前目录
[root@nfs01 ~]# touch /tmp/1.txt
[root@backup ~]# rsync nfs01:/tmp/1.txt .
root@nfs01's password:
[root@backup ~]# ll
total 44
-rw-r--r-- 1 root root 0 Oct 11 16:16 1.txt
2.1.4 【实践操作】push 推 (目录)
将本地的hosts文件推到远端服务器上
[root@backup tmp]# ll
total 4
-rw-r--r-- 1 root root 357 Oct 11 15:12 hosts
使用push的格式 推整个目录(包括目录)
[root@backup tmp]# rsync -r /tmp nfs01:/tmp/
root@nfs01's password:
[root@nfs01 tmp]# ll
total 4
drwxr-xr-x 3 root root 4096 Oct 11 16:20 tmp
推整个目录下的文件(不包括目录本身)
[root@backup tmp]# rsync -r /tmp/ nfs01:/tmp/
root@nfs01's password:
[root@nfs01 tmp]# ll
total 8
-rw-r--r-- 1 root root 357 Oct 11 16:21 hosts
drwxr-xr-x 3 root root 4096 Oct 11 16:20 tmp
说明:
/tmp --表示将tmp目录本身及目录下的内容进行传输
/tmp/ --表示只传输tmp目录下面的内容信息
2.2 守护进程方式同步数据
系统版本
[root@localhost ~]# uname -a
Linux 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
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
2.2.1 配置rsync守护进程方式(需要有服务端与客户端)
规划:
1、backup服务器作为rsync服务端
2、以rysnc客户端作为参照物,将数据推到rsync服务器上
2.2.2 配置rsync服务端(将服务端配置到 backup 服务器上)
第一个里程碑: 软件是否存在
[root@backup ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64
第二个里程碑: 进行软件服务配置
[root@backup ~]# vim /etc/rsyncd.conf
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 ~]# id rsync
id: rsync: No such user
[root@backup ~]# useradd -s /sbin/nologin -M rsync
第四个里程碑: 创建数据备份储存目录,目录修改属主
[root@backup ~]# mkdir /backup/
[root@backup ~]# chown -R rsync.rsync /backup/
第五个里程碑: 创建认证用户密码文件
echo "rsync_backup:oldboy123" >>/etc/rsync.password
chmod 600 /etc/rsync.password
第六个里程碑: 启动rsync服务
rsync --daemon
至此服务端配置完成
[root@backup ~]# ps -ef |grep rsync
root 2076 1 0 17:05 ? 00:00:00 rsync --daemon
root 2163 1817 0 17:38 pts/1 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 2076/rsync
tcp 0 0 :::873 :::* LISTEN 2076/rsync
2.2.3 配置rsync客户端(其他服务器为客户端)
第一个里程碑: 软件是否存在
[root@nfs01 ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64
第二个里程碑: 创建认证文件
客户端的认证文件只需要有密码即可
echo "oldboy123" >>/etc/rsync.password
chmod 600 /etc/rsync.password
第三个里程碑: 实现数据传输
交互式
[root@nfs01 ~]# rsync -avzP /etc/hosts rsync_backup@172.16.1.41::backup
Password:
sending incremental file list
hosts
357 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 63 bytes received 33 bytes 9.14 bytes/sec
total size is 357 speedup is 3.72
免交互式
[root@nfs01 ~]# rsync -avzP /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
hosts
357 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 199 bytes received 27 bytes 150.67 bytes/sec
total size is 357 speedup is 1.58
2.3 rsync守护进程传输数据原理
2.4 rsync 命令同步参数选项&特殊参数
|
目录参数 |
参数说明 |
|
-v ,--verbose |
详细模式输出,传输时的信息 |
|
-z,--compress |
传输时进行压缩以提高传输效率 --compress-level=NUM 可按级别压缩 局域网可以不用压缩 |
|
-a,--archive (主要) |
归档模式,表示以递归方式传输文件,并保持文件属性。等于 -rtopgDl |
|
-r,--recursive 归档于-a |
对子目录以递归模式,即目录下的所有目录都同样传输。小写r |
|
-t,--times 归档于-a |
保持文件时间信息 |
|
-o,--owner 归档于-a |
保持文件属主信息 |
|
-p,--perms 归档于-a |
保持文件权限 |
|
-g,--group 归档于-a |
保持文件属组信息 |
|
-P,--progress |
显示同步的过程及传输时的进度等信息(大P) |
|
-D,--devices 归档于-a |
保持设备文件信息 |
|
-l,--links 归档于-a |
保留软连接(小写字母l) |
|
-e,--rsh=COMMAND |
使用的信道协议(remote shell),指定替代rsh的shell程序。 例如 ssh |
|
--exclude=PATTERN |
指定排除不需要传输的文件信息 |
|
--exclude-from=file |
文件名所在目录文件,即可以实现排除多个文件 |
|
--bwlimit=RATE |
限速功能 |
|
--delete |
让目标目录SRC和源目录数据DST一致,即无差异数据同步 |
|
保持同步目录及文件属性: 这里的-avzP相当于 -vzetopdDlP,生产环境常用的参数为 -avzP 在脚本中可以报-vP去掉 --progress可以用-P代替 |
|
|
daemon启动扩展参数 |
|
|
--daemon |
daemon表示以守护进程的方式启动rsync服务。 |
|
--address |
绑定指定IP地址提供服务。 |
|
--config=FILE |
更改配置文件路径,而不是默认的/etc/rsyncd.conf |
|
--port=PORT |
更改其它端口提供服务,而不是缺省的873端口 |
2.4.1 特殊参数实践
指定ip:
[root@backup ~]# rsync --daemon --address=172.16.1.41
[root@backup ~]# netstat -lntup |grep 873
tcp 0 0 172.16.1.41:873 0.0.0.0:* LISTEN 2583/rsync
参数测试:
[root@nfs01 ~]# rsync -avzP /etc/services rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
services
641020 100% 19.34MB/s 0:00:00 (xfer#1, to-check=0/1)
sent 127417 bytes received 27 bytes 254888.00 bytes/sec
total size is 641020 speedup is 5.03
指定配置文件路径
[root@backup ~]# rsync --daemon --config=/etc/rsyncd.conf
[root@nfs01 ~]# rsync -avzP /etc/services rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
sent 29 bytes received 8 bytes 74.00 bytes/sec
total size is 641020 speedup is 17324.86
服务端指定服务端口:
[root@backup ~]# rsync --daemon --port=5222
[root@backup ~]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 2598/rsync
tcp 0 0 :::5222 :::* LISTEN 2598/rsync
第3章 rsycn配置文件详解 rsyncd.conf
3.1 部分知识补充
3.1.1 配置文件内容参考资料
man rsyncd.conf
3.1.2 配置文件内容总结
模块之上内容为全局变量信息
模块之下内容为局部变量信息
说明:
无论是全局变量发生变化,还是局部变量发生变化,都建议重启rsync服务使配置生效。
3.2 利用/etc/init.d/启动rsync服务方式
3.2.1 可以实现方式:
a. 编写rsync启动脚本(有一定的shell能力 if case)
b. 利用xinetd服务,管理启动rsync服务
3.2.2 利用 xinetd服务 管理rsync
第一个里程碑: 安装xinetd软件
[root@backup ~]# yum install -y xinetd
[root@backup ~]# rpm -qa |grep xin
xinetd-2.3.14-40.el6.x86_64
第二个里程碑:编辑配置文件
修改disable = yes 改为disable = no
[root@backup ~]# vim /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
第三个里程碑:重启xinetd服务
[root@backup ~]# /etc/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
传输测试
[root@nfs01 ~]# rsync -avzP /etc/services rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
sent 29 bytes received 8 bytes 74.00 bytes/sec
total size is 641020 speedup is 17324.86
3.3 定义变量信息实现免秘钥交互
3.3.1 通过man手册获得方法
Some modules on the remote daemon may require authentication. If so, you will receive a password prompt when you connect. You can avoid the password prompt by setting the environment variable RSYNC_PASSWORD to the password you want to use or using the --password-file option. This may be useful when scripting rsync.
WARNING: On some systems environment variables are visible to all users. On those systems using --password-file is recommended.
在远程进程的一些模块可能需要认证。如果是这样的话,你将得到一个密码提示当您连接。你可以通过设置环境变量rsync_password要使用或使用密码文件选项密码避免密码提示。这可能是有用的脚本文件。
警告:在一些系统环境变量,对所有用户都是可见的。在这些系统中使用的密码文件的建议。
3.3.2 使用 RSYNC_PASSWORD 变量实现免交互
未设置变量之前
[root@nfs01 ~]# rsync -avzP /etc/services rsync_backup@172.16.1.41::backup
Password:
添加上环境变量
[root@nfs01 ~]# export RSYNC_PASSWORD=oldboy123
测试
[root@nfs01 ~]# rsync -avzP /etc/services rsync_backup@172.16.1.41::backup
sending incremental file list
sent 29 bytes received 8 bytes 24.67 bytes/sec
total size is 641020 speedup is 17324.86
3.4 守护进程多模块功能配置
第一个里程碑: 编写配置信息创建多模块
[root@backup ~]# vim /etc/rsyncd.conf
……
[nfsdata]
comment = "nfsdata dir by oldboy"
path = /backup/nfsdata
[nfsbackup]
comment = "nfsbackup dir by oldboy"
path = /backup/nfsbackup
第二个里程碑: 创建多模块指定的目录
创建目录,并修改目录的权限
[root@backup ~]# mkdir /backup/nfs{data,backup} -p
[root@backup ~]# chown rsync.rsync /backup/nfs{data,backup}
查看:
[root@backup ~]# ll /backup/nfs{data,backup} -d
drwxr-xr-x 2 rsync rsync 4096 Oct 12 10:05 /backup/nfsbackup
drwxr-xr-x 2 rsync rsync 4096 Oct 12 10:05 /backup/nfsdata
第三里程碑: 利用rsync客户端进行测试
[root@nfs01 ~]# rsync -avz /data/ rsync_backup@172.16.1.41::nfsdata --password-file=/etc/rsync.passsword
sending incremental file list
./
nfs.data
sent 78 bytes received 30 bytes 216.00 bytes/sec
total size is 0 speedup is 0.00
说明:
rsyncd.conf配置文件中,添加多模块信息,可以不用重启rsync服务,即时生效~
全局变量参数针对所有模块生效;局部变量参数只针对指定模块生效
read only参数默认配置为ture,即为只读模式
全局变量发生变化,不用重启rsync服务;局部变量发生变化,需要重启rsync服务
注意:修改配置文件就重启 ↓
无论是全局变量发生变化,还是局部变量发生变化,都建议重启rsync服务使配置生效
3.5 守护进程的排除功能实践
3.5.1 排除的方式
a) --exclude=要配置的目录或文件名称
b) --exclude-from=要排除多个目录或文件汇总文件名称
c) 在配置文件中进行修改,指定要排除的信息
3.5.2 排除测试
第一个里程碑: 创建模拟测试环境
[root@nfs01 data]# mkdir {a..d}
[root@nfs01 data]# touch {a..d}/{1..3}.txt
[root@nfs01 data]# tree
.
├── a
│ ├── 1.txt
│ ├── 2.txt
│ └── 3.txt
├── b
│ ├── 1.txt
│ ├── 2.txt
│ └── 3.txt
├── c
│ ├── 1.txt
│ ├── 2.txt
│ └── 3.txt
└── d
├── 1.txt
├── 2.txt
└── 3.txt
4 directories, 12 files
第二个里程碑 利用 --exclude参数测试排除功能
需求:不要a目录中3.txt 不要b、c目录
[root@nfs01 data]# rsync -avz /data/ --exclude=a/3.txt --exclude=b --exclude=c rsync_backup@172.16.1.41::nfsdata
sending incremental file list
./
a/
a/1.txt
a/2.txt
d/
d/1.txt
d/2.txt
d/3.txt
sent 300 bytes received 114 bytes 828.00 bytes/sec
total size is 0 speedup is 0.00
精简方式排除
[root@nfs01 data]# rsync -avz /data/ --exclude=a/3.txt --exclude={b,c} rsync_backup@172.16.1.41::nfsdata
sending incremental file list
./
a/
a/1.txt
a/2.txt
d/
d/1.txt
d/2.txt
d/3.txt
sent 300 bytes received 114 bytes 828.00 bytes/sec
total size is 0 speedup is 0.00
3.5.3 利用--exclude-from 方式进行排除
第一个里程碑: 创建模拟测试环境
[root@nfs01 data]# mkdir {a..d}
[root@nfs01 data]# touch {a..d}/{1..3}.txt
第二个里程碑:利用--exlude-from参数,测试排除功能
[root@nfs01 data]# vim /tmp/paichu.txt
a/3.txt
b
c
第三个里程碑:进行排除
[root@nfs01 data]# rsync -avz /data/ --exclude-from=/tmp/paichu.txt rsync_backup@172.16.1.41::nfsdata
sending incremental file list
./
a/
a/1.txt
a/2.txt
d/
d/1.txt
d/2.txt
d/3.txt
sent 300 bytes received 114 bytes 828.00 bytes/sec
total size is 0 speedup is 0.00
说明:
01. 排除文件中,需要利用相对路径指定排除信息(不能利用绝对路径)
02. 相对路径指的是相对同步的目录信息而言,是对rsync -avz /data/ 后面的data目录进行相对
3.5.4 在配置文件中修改要排除的文件
第一个里程碑: 编写修改服务端配置文件
vim /etc/rsyncd.conf
[nfsdata]
comment = "nfsdata dir by oldboy"
path = /backup/nfsdata
exclude=a/3.txt b c
第二个里程碑:重启rsync服务
killall rsync && sleep 1 && rsync --daemon
第三里程碑: 进行测试
[root@nfs01 data]# rsync -avz /data/ rsync_backup@172.16.1.41::nfsdata
sending incremental file list
./
a/
a/1.txt
a/2.txt
skipping daemon-excluded file "a/3.txt"
skipping daemon-excluded directory "b"
*** Skipping any contents from this failed directory ***
skipping daemon-excluded directory "c"
*** Skipping any contents from this failed directory ***
d/
d/1.txt
d/2.txt
d/3.txt
sent 407 bytes received 116 bytes 1046.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
3.6 守护进程来创建备份目录
通过客户端命令创建服务端备份目录中子目录
推送/etc/services文件到 服务器/backup/sda/目录
[root@nfs01 ~]# rsync -avzP /etc/services rsync_backup@172.16.1.41::backup/dba/
sending incremental file list
created directory dba
services
641020 100% 19.34MB/s 0:00:00 (xfer#1, to-check=0/1)
推送/etc/services文件到 服务器/backup/sa/目录
sent 127417 bytes received 27 bytes 254888.00 bytes/sec
total size is 641020 speedup is 5.03
[root@nfs01 ~]# rsync -avzP /etc/services rsync_backup@172.16.1.41::backup/sa/
sending incremental file list
created directory sa
services
641020 100% 19.34MB/s 0:00:00 (xfer#1, to-check=0/1)
推送/etc/services文件到 服务器/backup/dev/目录
sent 127417 bytes received 27 bytes 254888.00 bytes/sec
total size is 641020 speedup is 5.03
[root@nfs01 ~]# rsync -avzP /etc/services rsync_backup@172.16.1.41::backup/dev/
sending incremental file list
created directory dev
services
641020 100% 18.71MB/s 0:00:00 (xfer#1, to-check=0/1)
sent 127417 bytes received 27 bytes 254888.00 bytes/sec
total size is 641020 speedup is 5.03
检查结果:
[root@backup backup]# tree
.
├── dba
│ └── services
├── dev
│ └── services
└── sa
└── services
说明:
a 目标目录名称后要加上 "/", 表示创建目录,否则变为修改传输文件名称了
b 利用客户端创建服务备份子目录时,只能创建一级子目录。
3.7 守护进程的访问控制配置
第一个里程碑:在服务端配置文件,编写白名单策略或黑名单策略(只能取其一)
vim /etc/rsyncd.conf
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
关于访问控制的说明:
01. 白名单和黑名单同时存在时,默认控制策略为不匹配的传输数据信息全部放行
02. 白名单单一存在时,默认控制策略为不匹配的传输数据信息全部禁止
03. 黑名单单一存在时,默认控制策略为不匹配的传输数据信息全部放行
全局变量修改控制策略信息,rsync服务必须重启
第二个里程碑:客户端进行测试
[root@nfs01 backup]# rsync -avz /etc/services rsync_backup@10.0.0.41::data
@ERROR: Unknown module 'data'
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
--------------------------------------------------------------------------------
[root@nfs01 backup]# rsync -avz /etc/services sync_backup@172.16.1.41::data
sending incremental file list
sent 29 bytes received 8 bytes 74.00 bytes/sec
total size is 641020 speedup is 17324.86
3.8 守护进程无差异同步配置
3.8.1 什么是无差异:
推模式:我有什么,你就有什么;我没有,你也不能有
拉模式:你有什么,我就有什么;你没有,我也不能有
总结:服务端客户端数据完全一致(一模一样)
3.8.2 实现无差异同步方法
第一个里程碑: 创建实验环境
[root@nfs01 ~]# ll /data/
total 16
drwxr-xr-x 2 root root 4096 Oct 12 10:29 a
drwxr-xr-x 2 root root 4096 Oct 12 10:40 b
drwxr-xr-x 2 root root 4096 Oct 12 10:29 c
drwxr-xr-x 2 root root 4096 Oct 12 10:29 d
第二个里程:进行第一次数据同步
[root@nfs01 ~]# rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup/
sending incremental file list
./
a/
a/1.txt
a/2.txt
a/3.txt
b/
b/1.txt
b/2.txt
b/3.txt
c/
c/1.txt
c/2.txt
c/3.txt
d/
d/1.txt
d/2.txt
d/3.txt
sent 669 bytes received 255 bytes 1848.00 bytes/sec
total size is 0 speedup is 0.00
第三个里程:删除指定目录,并添加指定文件,测试无差异功能
删除客户端中的 a/ 目录,再进行无差异传输
[root@nfs01 data]# rm a/ -rf
[root@nfs01 data]# rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup/
sending incremental file list
./
deleting a/3.txt
deleting a/2.txt
deleting a/1.txt
deleting a/
sent 181 bytes received 14 bytes 390.00 bytes/sec
total size is 0 speedup is 0.00
3.8.3 【注意】无差异同步方法的应用
01. 实现储存数据与备份数据完全一致(慎用)
rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup /
02. 快速删除大文件数据
1.mkdir /null --创建出一个空目录。
2.rsync -avz --delete /null/ /bigdata/
删除效率高于 rm -rf /bigdata
3.9 守护进程的列表功能配置
第一个里程碑: 在服务端配置文件中开启list列表功能
[root@backup ~]# vim /etc/rsyncd.conf
list = true
第二个里程碑:重启rsync服务
[root@backup ~]# killall rsync && sleep 1 && rsync --daemon
第三个里程碑: 客户端查看服务端模块信息
[root@nfs01 data]# rsync rsync_backup@172.16.1.41::
backup "backup dir by oldboy"
nfsdata "nfsdata dir by oldboy"
nfsbackup "nfsbackup dir by oldboy"
说明:
为了提升备份服务器安全性,建议关闭list列表功能
第4章 常见问题
[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
Password:
sending incremental file list
hosts
rsync: mkstemp ".hosts.U5OCyR" (in backup) failed: Permission denied (13)
sent 200 bytes received 27 bytes 13.76 bytes/sec
total size is 371 speedup is 1.63
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
说明:备份目录权限设置不正确
解决办法:
将服务端的备份存放目录(path值),属主和属组修改为rsync。
[root@backup ~]# chown -R rsync.rsync /backup/
rsync 服务部署详解的更多相关文章
- 【转】Nginx+php-fpm+MySQL分离部署详解
转:http://www.linuxidc.com/Linux/2015-07/120580.htm Nginx+php-fpm+MySQL分离部署详解 [日期:2015-07-26] 来源:Linu ...
- rsync常用参数详解
rsync常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux中,一切皆是文件,包括你的终端,硬件设备信息,目录,内核文件等等.所以工作中我们难免会遇到拷贝文件 ...
- Solr部署详解
Solr部署详解 时间:2013-11-24 方式:转载 目录 1 solr概述 1.1 solr的简介 1.2 solr的特点 2 Solr安装 2.1 安装JDK 2.2 安装Tomcat 2.3 ...
- MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解
MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...
- 2-4、nginx特性及基础概念-nginx web服务配置详解
Nginx Nginx:engine X 调用了libevent:高性能的网络库 epoll():基于事件驱动event的网络库文件 Nginx的特性: 模块化设计.较好扩展性(不支持模块动态装卸载, ...
- Rsync命令参数详解
在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来.rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进 ...
- centos7.2环境elasticsearch-5.0.1+kibana-5.0.1+zookeeper3.4.6+kafka_2.9.2-0.8.2.1部署详解
centos7.2环境elasticsearch-5.0.1+kibana-5.0.1+zookeeper3.4.6+kafka_2.9.2-0.8.2.1部署详解 环境准备: 操作系统:centos ...
- Linux:SSH服务配置文件详解
SSH服务配置文件详解 SSH客户端配置文件 /etc/ssh/ssh——config 配置文件概要 Host * #选项“Host”只对能够匹配后面字串的计算机有效.“*”表示所有的计算机. For ...
- Nginx服务优化详解
Nginx服务优化详解 1.隐藏Nginx版本信息 编辑主配置文件nginx.conf,在http标签中添加代码 server_tokens off;来隐藏软件版本号. 2.更改Nginx服务启动的默 ...
随机推荐
- 用Atom打造简单的java编译器以及对于可能出现的问题解答
如何用Atom打造简单的javaIDE 自己一直比较喜欢Atom编辑器,前段时间给Atom配置好了C/C++的运行环境,自己心里还是感觉挺好的,最近在学习java ,偶然的机会让我看到了一篇文章,就是 ...
- vue路由跳转 vue-router的使用
1.路由对象和路由匹配 路由对象,即$router会被注入每个组件中,可以利用它进行一些信息的获取.如 属性 说明 $route.path 当前路由对象的路径,如'/view/a' $rotue.pa ...
- GitHub使用(四) - 关于分支Branch
1. 什么是分支Branch? 我初步的理解为:GitHub仓库默认有一个master的分支,当我们在master分支开发过程中接到一个新的功能需求,我们就可以新建一个分支同步开发而互不影响,开发完成 ...
- 理解ios 11中webview的视口
iOS 11在状态栏区域带来了一些新的,也许是不直观的行为,这对使用Apache Cordova或Ionic等工具的开发人员尤为重要.特别是,这种行为变化会影响任何基于Web的应用程序,这些应用程序在 ...
- Day3 Python基础学习——文件操作、函数
一.文件操作 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过文件句柄对文件进行操作 关闭文件 #打开文件,读写文件,关闭文件 http://www.cnblogs.com/linha ...
- 【JAVA零基础入门系列】Day4 变量与常量
这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...
- PE文件格式详解,第一讲,DOS头文件格式
PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容 ...
- mysql error 1290 hy000:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statemen' 解决方案
如果在执行授权命令的时候报错 mysql> grant all privileges on *.* to root@"; ERROR (HY000): The MySQL server ...
- ZOJ2286 Sum of Divisors 筛选式打表
我想我是和Segmentation Fault有仇,我一直以为是空间开大的问题,然后一直减少空间,还是SF,谁让n没有给范围了,qwq. 教训:以后注意输入范围和开的空间大小. #include< ...
- EditPlus行首行尾批量添加字符 以及其它常用正则
打开EditPlus,输入多行数据,快捷键ctrl+h 打开替换窗口,选择"正则表达式"替换 行首批量添加 查找"^" 替换为"我是行首aaa&q ...