01.全网自动化备份:开始~
02. 全网备份项目环境准备
三台服务器准备完毕
- 完成项目需求
1)所有服务器的备份目录必须都为/backup
web01 nfs01 backup
2)要备份的系统配置文件包括但不限于:
a.定时任务服务的配置文件(/var/spool/cron/root)(适合web和nfs服务器)。
b.开机自启动的配置文件(/etc/rc.local)(适合web和nfs服务器)。
c.日常脚本的目录(/server/scripts)。
d.防火墙iptables的配置文件(/etc/sysconfig/iptables)。
e.自己思考下还有什么需要备份呢?
web01 nfs01
3)Web服务器站点目录假定为(/var/html/www)。
4)Web服务器A访问日志路径假定为(/app/logs)
web01
5)Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)
web01 nfs01
wq
6)备份服务器上,保留每周一的所有数据副本,其它要保留6个月的数据副本。
部署好rsync守护进程服务
backup
7)备份服务器上要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存。OK
8)需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中(发邮件技巧见VIP群资料)。
backup
备份客户端要完成的工作
1.mkdir -p /backup/10.0.0.31/
mkdir -p /server/scripts -web要创的
cd /
{ 要备份的系统配置文件压缩备份命令 }
2.1 tar zchf /backup/system_backup_$(date +%F_week%w).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./ etc/sysconfig/iptables --./不让他报错
{ 备份 Web服务器站点目录 Web服务器A访问日志 }
2.2创建mkdir /var/html/www -p mkdir /app/logs -p
2.3 压缩:
tar zchf /backup/www_backup_$(date +%F_week%w).tar.gz ./var/html/www
tar zchf /backup/www_log_backup_$(date +%F_week%w).tar.gz ./app/logs
Web服务器保留打包后的7天的备份数据即可
find /backup -type f -mtime +7|xargs rm
*发送数据完整性信息必须在rsync传输之前*
find /backup/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >/backup/10.0.0.31/finger.txt
备份到备份服务器:
rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
{ps:如果是新的服务器这两条别忘了执行
yum install rsync
echo "oldboy123" >/etc/rsync.password
chmod 600 /etc/rsync.password }
|补充:
01. tar命令用法
-h, --dereference follow symlinks; archive and dump the files they point to
将链接文件所指向的原文件进行保存备份
#tar xf system_backup.tar.gz |
备份服务端要完成的工作
mkdir backup
保留每周一的所有数据副本,其它要保留6个月的数据副本:
find /backup/ -type f -mtime +180 ! -name "*week1.tar.gz"
验证MD5是否ok
find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check.txt
配置邮箱在补充说明里***
发送邮件
mail -s "邮件测试" lpf17860616257@163.com </tmp/check.txt
补充说明:
01. 保留周一数据的方法
a 在数据名称信息上加上周的信息
find /backup/ -type f -mtime +180 ! -name "*week1.tar.gz"
b 在服务端进行检查,将每周一传输的数据进行单独保存
02. 如何验证数据完整性
利用md5算法进行验证数据完整性
#md5sum -c 指纹文件命令执行原理
# 第一个历程: 打开一个指纹文件,将信息记录到缓存中
# 第二个历程: 根据指纹文件的路径信息,生成md5数值信息
# 第三个历程: 将新生成md5数值和原有指纹文件中的数值进行比较
# 第四个历程: 如果相同显示结果为ok,如果不同显示failed
03. 如何实现发送邮件
a 配置163企业邮箱
点设置 pop3/。。。 设置 开启imap/smtp服务 会有个授权码一定要记住
在往下翻记住服务器地址:smtp服务器地址
b 编写linux服务邮件相关配置文件
vim /etc/mail.rc
set from=lpfroot17860616257@163.com smtp=smtp.163.com
set smtp-auth-user=lpfroot17860616257@163.com smtp-auth-password=INUIVCIPWPLWLKLD smtp-auth=login
systemctl restart postfix.service
c 发送邮件测试
echo "邮件发送测试"|mail -s "邮件测试" lpfroot17860616257@163.com
mail -s "邮件测试" lpfroot17860616257@163.com </etc/hosts
04. 编写全网备份脚本
/server/scripts
客户端脚本:
Backup_dir="/backup"
Ip_info=$(hostname -i)
mkdir -p /backup/
cd /
tar zchf /backup/system_backup_$(date +%F_week%w).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./
etc/sysconfig/iptables
find /backup -type f -mtime +7|xargs rm 2>/dev/null
find /backup/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >/backup/10.0.0.31/finger.txt
rsync -avz /backup/ rsync_backup@172.16.service1.41::backup --password-file=/etc/rsync.password
替换 : 3,$s#/backup#Backup_dir#g
服务端:
#!/bin/bash
#del 180 age da
find /backup/ -type f -mtime +180 ! -name "*week1.tar.gz" rm 2>/dev/null
#check backup
find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check.txt
#check backup
mail -s "check backup info for $(date +%F)" lpfroot17860616257@163.com </tmp/check.txt
自动化:
05. 实现自动完成全网数据备份(定时任务)
客户端定时任务:
crontab -e
# backup data
0 0 * * * /bin/sh /server/scripts/backup.sh &>/dev/null
服务端定时任务
# check backup data
0 5 * * * /bin/sh /server/scripts/backup_server.sh &>/dev/null