1.rsync是什么?

rsync是linux系统下的数据镜像备份工具。

使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,

或者与其他SSH、rsync主机同步。

2.远程同步备份。

准备两台服务器,相互可以通网,配置基本的yum源,我使用的是阿里云的yum源。

# yum install rsync
# yum install openssh-clients

主机安装rsync,它基于ssh服务端,所以要安装ssh的客户端,客户机仅需要安装rsync。

假定我们的备份路线是,将主机的/php文件,备份到备份机/php文件夹。则

a.主机上传文件

# rsync -参数 源文件路径 用户@IP:目标路径
# rsync -av /php root@10.1.1.15:/php

# 会提示输入密码
# root@10.1.1.15's password: 
# 输入正确就成功传送文件至备份机。


# sending incremental file list
# php/
# 文件列表...
# sent 294 bytes  received 111 bytes  9.31 bytes/sec
# total size is 0  speedup is 0.00
# 成功。

b.备份机下载文件

主机仅需要安装rsync,备份机需要同时安装rsync和openssh-clients

# rsync -参数 用户@IP:源路径 目标文件路径 
# rsync -av root@10.1.1.16:/php /php

# root@10.1.1.16's password: 
# receiving incremental file list
# php/
# 文件列表...
# sent 186 bytes  received 511 bytes  16.02 bytes/sec
# total size is 0  speedup is 0.00

# 文件过来了。

c.利用rsync服务备份

服务模式下,都不需要安装openssh-clients

# 首先要开启rsync服务,必须在备份机上开启。
# rsync --daemon

# 会提示报错,没有配置文件。
# Failed to parse config file: /etc/rsyncd.conf

# 凭空创造一个就行
# touch /etc/rsyncd.conf

# rsync --daemon
# netstat -nltup|grep rsync
# 默认开启873端口,占用就成功。

# 编辑我们创造的配置文件。
# vim /etc/rsyncd.conf

# 范例:
# [模块名1] 
# path = /dir1 在这个模块中,daemon使用的目录,目录的权限要注意和配置文件中的权限一致,否则会遇到 读写的问题 
# read only=no
# uid = xxx rsync使用的用户 
# gid = xxx rsync使用的用户组(用户所在的组) 
# log file = xxx 不设或者设置错误,rsync会使用rsyslog输出相关日志信息 max connections =4 最大连接数

# [php]
# path=/php
# uid=root
# read only=no
# gid=root
# log file=/tmp/rsync.log

# 重启rsync服务
# 因为不是系统服务,所以手动停止服务
# pkill rsync
# rsync --daemon

主机方面可以检查远程存在的模块,来证明服务正确。

# rsync -a 10.1.1.15::
# 提示
# php

# 语法
# rsync -av 源路径 用户@IP::服务名
# rsync -av /php/ root@10.1.1.15::php

# 提示
# sending incremental file list
# ./
# 文件列表...
# sent 482 bytes  received 182 bytes  57.74 bytes/sec
# total size is 0  speedup is 0.00
# 成功

3.参数

命令可选的参数如下

-a 包含-rtplgoD
-r 同步目录时要加上,类似cp时的-r选项
-v 同步时显示一些信息,让我们知道同步的过程
-l 保留软连接
-L 加上该选项后,同步软链接时会把源文件给同步
-p 保持文件的权限属性
-o 保持文件的属主
-g 保持文件的属组
-D 保持设备文件信息
-t 保持文件的时间属性
--delete 删除DEST中SRC没有的文件
--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
-P 显示同步过程,比如速率,比-v更加详细
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
-z 传输时压缩

4.总结

服务模式同步文件配置好后,无需密码即可远程登录。如果将命令与定时任务结合,就可以达成自动备份功能。

普通模式需要密码,如果配置了ssh免密登录的话,也可以结合定时任务,自动备份。