运维SRE-11 备份服务及备份项目

时间:2024-02-23 12:36:32

1.第一个服务-rsync备份服务-守护进程模式

1.1概述

  • 守护进程:持续运行的进程,也可以叫作服务
  • 服务一般分为:服务端与客户端
  • 服务端:linux服务器上运行的各种服务软件
  • 客户端:linux中的客户端可能是一个命令,也可能是app,小程序等

1.2流程与原理

在这里插入图片描述
在这里插入图片描述

1.3 rsync守护进程模式快速实战指南

服务端:

客户端:

1)rsync服务端(backup)
a)rsync服务端配置文件

cat /etc/rsyncd.conf 
##################################
#rsyncd.conf start##
#rsyncd 20221111
fake super = yes
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
#hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[data]
comment = "backup dir by oldboy lidao996"
path = /data

b)创建用户(添加与登录shell无关的用户)

useradd -s /sbin/nologin -M rsync
[root@backup /etc]# id rsync
uid=1000(rsync) gid=1000(rsync) 组=1000(rsync)

c)创建密码文件

1.创建密码文件
echo 'rsync_backup:1' > /etc/rsync.password
2.修改权限
chmod 600 /etc/rsync.password

d)创建共享目录

mkdir -p /data
chown rsync.rsync /data/

e)重启服务

1.检查rsyncd服务状态
systemctl status rsyncd
2.启动rsyncd服务
systemctl restart rsyncd
3.再次检查状态
systemctl status rsyncd
4. 开机自启动
systemctl enable rsyncd
5. 检查进程,端口
ps -ef |grep rsync
ss -tnlp|grep rsync
[root@backup /]# ss -ntlp |grep rsync
LISTEN     0      5            *:873                      *:*                   users:(("rsync",pid=5599,fd=3))
LISTEN     0      5         [::]:873                   [::]:*                   users:(("rsync",pid=5599,fd=5))

f)测试服务端
rsync -avz 文件/目录 验证用户@ip::模块名字

#data->/etc/rsyncd.conf中的[data]
rsync -avz /etc/hostname rsync_backup@10.0.0.41::data
[root@backup /]# ll /data/
总用量 4
-rw-r--r-- 1 rsync rsync 7 9月  27 17:14 hostname

g)排错

看命令行错误提示,大概定位问题。
看日志,看日志,看日志。 /var/log/rsyncd.log ,/var/log/messages
看关键词 error或err或 failed
排查流程与搭建流程一致。

2)rsync客户端(nfs,web01)
其实就是把rsync的命令换到别的机器执行

1.创建客户端:所用密码文件(仅存放密码)
echo '1' >/etc/rsync.pass
chmod 600 /etc/rsync.pass
2.在客户端测试连接rsync服务端
rsync -avz /etc/hosts rsync_backup@10.0.0.41::data --password-file=/etc/rsync.pass

3)小结
在这里插入图片描述

1.4 rsync传输全流程详解

在这里插入图片描述

1.5 rsync服务总结

  • 基础特点:增量同步
  • rsync应用场景
  • rsync远程模式(用法,选项)
  • rsync守护进程模式,必会
  • 排错

2 发送邮件方法

2.1概述

通过邮件,微信,钉钉,短信,电话方式进行通知

mailx -s 'hb' 1542293291@qq.com </etc/hosts

在这里插入图片描述

内容比较捡漏需要优化

2.1 配置收件人

邮箱开启smtp功能
邮箱中获取授权码(密码)

在这里插入图片描述

在这里插入图片描述

vim /etc/mail.rc #写到最后
cat >>/etc/mail.rc<<EOF
set bsdcompat
set from=1542293291@qq.com
set smtp=smtp.qq.com 
set smtp-auth-user=1542293291@qq.com
set smtp-auth-password=xktfrfvypnvhheic
set smtp-auth=login
EOF

mailx -s 'you website is guale ' -a /etc/hostname 1542293291@qq.com </etc/hosts

3.项目案例:全网备份案例

在这里插入图片描述

3.1 项目背景:

刚刚入职,发现网站数据丢失,还无法恢复.没有备份.
决定实施备份项目,备份好网站架构的数据,配置文件,脚本....

3.2 项目步骤

规划下需要备份哪些内容.精确文件,目录.
待备份的内容:
	用户数据(数据库,存储).
	各种配置文件 (/etc/,某些软件的配置.)
	脚本.
	网站代码....
	略.
如何备份:
	书写备份脚本:
		备份/etc/目录,备份到/backup/ip/ tar
		备份完成,把备份推送到rsync服务端. rsync
		清除旧的备份
	定时任务定时运行备份.

1)服务端配置

#/etc/rsyncd.conf
[backup]
comment = "backup dir by hb"
path = /backup

systemctl restart rsyncd 
mkdir -p /backup 
chown rsync.rsync   /backup/
测试服务端是否可用(传输文件即可).

#nfs01:
rsync -avz /etc/hosts rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.pass
  1. 客户端配置(脚本,定时任务)
    a)脚本
cat back-etc.sh
#!/bin/bash
#author:hb
#desc:备份/etc目录

ip_rsync_server=172.16.1.41
ip=`hostname -I |awk '{print $2}'`
time=`date +%F`

#1.备份目录
mkdir -p /backup/$ip
tar zcf /backup/$ip/etc.$time.tar.gz /etc/

#2.rsync传输备份
rsync -a /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.pass

#3.删除旧的备份
#find /backup -type -f -mtime +7 -name "*.tar.gz" |xargs rm -f

b)定时任务

* * * * * sh /server/scripts/back-etc.sh &>/dev/null

c)检查服务端的备份是否存在

watch tree /backup

3)服务端

cat check_backup.sh 
#!/bin/bash
#author:hb
#desc:检查备份结果,清理旧的备份,发送邮件

#发送邮件
tree /backup/ |mailx -s '每日备份结果' 1542293291@qq.com

#清理旧的备份
find /backup -type f -mtime +365 -name "*.tar.gz" |xargs rm -f

#加入crontab

3.3项目总结

技术点:rsync守护进程模式,定时任务,脚本(打包备份,变量.),脚本执行检查.

服务端准备好,rsync守护进程模式: backup模块
客户端: 书写脚本,调试脚本
客户端: 书写定时任务执行脚本,
服务端: 书写备份检查脚本(发邮件,删除旧的备份命令.)
服务端,客户端调整定时任务: 
	客户端: 每天晚上12
	服务端: 每天晚上01点