yum install rsync -y

rsync(873):数据同步,把一台服务器上的数据以何种权限同步到另一台服务器上,是linux

系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,

或者与其他SSH;sync主机同步可以全量和增量的本地或远程数据同步;rsync守护进程(daemon)的方式传输数据,监听的是rsync 837的端口;

3.1、rsync的特性:

3.2、rsync的拷贝:

3.3、解决ssh传输慢的问题:

在远程服务器上进行/etc/ssh/sshd_config的设置:

3.4、rsync,local模式:

rsync -avz /etc/hosts /tmp/ :普通备份(源目录和目标目录进行对比,内容相同的部分不拷贝到目标目录。

内容不同的部分拷贝到目标目录,目标目录存在而源目录不存在的内容会被保留。目标目录的内容是源目录和原目标目录内容的并集(更新)。

类似于\cp -av /etc/hosts /tmp:将源目录数据拷贝到目标目录,内容名称相同覆盖,不相同的复制。目标目录和源目录内容名称不同的

保留(更新)。)

rsync -avz --delete /tmp/ /mnt/ :同步备份(源目录和目标目录进行对比,内容相同的部分不拷贝到目标目录,内容不同的部分拷

贝到目标目录。目标目录存在而源目录不存在的内容不会被保留。目标目录和源目录内容持一致(同步)。)

特别提示:

源目录和目标目录内容进行对比的方法有:通过文件或目录的名称、修改时间、大小来判断是不是同一个内容。

3.5、rsyncssh远程模式:

rsync -avz /etc -e 'ssh -p 22' root@172.16.1.31:/tmp #也可以使用--delete:用法和本地local传输相同

3.6、daemon模式:

3.6.1、rsync参数配置:

修改/etc/rsyncd.conf配置文件:

uid = rsync #同步文件的属主 使用rsync用户访问共享目录

gid = rsync #同步文件的属组

use chroot = no #安全相关的设置,一般不使用chroot

max connections = 200 #最大连接数

timout=300 #超时参数(单位/秒)

pid file = /var/run/rsyncd.pid #进程号对应的文件

lock file = /var/run/rsync.lock #锁文件,防止文件不一致

log file = /var/log/rsyncd.log #日志文件

[backup] #这里是认证的模块名,在client端需要指定

path = /backup #服务器提供的共享目录

comment = backup #描述信息

ignore errors #可以忽略一些无关的IO错误

read only = false #可写

list = false #不允许列文件 相当于ls

hosts allow=172.16.1.0/24 #允许的网段

#hosts deny=0.0.0.0/32 #拒绝的网段

auth users = rsync_backup #连接的系统中不存在的虚拟用户,对应的是uid中用户,这样同步的时候比较安全

secrets file = /etc/rsync.password #虚拟用户的用户和密码文件

3.6.2、在系统中添加虚拟用户:

useradd rsync -Ms /sbin/nologin

[root@backup /]# tail -1 /etc/passwd

rsync:x:501:501::/home/rsync:/sbin/nologin

3.6.3、创建共享目录:

mkdir -p /backup

chown -R rsync:rsync /backup/

[root@backup /]# ls -ld /backup/

drwxr-xr-x 2 rsync rsync 4096 10月 7 17:12 /backup/

3.6.4、创建密码文件:

[root@backup /]# touch /etc/rsync.password

[root@backup /]# chmod 700 /etc/rsync.password

[root@backup /]# ls -l /etc/rsync.password

-rwx------ 1 root root 0 10月 7 17:22 /etc/rsync.password

[root@backup /]# vim /etc/rsync.password

rsync_backup:123

3.6.5、启动rsync服务:

(rsync服务在root用户下运行,只是对同步文件的权限做了更改)

3.6.5.1、加入开机自启动:

echo ‘/usr/bin/rsync --daemon’>>/etc/rc.local

tail -1 /etc/rc.local

rsync --daemon

ps -ef |grep "rsync" |grep -v "rsync"

root 2363 1 0 17:05 ? 00:00:00 rsync --daemon

3.6.5.2、修改了 /etc/rsyncd.conf配置文件中的内容后要重启:

pkill rsync #杀死了rsync进程

lsof -i :873 #产看进程是否被杀死

rsync --daemon#启动rsync服务

lsof -i :873

3.6.6、客户端配置:

mkdir /etc/rsync.password

touch '123' >>/etc/rsync.password

chmod 700 /etc/rsync.password

[root@nfs01 ~]# ls -l /etc/rsync.password

-rwx------ 1 root root 4 10月 7 17:54 /etc/rsync.password

3.6.7、rsync参数补充:

--delete:无差异同步,服务端 和客户端保持一致,谨慎使用该参数

