rsync实现多台主机备份项目

修改主机名称

hostnamectl set-hostname backup     --备份服务器名称
hostnamectl set-hostname nfs01      --nfs服务名称
hostnamectl set-hostname web01      --应用服务器名称

1.所有服务器都需要创建目录 /backup

#97代表web01的内网IP
mkdir -p /backup/97
#21代表nfs01的内网IP
mkdir -p /backup/21

2.客户端与服务端各脚本说明
tar -h 代表压缩的时候 连接文件 直接 压缩原文件

#进入根目录  进行相对路径的压缩 避免压缩报错
cd /
#压缩配置文件 加上当前时间和星期几
tar zchf /backup/97/systecm_backup_$(date +%F_week%w).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts 
#压缩网站代码
tar zchf /backup/97/www_backup_$(date +%F_week%w).tar.gz ./var/html/www
#压缩网站产生的日志文件
tar zchf /backup/97/www_logs_backup_$(date +%F_week%w).tar.gz ./app/logs
#当天文件生成MD5值 排除finger*文件不用生成MD5值
find /backup/ -type f -mtime -1 ! -name "finger*"|xargs md5sum > /backup/97/finger.txt
#用rsync同步本地数据/backup 到备份服务器 /backup 模块信息下对应的路径
rsync -avz /backup/ rsync_backup@192.168.0.54::backup --password-file=/etc/rsync.password 
#在备份服务器上对比传过来的文件是否一致
md5sum -c /backup/97/finger.txt 
find /backup/ -type f -name finger.txt|xargs md5sum -c
#把输出的内容重定向到文件:/tmp/check.txt
find /backup/ -type f -name finger.txt|xargs md5sum -c &> /tmp/check.txt
#发送邮件
mail -s "title" xxxx@qq.com < /tmp/check.txt
#web服务找到7天前的备份删除
find /backup/ -type f -mtime +7 -delete
#备份服务器找出180天前的数据排除每周一的数据并删除
find  /backup/ -type f -mtime +180 ! -name "*week1.tar.gz" -delete

配置邮件

#配置文件
vim /etc/mail.rc 
#重启邮件服务
systemctl restart postfix.service
#发送邮件格式
echo "message" |mail -s "title" xxxx@qq.com
#把check.txt文件内容已邮件发送 
mail -s "title" xxxx@qq.com < /tmp/check.txt

编写主机备份脚本
1.客户端脚本 backup.sh
测试检验脚本方法:sh -x 脚本文件

#!/bin/bash

#create backup dir
mkdir -p /backup/97

#tar backup data
cd /
tar zchf /backup/97/systecm_backup_$(date +%F_week%w).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts 

#del 7 day ago data
find /backup/ -type f -mtime +7 -delete 2>/dev/null

#create finger file
find /backup/ -type f -mtime -1 ! -name "finger*"|xargs md5sum > /backup/97/finger.txt

#backup push data info
rsync -az /backup/ rsync_backup@192.168.0.54::backup --password-file=/etc/rsync.password 

2.服务端脚本 backup_server.sh

#!/bin/bash

#del 180 day ago data 
find  /backup/ -type f -mtime +180 ! -name "*week1.tar.gz" -delete 2>/dev/null

#check MD5
find /backup/ -type f -name finger.txt|xargs md5sum -c &> /tmp/check.txt

#send email
mail -s "check backup info for $(date +%F)" xxxx@qq.com < /tmp/check.txt

3.定时任务设置
crontab -e

客户端定时任务 每天0点执行脚本
#backup data
0 0 * * * /bin/sh /server/scripts/backup.sh &>/dev/null

服务端定时任务  每天5点执行脚本
#check data 
0 5 * * * /bin/sh /server/scripts/backup_server.sh &>/dev/null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值