诚意
诚意如你,当一诚的态度对待

导航

 

一:了解备份

本地主机:数据备份:tar打包+定时任务+存放

远程主机:scp    rcp(不加密)

scp -r   /etc/hosts    172.16.1.41:/tmp

 

Scp 全量传输

rsync:增量传输(把新增加的同步)

1:rsync

rsync是一款开源的备份工具,可以在不同主机之间进行同步,可以实现全量备份和增量备份

2:/data/与/data的区别

/data/

/data目录下面的内容

/data

/data目录和/data目录下面的内容

 

二:传输模式

# man rsync

[root@backup ~]# yum install rsync -y

1:本地传输(相当于cp)

(1)语法:

rsync [OPTION...] SRC... [DEST]

(2)参数:

rsync:

命令

 [OPTION...]:

选项

SRC

本地源文件

 [DEST]

本地目标文件

(3)案例:

[root@backup ~]# rsync -r /etc/hosts /tmp/

[root@backup ~]# rsync -avz /etc/hosts /tmp/

-r:

复制的时候加上目录,递归

-a:

 相当于-rlptgoD(-l:link,p:permission,-t:time,g:group,o:owner,-D:device)

-v:

显示过程

-z:

传输时候进行压缩

 

2:远程传输Access via remote shell

借助ssh协议进行传递,ssh的用户和密码,用户和密码必须是能登录系统(不安全)/        公钥

(1)语法:

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

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

(2)参数:

Pull

拉,下载

Push

推,上传

rsync

命令

[OPTION...]

选项

[USER@]

目标主机的系统用户

HOST

目标主机的IP或域名

SRC

目标主机的原文件

 [DEST]

下载至本地那个位置

(3)案例

[root@backup ~]# rsync /etc/passwd 172.16.1.31:/tmp       (推,上传)

[root@backup ~]# rsync -avz 172.16.1.31:/etc/hostname .       (拉,下载)

假设我们在nfs01 .31将本地/backup/2018-07-23这个目录以及目录下的内容,推送至于41服务器的/tmp目录下

[root@nfs01 ~]# rsync /backrsync -avz /backup/2018-07-23 172.16.1.41:/tmp

 

3:Access via rsync daemon(守护进程|虚拟用户)

(1)rsync的配置文件====/etc/rsyncd.conf    (d==daemon)

[root@backup-41 ~]# cat /etc/rsyncd.conf

uid = rsync       #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   准许谁访问rsync服务的

#hosts deny = 0.0.0.0/32

auth users = rsync_backup   用来访问rsync服务端的用户名

secrets file = /etc/rsync.password    访问rsync服务端的密码

log file = /var/log/rsyncd.log

#######rsyncd.conf oldboy ###########

[backup]                                            模块名称    推荐与共享的目录名称相同

comment = welcome to oldboyedu backup!    注释

path = /backup    共享目录

(2)创建用户(运行程序时使用的用户)

[root@backup-41 ~]# useradd -M -s /sbin/nologin rsync

[root@backup-41 ~]# id rsync

uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)

 

(3)建立虚拟账户对应的用户名与密码(用于客户端连接的账户和密码)

[root@backup-41 ~]# cat /etc/rsync.password

rsync_backup:123456

[root@backup-41 ~]# chmod 600 /etc/rsync.password

 

(4)创建仓库目录,授权属主和属组

[root@backup-41 ~]# mkdir /backup

[root@backup-41 ~]# chown -R rsync.rsync /backup/

(5)启动服务并检查端口

[root@backup ~]# systemctl start rsyncd

[root@backup ~]# ss -lntp | grep rsync

LISTEN     0      5            *:873                      *:*                   users:(("rsync",pid=2899,fd=3))

LISTEN     0      5           :::873                     :::*                   users:(("rsync",pid=2899,fd=5))

 

(6)测试:

rsync -avz  /etc/hosts   rsync_backup@172.16.1.41::backup/

    backup是配置文件中的模块

 

 

 

 三:案例

已知 3 台服务器主机名分别为 web01、backup 、nfs,主机信息见下表:
角色           外网IP(NAT)      内网IP(LAN)      主机名
WEB服务器      eth0:10.0.0.7       eth1:172.16.1.7      web01
NFS存储服务器     eth0:10.0.0.31     eth1:172.16.1.31    nfs01
Rsync备份服务器     eth0:10.0.0.41     eth1:172.16.1.41     backup


要求:
1.每天晚上01点整在 Web 服务器上打包备份(系统配置文件、日志文件、其他目录),并通过rsync命令推送备份服务器backup上备份保留
备份思路:
所有服务器在本地按日期打包, 然后再推到备份服务器backup上

具体要求如下:
1)所有服务器的备份目录必须都为/backup

2)备份的系统配置文件包括但不限于:
1.配置文件
//开机自启动配置文件  设备挂载配置文件  本地内网配置文件
/etc/rc.local       	/etc/fstab      /etc/hosts              

2.重要目录
//cron定时任务       firewalld防火墙       脚本目录
/var/spool/cron/    /etc/firewalld     	   /server/scripts

//3.系统日志文件
/var/log/   //系统安全日志、sudo日志、内核日志、rsyslog日志

//4.应用程序配置文件 rsync、nginx、PHP、mysql、redis.....
//自己思考下还有什么需要备份的?


5)所有服务器推送数据, 以主机名_IP地址_当前时间作为目录, 所有的备份数据存放至该目录下 /backup/nfs-server_172.16.1.31_2018-09-02/
/backup/nfs-server_172.16.1.31_2018-09-03/
/backup/nfs-server_172.16.1.31_2018-09-04/

3)所有服务器本地保留最近7天的数据, 避免浪费磁盘空间


4)Rsync备份服务器上,其它要保留6个月的数据副本。 
/backup/nfs-server_172.16.1.31_2018-09-02/
/backup/nfs-server_172.16.1.31_2018-09-03/
/backup/nfs-server_172.16.1.31_2018-09-04/
/backup/web-server_172.16.1.31_2018-09-02/
/backup/web-server_172.16.1.31_2018-09-03/
/backup/web-server_172.16.1.31_2018-09-04/

6)确保备份的数据完整,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中。
7)真实工作中除了服务器之间备份, 可能还会需要异地备份,这个地方请大家思考如何异地备份。

  

 

 

posted on 2018-08-26 23:27  诚意  阅读(178)  评论(0编辑  收藏  举报