rsync

1.Rsync基本概述
rsync是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份
全量备份 10G 2018-7-23 10G 2018-7-24 10G
增量备份 backup/N多个文件 1.txt --> B data/

2.Rsync应用场景
3.Rsync传输模式
Local: rsync [OPTION...] SRC... [DEST] #本地
rsync ---备份命令(cp)
[options] ---选项
SRC... ---本地源文件
[DEST] ---本地目标文件
rsync -avz /etc/passwd /tmp/
#命令 选项 源文件 目标

   Access via remote shell: #远程传输(网络|系统本地用户---->无需密码进行传输)
     Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
	 Pull(拉,下载)
	 rsync		---备份命令
	 [options]  ---选项
	 [USER@]	---目标主机的系统用户
	 HOST		---目主机IP地址或域名
	 SRC...		---目标主机源文件
	 [DEST]		---下载至本地哪个位置
	 
	 #使用rsync拷贝41主机上/root目录下的oldboyedu.com文件,拷贝至本地当前目录
	 rsync -avz root@172.16.1.41:/root/oldboyedu.com ./    #拷贝文件
	 
	 rsync -avz root@172.16.1.41:/root/ /backup/   #拉取远程目录下的所有文件
	 rsync -avz root@172.16.1.41:/root /backup/    #拉取远程目录以及目录下的所有文件
	 注意:远程拷贝目录需要注意 /
	 
     Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
	 Push(推,上传)
	 rsync		---备份命令
	 [options]  ---选项
	 SRC...		---本地源文件
	 [USER@]	---目标主机的系统用户
	 HOST		---目主机IP地址或域名
	 [DEST]		---目标对应位置
	 
	 实例
	 # 将本地/backup/2018-07-23这个目录以及目录下的内容,推送至于41服务器的/tmp目录下
	 rsync -avz /backup/2018-07-23 root@172.16.1.41:/tmp/
	 
	问题:
		1.使用的ssh系统用户,不安全
		2.必须通过ssh协议才可以传输
	
	
   Access via rsync daemon: (守护进程|虚拟用户)
     Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
     Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
    
	//将本地数据推送至backup服务器
		rsync -avz /mnt/ rsync_backup@172.16.56.11::backup/

	//将backup服务器数据拉至本地服务器
		rsync -avz rsync_backup@172.16.56.11::backup/ /mnt/ 

4.Rsync服务实践

角色 外网IP(NAT) 内网IP(LAN) 主机名
Rsync服务端 eth0:10.0.0.41 eth1:172.16.1.41 backup-41
Rsync客户端 eth0:10.0.0.31 eth1:172.16.1.31 nfs01

1.安装
[root@backup-41 ~]# yum install rsync -y

2.配置
[root@backup-41 ~]# cat /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
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
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup

创建用户(运行程序时使用的用户)
[root@backup-41 ~]# useradd -M -s /sbin/nologin rsync
[root@backup-41 ~]# id rsync
uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)

建立虚拟账户对应的用户名与密码(用于客户端连接的账户和密码)
[root@backup-41 ~]# cat /etc/rsync.password
rsync_backup:123456
[root@backup-41 ~]# chmod 600 /etc/rsync.password

创建仓库目录,授权属主和属组
[root@backup-41 ~]# mkdir /backup
[root@backup-41 ~]# chown -R rsync.rsync /backup/

3.启动
[root@backup-41 ~]# systemctl start rsyncd
[root@backup-41 ~]# systemctl enable rsyncd
[root@backup-41 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1728/rsync

4.配置客户端,实现无密码推送数据或拉取数据

方式一:适合终端执行
[root@nfs01 ~]# echo "123456" > /etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password

方式二:适合写脚本
[root@nfs01 ~]# export RSYNC_PASSWORD=123456
[root@nfs01 ~]# rsync -avz /root/2018-07-23 rsync_backup@172.16.1.41::backup/

1.推,在客户端上进行测试
准备对应的文件
[root@nfs01 ~]# mkdir $(date +%F)
[root@nfs01 ~]# cp /etc/hosts /etc/passwd 2018-07-23/

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST

rsync -avz /root/2018-07-23 rsync_backup@172.16.1.41::backup/

5.Rsync定时备份
6.Rsync服务扩展
7.Rsync故障处理

@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]

1.密码不对
2.没有创建虚拟账户
3./etc/rsync.password 权限不对,必须是600

8.Rsync备份项目案例

posted @ 2018-12-31 23:51  john5的博客  阅读(40)  评论(0)    收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css