Rsync介绍
rsync服务基本介绍
Rync服务器
Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。Rsync软件适用于unix/linux/windows等多种操作系统平台。
Rsync是一个快速和非常通用的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制。它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制。它以其delta-transfer算法闻名。
rsync监听端口:873
rsync运行模式:C/S
全量备份
所有数据全部传送
把原来的文件和新的文件一起统一传送
全量复制,效率低
假设客户端上有 file1 file2 file3 文件,服务端上有 file1 文件,现要将客户端上的数据备份至服务端
完全备份方式:
增量备份
在传输数据之前通过一些算法通过你有的数据和我有的数据进行对比,把不一样的数据通过网络传输
增量复制,效率较高
假设客户端上有 file1 file2 file3 文件,服务端上有 file1 文件,现要将客户端上的数据备份至服务端
增量备份方式:
rsync命令使用方法
rsync命令 属于 1v4命令
本地备份命令:cp
cp命令使用:
[root@nfs01 backup]# cp /etc/hosts /tmp/
[root@nfs01 backup]# ll /tmp/hosts
-rw-r--r-- 1 root root 312 Jul 5 22:55 /tmp/hosts
rsync命令使用:
[root@nfs01 backup]# rsync /etc/hosts /tmp/host_rsync
[root@nfs01 backup]# ll /tmp/host_rsync
-rw-r--r-- 1 root root 312 Jul 5 22:55 /tmp/host_rsync
远程备份命令:scp
scp使用:
[root@nfs01 backup]#scp -rp /etc/hosts 172.16.1.41:/backup
root@172.16.1.41's password:
hosts 100% 312 17.0KB/s 00:00
rsyn命令使用:
[root@backup mnt]# rsync -avP /etc/hosts 172.16.1.31:/mnt
root@172.16.1.31's password:
sending incremental file list
hosts
424 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 497 bytes received 31 bytes 211.20 bytes/sec
total size is 424 speedup is 0.80
[root@backup mnt]#
rsync备份目录情况
rsync -rp /oldboy/ 172.16.1.41:/backup 有斜线
#在备份目录后面有 斜线 /oldboy/:只将目录下面的内容进行备份传输
rsync -rp /oldboy 172.16.1.41:/backup 无斜线
#在备份目录后面没有斜线/oldboy:会将目录本身以及下面的内容进行传输备份
代替删除命令:rm
rm命令使用:
[root@backup mnt]# rm -f *
rsync命令使用:
[root@backup mnt]# rsync -avP --delete /null/ /mnt/
sending incremental file list
./
deleting 10.txt
deleting 09.txt
deleting 08.txt
deleting 07.txt
deleting 06.txt
deleting 05.txt
deleting 04.txt
deleting 03.txt
deleting 02.txt
deleting 01.txt
sent 29 bytes received 15 bytes 88.00 bytes/sec
total size is 0 speedup is 0.00
[root@backup mnt]#
rsync命令语法使用
本地备份数据
Local: rsync [OPTION...] SRC... [DEST]
src:要备份的数据信息
dest:备份到什么路径中
[root@backup backup]# rsync /backup/cheak.txt /root/
远程备份数据
rsync拉操作
拉:Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
[USER@] 以什么用户身份拉取数据(默认以当前用户)
注意:需要对端也要有相同的用户(对端用户密码)
hosts 指定远程主机IP地址或者主机名称
SRC 要拉取的数据信息
dest 保存到本地的路径信息
[root@backup mnt]# rsync -avP 172.16.1.31:/mnt /mnt
rsync推操作
推:Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
SRC 本地要进行远程传输备份的数据
[USER@] 以什么用户身份拉取数据(默认以当前用户)
hosts 指定远程主机IP地址或者主机名称
dest 保存到远程的路径信息
[root@backup mnt]# rsync -avP /mnt 172.16.1.31:/mnt
命令参数
-a #归档模式传输, 等于-tropgDl
-v #详细模式输出, 打印速率, 文件数量等
-z #传输时进行压缩以提高效率
-r #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t #保持文件时间信息
-o #保持文件属主信息
-p #保持文件权限
-g #保持文件属组信息
-l #保留软连接
-P #显示同步的过程及传输时的进度等信息
-D #保持设备文件信息
-L #保留软连接指向的目标文件
-e #使用的信道协议,指定替代 rsh 的 shell 程序
--exclude=PATTERN #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
--bwlimit=100 #限速传输
--partial #断点续传
--delete #让目标目录和源目录数据保持一致
守护进程部署
linux系统安装部署服务流程
1) 下载安装软件
2) 编写配置文件
3) 搭建服务环境
4) 启动服务程序
5) 测试服务功能
rsync守护进程部署方式
第一个历程
#下载安装软件
rpm -qa | grep rsync #确认软件有没有安装
yum -y install rsync
第二个历程
#编写配置文件
[root@backup backup]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
prot = 873
#fake super=yes
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
ingnore 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 backup]# useradd rsync -M -s /sbin/nologin
第四个历程
[root@backup backup]# echo "rsync_backup:oldboy123" >/etc/rsync.password
[root@backup backup]# chmod 600 /etc/rsync.password
第五个历程
#创建备份目录并修改属主属组信息
[root@backup backup]# mkdir /backup
[root@backup backup]# chown rsync.rsync /backup/
第六个历程
#启动守护进程备份服务
[root@backup backup]# systemctl start rsyncd
[root@backup backup]# systemctl enable rsyncd
[root@backup backup]# systemctl status rsyncd
Rsync守护进程工作原理
客户端执行命令
服务端:来着何人
客户端:我是rsync——backup
服务端:说出暗号
客户端:oldboy123
客户端进来之后转换为rsync用户
写入数据
客户端部署过程
第一个历程
#创建一个密码文件
[root@nfs mnt]# echo "oldboy123" >/etc/rsync.password
[root@nfs mnt]# chmod 600 /etc/rsync.password
第二个历程
#进行免交互传输数据测试
方法一:
[root@nfs mnt]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
方法二:
[root@nfs mnt]# export RSYNC_PASSWORD=123456
[root@nfs mnt]# rsync -avP /mnt/ rsync_backup@172.16.1.41::backup
Rsync错误排错方法
服务端检查步骤
1.rsync服务端有没有启动
2.配置文件有没有错误
3,密码文件有没有创建
4.密码文件格式是否正确 虚拟用户:密码
5.密码文件是否为600 用户是root
6.www用户是否创建了
7.数据目录是否创建并且更改为www用户
Rsync 简易脚本安装
[root@backup backup]# cat /server/scripts/rsync_install.sh
#!/bin/bash
# install rsync
yum -y install rsync
# vim conf
cat > /etc/rsyncd.conf<<EOF
uid = www
gid = www
prot = 873
fake super=yes
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
ingnore 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
# useradd
useradd -s /sbin/nologin -M www
# mkdir backup
mkdir -p /backup
chown www.www /backup
#passwd
echo "rsync_backup:oldboy123" >/etc/rsync.password
chmod 600 /etc/rsync.password
# star rsync
systemctl start rsyncd
systemctl enable rsyncd
#status rsync
ps -ef | grep rsync
netstat -lntup|grep 873
[root@backup backup]#