rsync基本操做与安装

1、rsync是什么?html

 

    rsync全称Remote  Sync ,远程同步,是Linux/UNIX系统下的文件同步和数据传输工具,数据备份,它采用了“rsync算法”使一个客户机和远程文件服务器之间的文件同步。web

 

能够将同一个服务器的数据从一个分区备份到另外一个分区,也能够将本地系统的数据经过网络传输方式备份到任何一个远程主机上;算法

 

rsync能够在中断后恢复传输;windows

 

rsync只传输源文件和目标文件之间不一致的部分;rsync能够执行完整备份或增量备份。后端

 

 

scp,远程传输工具,send copy,相似于windows地复制,可是没法备份大量数据centos

 

想传目录,使用 “scp  -r”安全

 

rsync:能够边复制,边统计,边比较bash

 

第一次全传服务器

第二次计算哪些文件已传送,传送过的文件就不会再传送了网络

也就是说,rsync只会传输两边差别的文件

 

都是基于ssh协议的。

 

2、rsync的功能特性:

 

        能够镜像保存整个目录树和文件系统;

        能够增量同步数据,文件传输效率高,于是同步时间很短;

        能够保持原文件的权限、时间、软硬连接等属性;

      无需特殊权限便可安装;

      快速:第一次同步时rsync会复制所有内容,但在下一次只传输修改过的文件;

      压缩传输:rsync在传输数据的过程当中能够实行压缩及解压缩操做,所以可使用更少的带宽;

        加密传输数据,保证了数据的安全性;

        可使用scpssh等方式来传输文件,也能够经过直接的socket连接;

        支持匿名传输,以方便进行网站镜像;

 

3、运行模式和端口:

采用C/S模式(客户端/服务器模式)[就是一个点到点的传输,直接使用rsync命令]

端口:873(默认)

 

 

3、发起端和同步源(备份源)

发起端在同步任务中负责发起rsync同步操做的客户机通知服务器我要备份你的数据

同步源(备份源):负责响应来自于客户机的rsync同步操做的服务器,须要备份的服务器。

服务端:运行rsyncd服务,通常来讲,须要备份的服务器

客户端:存放备份数据

 

4、数据同步方式

推(push):一台主机负责把数据传送给其余主机,服务器开销很大,比较适合后端服务器少的状况

拉(pull):全部主机定时去找一主机拉数据,可能就会致使数据缓慢

 

推:目的主机配置为rsync服务器,源主机周期性的使用rsync命令吧要同步的目录推过去

(须要备份的机器是客户端,存储备份的机器是服务端)

 

拉:源主机配置为rsync服务器,目的主机周期性的使用rsync命令把要同步的目录拉过来

(须要备份的机器是服务端,存储备份的机器是客户端)

 

在同步过程当中同步源负责提供文档的原始位置而发起端对该位置具备读取权限

 

拓扑图以下

image.png


 

5、xinetd管理rsync工做原理


 image.png

xinetd,超级互联网守护进程服务,管理服务

 

使用rsync来同步是先经过xinetd监听873号端口,若是rsync进来的是873号端口,那么xinetd就会通知它所管辖的rsync服务来作回应,接下来就是rsync两服务之间的通信。

 

rsync服务依赖xinetd,是使用超级服务来管理的。

 

6、安装rsync:

1、yum安装

yum install -y xinetd rsync

rsync --daemon  

netstat  -anpt | grep 873

 

2、源码编译安装rsync软件包

 

#解压

tar zxvf rsync-3.1.3.tar.gz -C /opt

 

#切换目录

cd /opt/rsync-3.1.3

 

#配置

./configure

 

#编译及安装

make && make install

 

rsync --daemon  

netstat  -anpt | grep 873

 

 

7、rsync主要命令选项:

 

-r:递归模式,对子目录以递归模式处理

-l:--links 保留软链结

-v:--verbose 详细模式输出

-a:--archive 权限保存模式,表示以递归方式传输文件,并保持全部文件属性,至关于-rlptgoD

-z:--compress 压缩模式,对备份的文件在传输时进行压缩处理

-p:--perms 保持文件权限,文件原有属性。

-o:--owner 保持文件原有属主信息。

-g:--group 保持文件原有属组信息。

-D:--devices 保持设备文件信息。

-t:--times 保持文件时间信息。

-A:保持ACL属性信息

-D:保留设备文件及其其余特殊文件

--delete:删除目标位置有而原始位置没有的文件

--password-file=FILE,从FILE中获得密码

 

总结:

经常使用的-avz

 

 

