【linux】rsync实现定时备份

1. 项目需求

所有服务器备份目录都必须为/backup

客户端需求:

1.要备份的系统配置文件包括但不限于:
    a)定时任务服务的配置文件         (/var/spool/cron/root) (适合web和nfs服务器)
    b)开机自启动的配置文件             (/etc/rc.local)             (适合web和nfs服务器)
    c)日常脚本的目录                        (/server/scripts)
    d)防火墙iptables的配置文件        (/etc/sysconfig/iptables) 
    e)自己思考下还有什么需要备份呢?

2.要按照客户端的内网ip为目录保存备份,备份的文件按照时间名字保存

3.客户端在本地打包备份后,将备份的数据推送至备份服务器

4.客户端每天凌晨1点开始执行该脚本

5.Web服务器保留打包后7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)

服务端需求:

1.服务端部署rsync,用于接受客户端推送过来的备份数据

2.服务端需要每天校验客户端推送过来的数据是否完整

3.服务端对备份的数量进行检查,把备份的成功及失败信息发送给系统管理员邮箱。
4.服务端保留每周一的所有数据副本,其他要保留6个月的数据副本

2.准备服务器

主机内网ip
nfs01172.16.1.31
backup172.16.1.41

3.客户端:

1. 编辑脚本

[root@nfs01 ~]# vim /server/scripts/backup_date.sh
#!/bin/bash

#变量信息设置
Eth1_info=$(hostname -i)
Date_info=$(date +%F_星期%w -d "-1 day")

#01.创建本地目录
if [ ! -d /backup ]
then 
  mkdir -p /backup/$Eth1_info
fi

#02.进行数据打包备份(备份到本地)
tar zchf /backup/$Eth1_info/system_backup_${Date_info}.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /etc/sysconfig/iptables &>/dev/null

03. 清除7天以前的历史数据
find /backup/$Eth1_info/ -type f -name ".*tar.gz" -mtime +7 -delete

04. 生成每天数据检验文件
find /backup/$Eth1_info/ -mmin -10 -name ".*tar.gz"|xargs md5sum >/backup/$Eth1_info/check.txt

05. 传输备份数据信息
rsync -avz /backup/$Eth1_info rsync_backup@172.16.1.41::backup --password-file=/etc/oldboy.password &>/var/log/backup.log

2. 写入定时任务

# 每天凌晨一点进行文件备份
[root@nfs01 ~]# crontab -e
00 01 * * * /bin/sh /server/scripts/backup_date.sh >&/dev/null

4.服务器端:

1. 安装邮件系统

# 安装邮件系统
[root@backup ~]# yum -install -y mailx

# 编辑邮件系统
vim /etc/mail.rc
#set from=邮箱地址@qq.com 
#set smtp=smtp.qq.com ->邮件发送邮箱服务器域名,此处为qq邮箱的发送服务器域名
#set smtp-auth-user=邮箱账号 
#set smtp-auth-password=登录qq邮箱授权码(可以从qq邮箱获取) 
#set smtp-auth=login

set from=2052139348@qq.com 
set smtp=smtp.qq.com
set smtp-auth-user=2052139348@qq.com 
set smtp-auth-password=uuprbnjrwslfehcd 
set smtp-auth=login

2. 编辑脚本

[root@backup ~]# vim /server/scripts/backup_server.sh 
#!/bin/bash

#01.检验数据备份完整性
find /backup/ -type f -name "check.txt"|xargs md5sum -c >/var/log/backup.log

#02.邮件发送检验结果信息
mail -s "backup_check" 2052139348@qq.com </var/log/backup.log

#03.清理180天以前的数据信息
find /backup/ -type f -mtime +180 ! -name "*_星期1.tar.gz" -delete

3. 编写定时任务

[root@backup ~]# crontab -e
0 8 * * * /bin/sh /server/scripts/backup_server.sh &>/dev/null
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小天才。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值