备份

1. 什么是备份

对一个文件创建副本

2.为什么要做备份

保证数据安全
快速恢复数据

3.备份应该怎么做

增量:效率高,耗时短,占用空间小
全量:效率低,耗时长,占用空间大

4.常用备份工具

cp 本地备份
scp 远程拷贝,全量备份
rsync 远同步,全量和增量备份

5.rsync三大传输模式

1) 本地传输

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

2)远程传输

下载

[root@backup ~]# rsync -avz root@172.16.1.31:/etc/hosts   ./

上传

[root@backup ~]#rsync -avz /etc/hostst root@172.16.1.41:./

3)守护进程

配置文件

[root@backup ~]# vim /etc/rsyncd.conf
uid = rsync                      # 运行进程的用户
gid = rsync                      # 运行进程的用户组
port = 873                       # 监听端口
fake super = yes                 # 不需要rsync已root身份运行,就可以存储文件的完整属性
use chroot = no                  # 禁锢推送的数据至某个目录, 不允许跳出该目录
max connections = 200            # 最大连接数
timeout = 600                    # 超时时间
ignore errors                    # 忽略错误信息
read only = false                # 对备份数据可读写
list = false                     # 不允许查看模块信息
auth users = rsync_backup        # 定义虚拟用户,作为连接认证用户
secrets file = /etc/rsync.passwd # 定义rsync服务用户连接认证密码文件路径

[backup]                		# 定义模块信息
path = /backup         		 	# 定义接收备份数据目录
根据配置文件做以下操作

创建进程用户

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

创建虚拟用户以及虚拟用户的密码

/etc/rsync.passwd
rsync_backup:1
格式:Username:Password

创建接受备份数据的目录

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

启动服务

[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd

检查服务

[root@backup ~]# netstat -lntp
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      22463/rsync 

测试
将本地文件或目录推送到服务端

[root@nfs01 ~]# rsync -avz /etc/host rsync_backup@172.16.1.41::backup

把服务端文件或目录下载到本地

[root@nfs01 ~]# rsync -avz  rsync_backup@172.16.1.41::backup ./
    | -| - |
    | -a                    |      #详细模式输出, 打印速率, 文件数量等   |
	| -z                    |        #传输时进行压缩以提高效率 |
	| -r                    | #递归传输目录及子目录,即目录下得所有目录都同样传输。|
	| -t                    |    #保持文件时间信息  |
	| -o                    |   #保持文件属主信息 |
	| -p                    |  #保持文件权限  |
	| -g                    |    #保持文件属组信息 |
	| -l                    |    #保留软连接  |
	| -P                    |   #显示同步的过程及传输时的进度等信息  |
	| -D                    |      #保持设备文件信息 |
	| -L                    |    #使用的信道协议,指定替代rsh的shell程序  -e 'ssh' |
	| --exclude=PATTERN     |  #指定排除不需要传输的文件模式 |
	| --exclude-from=file   | #文件名所在的目录文件 |
	|  --bwlimit=100        |  #限速传输 |
	| --partial             |     #断点续传 |
	|--delete               |    #让目标目录和源目录数据保持一致 |

6. 案列

客户端需求

1.客户端提前准备存放的备份的目录,目录规则如下:/backup/nfs_172.16.1.31_2018-09-02
2.客户端在本地打包备份(系统配置文件、应用配置等)拷贝至/backup/nfs_172.16.1.31_2018-09-02
3.客户端最后将备份的数据进行推送至备份服务器
4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间
5.客户端每天凌晨1点定时执行该脚本

服务端需求

1.服务端部署rsync,用于接收客户端推送过来的备份数据
2.服务端需要每天校验客户端推送过来的数据是否完整
3.服务端需要每天校验的结果通知给管理员 (邮件)
4.服务端仅保留6个月的备份数据,其余的全部删除

主机名

[root@backup ~]# hostname

IP地址

[root@backup ~]# ifconfig eth1 | awk '/inet / { print $2 }'

时间

[root@backup ~]# date +%F
mkdir -p  /backup/$(hostname)_$(ifconfig eth1 | awk '/inet / { print $2 }')_$(date +%F)

编写脚本
客户端:

[root@backup~]#vim /scripts/client_push_data_server.sh
#!/usr/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

PASH=/backup
HOST=$(hostname)
ADDR=$(ifconfig eth1 |awk '/inet / {print $2}')
DATE=$(date +%F)
DEST=$PASH/${HOST}_${ADDR}_${DATE}

#创建对应的备份目录
[ -d $DEST ] || mkdir -p $DEST

#拷贝需要的文件至目录
cd / && \
[ -f $DEST/sys.tar.gz ] || tar czf $DEST/sys.tar.gz etc/passwd etc/fstab etc/hosts && \
[ -f $DEST/other.tar.gz ] || tar czf $dest/other.tar.gz var/spool/cron scripts

#添加标记
[ -f $DEST/flag_${DATE} ] || md5sum $DAST/*.tar.gz > $DEST/flag_${DATE}
#推送
export RSYNC_PASSWORD=1
rsync  -avz $PASH/ rsync_backup@172.16.1.41::backup

#保留七天之内的备份文件
find $PASH/ -type d -mtime +7 |xargs rm -rf

服务端:

[root@backup ~]# vim  /scripts/chech_data_notify.sh
#!/usr/bin/bash

Path=/backup
Date=$(date +%F)

#校验推送过来的数据
md5sum -c $Path/*/flag_${Date} > $Path/result_${Date}

#通知管理人员结果
mailx -s “校验结果_${Date}” "2872730810@qq.com" <$Path/result_${Date}
定时任务
[root@backup ~]#crontab  -e
00 05 * * *     sh  /scripts/chech_data_notify.sh    &>/dev/null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值