一、什么是rsync?
rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。不但可以同步文件, 还可以对系统有一个操作的能力.
外文名
rsync
全 称
remote sync
定 义
linux系统下的数据镜像备份工具
优 点
远程同步和支持本地复制
二、特性
它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜像
三、原理
Rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba的主配 置文件;Rsync可以通过rsh或ssh使用,也能以daemon模式去运行
在以daemon方式运行时Rsync server会打开一个873 端口,等待客户端去连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份
四、两种工作模式 推和拉
rsync -avz /home/work ip:/home #推
rsync -avz ip:/home/work /home #拉
五、rsync 命令常用参数选项说明
-v, --verbose 详细模式输出,传输时的进度等信息
-z, --compress 传输时进行压缩以提高传输效率,–compress-level=NUM可按级别压缩 。
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgDl(字母l)
!!!###注意:复制文件到 /tmp目录的时候, 会把/tmp目录的权限改了
rsync -avz /etc/hosts 172.16.1.31:/tmp
-r, --recursive 对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写r
-t, --times 保持文件时间信息
-o, --owner 保持文件属主信息
-p, --perms 保持文件权限
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-l, --links 保留软链
-P --progress 显示同步的过程及传输时的进度等信息
-e, --rsh=COMMAND 使用的信道协议(remote shell),指定替代rsh的shell程序。例如:ssh
–exclude=PATTERN 指定排除不需要传输的文件模式(和tar参数一样)
–exclude-from=file(文件名所在的目录文件) (和tar参数一样)
–bwlimit=RATE limit socket I/O bandwidth 传输的时候限速
六、搭建 (配置安装)
一).主机服务
-
rpm -qa | grep rsync #查看软件是否安装
-
rsync --version #查看版本信息
-
配置rsync软件的配置文件
cat >>/etc/rsyncd.conf<<EOF
#rsync_config
#created by HQ at 2017
##rsyncd.conf start##
uid = rsyncgid = rsync
use chroot = nomax 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
EOF
————————————————
################配置文件注释#####################################
#rsync_config
#created by oldboy 15:00 2016-11-15
##rsyncd.conf start##
uid = rsync # 用户 远端的命令使用rsync访问共享目录
gid = rsync # 用户组
use chroot = no # 安全相关
max connections = 200 # 最大连接数
timeout = 300 # 超时时间
pid file = /var/run/rsyncd.pid # 进程对应的进程号文件
lock file = /var/run/rsyncd.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 # 服务端提供访问的目录
————————————————
4. mkdir -p backup #创建目录
5 useradd rsync -s /sbin/nologin -M #创建rsync备份目录的管理用户与用户组
6. chown -R rsync.rsync backup/ #授权
7. 创建服务端和客户端的身份认证文件
echo “rsync_backup:oldboy123” >/etc/rsync.password
chmod 600 /etc/rsync.password #配置文件权限只允许 root 用户查看
cat /etc/rsync.password
8. rsync --daemon #启动服务
9.查看端口netstat -lntup |grep rsync #rsync 端口是 873 端口
二).客户端配置
1.rpm -qa | grep rsync #查看软件是否安装,如已安装则无需在进行安装
2.echo “oldboy123” >/etc/rsync.password #创建认证
3.cat /etc/rsync.password 查看密码
4 rsync --daemon #启动服务
5 netstat -lntup |grep rsync #查看是否监听端口
6. rsync -av /etc/hosts 192.168.110.104:/mnt/ 输入IP:192.168.110.104 的root密码即可登录成功。
验证 ls 查看信息是否由IP:192,168.110.215同步到IP:192.168.110.104