修改主机名称
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