举例:视频网站,视频推送到服务器上发布,本地/backup只有当天发布的内容,服务器上有以前的所有文件,使用--delete参数进行数据同步

时会删除服务器duan以前的所有内容,只有当天发布的内容了 。

--exclude:排除文件

--exclude=a:单个排除

--exclude={a,b,c}:多个排除

--exclude={a..b}:连续排除

--bwlimit=KBPS:限速

--bwlimit=10(kB/s)

-P:断点续传

-avzP

3.6.7.1、push同步(客户端-服务端):

服务端中配置的模块名,对应的是服务端的共享地址,也可以在后面加目录,比如backup/a/,这a目录可以不存在,会自动创建;

rsync -avz /backup rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password

rsync -avz --bwlimit=20 /backup rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password

3.6.7.2、pull同步(服务端-客户端)

服务端中配置的模块名,对应的是服务端的共享地址,也可以在后面加目录,比如backup/a,backup/a表示拉整个目录,backup/a/表示拉目录中的内容,a目录必须存在,且权限和上层目录一致;

rsync -avz rsync_backup@172.16.1.41::backup/ /backup/ --password-file=/etc/rsync.password

rsync -avz --exclude={a,lc3.pdf,lc4.pdf} rsync_backup@172.16.1.41::backup/ /backup/ --password-file=/etc/rsync.password

3.7、错误解析:

3.7.1、@error:invalid uid rsync

用户不存在,需要创建用户 useradd -Ms rsync

3.7.2、@error: auth failed on module backup

rsync服务器端 /etc/rsync.password配置文件用户密码和/etc/rsyncd.conf配置文中的非系统内虚拟账号不一致,或者是客户端密码文件错误

3.7.3、@error:chdir faild

rsync服务器端共享目录权限不够

3.8、多模块设置:

vim /etc/rsyncd.conf

uid = rsync

gid = rsync

use chroot = no

max connections = 200

timout=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]

path = /backup

comment = backup

[backup2]

path = /backup2

comment = backup2

此种多模块配置设置的是一个独立于系统之外的虚拟用户对应不同的模块,其余的配置都放在了公共的部分,如果有需要可以从公共

的部分拿出来进行单独的配置,设置不同的独立于系统之外的虚拟账号,需要在/etc/rsync.password配置文件中添加相应的用户和密码即可。

3.9、总结:

3.9.1、rsync共有三种模式:

local模式

ssh通道模式(ssh会自动加密)

daemon模式

内网不需要加密,加密数据会有损失

rsync+vpn(pptp(简单易懂),openvpn,ipsec)

3.9.2、rsync的优缺点:

优点:

增量备份和无差异备份(对比文件,相同的文件不备份,速度快),支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物);

远程ssh通道模式还可以加密(ssh)传输,socket(daemon)需要假币传输,可以利用vpn服务或是ipsec服务;

缺点:

大量小文件同步的时候,比对时间较长,有时候,rsync进程可能会停止;

同步大文件,10G这样的大文件时也会有这样的问题,会中断,未完整同步前,是隐藏文件,可以通过续传实现传输;

一次性远程拷贝可以使用scp;

最新文章

  1. iOS初步开发
  2. 三天学会HTML5——SVG和Canvas的使用
  3. PhpStorm 默认快捷键
  4. fedora 损坏,开机出现GRUB 2 启动提示符
  5. Spring AOP中pointcut expression表达式解析 及匹配多个条件
  6. jsp转发action的问题找不到acton
  7. CodeForces 682A Alyona and Numbers (水题)
  8. MySQL导入sql 文件的5大步骤
  9. IBM Python 技术专题
  10. javascript (十二)对象二
  11. Dagger2在Android开发中的应用
  12. URL编码和Base64编码 (转)
  13. seq2seq
  14. C# 常用小点
  15. Mybatis中#与$区别
  16. Android 引用外部字体
  17. 在storm中运行jar产生模拟数据的时候,遇见的问题
  18. HDU 4318 Power transmission(最短路)
  19. 多线程-TaskExecutor-使用Demo
  20. FFmpeg源码结构图 - 编码

热门文章

  1. n/a或N/A是英语“不适用”(Not applicable)
  2. centos下如何查看命令由哪个包提供
  3. 攻防世界(四)php_rce
  4. Linux_配置主DNS服务(基础)
  5. GO学习-(21) Go语言基础之Go性能调优
  6. Python+Selenium学习笔记12 - 窗口大小和滚动条
  7. 3D点云几何拟合
  8. AMD–7nm “Rome”芯片SOC体系结构,支持64核
  9. 使用Keil语言的嵌入式C编程教程(上)
  10. 如何为嵌入式应用选择适当的SSD