8、使用rsync备份数据:

192.168.80.100网站根目录的/var/www/html目录备份到192.168.80.101/web-back

 

源服务器:192.168.80.100

目标服务器:192.168.80.101

 

在源服务器和目标服务器上:

useradd rget1;echo rget1:123456|chpasswd

 

在源服务器上:

 

mkdir -p /var/www/html

 

setfacl -R -m u:rget1:rwx /var/www/html/

 

setfacl -R -m default:rget1:rwx /var/www/html/

 

getfacl  /var/www/html

 

cp -rf /etc/b* /var/www/html/

 

 

在目标服务器上:

mkdir /web-back

chown rget1:rget1 -R /web-back/

 

rsync -avz --delete /var/www/html/ rget1@192.168.80.101:/web-back

 

注:若是只想传输目录下的内容,在该目录后面加“/,若是想连该目录一块儿传输,就不加“/

 

以上是使用系统用户备份数据

 

9、非系统用户备份数据

使用系统配置文件/etc/rsyncd.conf来备份数据,建立备份帐户,最后把rsync以deamon方式运行。

 

rsync.conf配置文件分为两部分:全局参数,模块参数

全局参数:对rsync服务器生效,若是模块参数和全局参数冲突,冲突的地方模块参数优先。

模块参数:定义须要经过rsync输出的目录定义的参数。

 

2.rsync配置文件详解

 

该配置文件在centos 6.x版本中没有,在centos 7.x才有

 

vi /etc/rsyncd.conf

 

uid = root    #用户ID

gid = root   #用户组ID

address = 192.168.80.100   #监听地址

port = 873    #监听端口

hosts  allow = 192.168.80.0/24  #黑名单

use chroot = yes       #禁锢家目录       

max connections = 10    #最大并发链接数,默认0(无限制)

strict modes=yes        #是否检查口令文件的权限,yes时必须为root用户权限

pid file = /var/run/rsyncd.pid      #守护进程PID路径

lock file=/var/run/rsync.lock       #指定支持max connections的锁文件

log file=/var/run/rsyncd.log        #日志输出文件路径

motd file  =   /etc/rsyncd.motd    #指定消息文件,当客户链接服务器时给文件的内容显示给客户,默认没有该文件

 

[www]         #自定义模块名称

    path = /web-back/         #需备份的文件或目录,真实系统路径

    comment = ftp area          #描述文字

    ignore errors           #能够忽略一些无关的I/O错误

    read only=false            #false:客户端能够上传文件       yes:只读

    write only=false           #false:客户端能够下载文件       yes:不能下载

    hosts allow=*           #*:容许链接任何主机

    hosts deny=192.168.100.10       #禁止链接rsync服务器的IP

    list=yes          #客户端请求可使用的模块列表时,该模块是否被列出

    uid=root            

    gid=root

    auth users=backup       #用户名backup,与系统用户没有任何关系

    secrets file=/etc/server.pass       #只有定义了auth users项,该文件才起做用,默认没有此文件,须手动建立(文件格式为:"用户名:密码")

 

建立motd文件

echo   "welcome  to  backup  server"  >  /etc/rsyncd.motd

 

建立密码文件(文件格式:user:pass)

 

vi /etc/server.pass

 

    backup:www123

 

修改密码文件权限

 

chmod 600 /etc/server.pass

 

pkill  -9  rsync

 

systemctl start xinetd

systemctl  enable  xinetd

 

rsync --daemon   --config=/etc/rsyncd.conf

netstat   -anpt  | grep  873

 

以上在目的服务器中配置

 

在源服务器中:

rsync  -avz  --delete  /var/www/html/  backup@192.168.80.101::wwwroot






无密码交互传输:
新建一个文件保存账号密码,而后在rsync命令中使用--password-file指定此文件便可

service:/etc/init.d/
systemctl:/usr/lib/systemd/system/*.service

vi   /etc/rsync.passwd
www123

chmod  600  /etc/rsync.passwd

rsync  -avz  --delete  /var/www/html/  backup@192.168.80.101::wwwroot --password-file=/etc/rsync.passwd


10、脚本实现定时自动备份
vi  autobackup.sh
#!/bin/bash
rsync -avz --delete /var/www/html backup@192.168.80.101::wwwroot --password-file=/opt/file

chmod +x autobackup.sh

echo '01 3 * * * sh /root/autobackup.sh &' >> /var/spool/cron/root或者:crontab -e1 * * * * sh /root/autobackup.sh &

相关文章
相关标签/搜索