Day41-rsync企业备份项目实战收尾结束
1. xshell连接不上虚拟机(从好到不好啥也没动)后的解决办法
- 重启windows vnet8网卡
- 还原虚拟编辑器设置
2. 备份脚本(见课堂笔记备份文件)
3. 故障报警方式:
- 邮件(转手机)
- 微信、钉钉(手机)
- 电话(手机)
4. 总结企业linux运维场景数据同步方案:
- 文件级别同步方案(复制文件)
scp,Nfs,Sftp,http,samba,rsync
链接: http://oldboy.blog.51cto.com/2561410/775056 - 文件系统级别同步
drbd(基于文件系统同步网络RAID1),复制block(备用节点不可用状态)
链接: http://oldboy.blog.51cto.com/2561410/1240412 - 数据库同步方案
文件级别也可以利用mysql,mongodb等软件。
mysql replication
oracle dataguard(物理的,逻辑的)。
5. 重启rsync组合命令,以及杀进程命令汇总说明:
rsync --daemon #←启动rsync服务
[root@backup /]# systemctl stop rsyncd
[root@backup /]# lsof -i :873
[root@backup /]# rsync --daemon
[root@backup /]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 1587 root 3u IPv4 25628 0t0 TCP *:rsync (LISTEN)
rsync 1587 root 5u IPv6 25629 0t0 TCP *:rsync (LISTEN
检查启动的进程
ps -ef|grep rsync #←检查rsync服务
pkill rsync ---关闭rsync服务,加进程名字,即通过进程名称杀掉进程
pkill program name(ps -ef)
killall rsync ---根据进程的名称,以比较平滑的方式杀死进程
killall program name
kill -进程(-9表示强制杀) ---常用的杀进程命令,可以加进程号,其中-9参数表示强制杀掉进程(不推荐使用)
kill pid(-9 不要使用这个参数)
kill -HUP `cat /var/run/rsyncd.pid` ---HUP表示利用kill命令,平滑杀进程
kill -USR2 `cat /var/run/rsyncd.pid` ---USR2表示利用kill命令,平滑杀进程
kill `cat /var/run/rsyncd.pid`
C7:
systemctl start rsyncd
6. rsync专家级排错思想:
- iptables firewall防火墙和selinux
- 学会看日志,rsync命令行输出,日志文件/var/log/rsyncd.log。
- 整个部署流程整体考虑排查。rsync原理理解
- 操作习惯当做一个大事。
- 模拟排错:故意把一个正确的步骤搞错
- 执行命令后,看输出。
补充:
排错能力练习:
- 模拟错误(两个人一个人搞错了,一个人排错),重视日常错误。
- 服务端无共享目录错误;
框架:
- 部署流程、原理。
- 操作的时候操作前备份、操作后检查。
windows脚本notepad++打开,拷贝到linux下可能会出现问题:
解决办法:默认执行 dos2unix 脚本名
数据备份项目实战(项目管理思路):
- 做规范专业项目文档、画逻辑图,提交老大审核。
关键时刻和老大回报进度,关键点请老大审核。 - 解题思路*****
剧本:
- 1.搭建backup服务器
- rsync服务 -->ok
- 2.搭建web01服务器
- 验证rsync服务能否推送成功–>ok
- 开发脚本实现打包、备份、推送、校验、删除。–>ok
- 配置定时任务每天00点定时推送。–>ok
- 3.backup服务器
- 开发脚本实现校验、删除、报警(ok)。
- 配置定时任务每天6点定时执行。
- 4.同理搭建存储nfs01 -->ok
- 项目实施
- 验收。
- 写总结提交领导
- 员工培训
Rsync 企业级应用经验
Rsync 排错思路
- 排错必备思想:要对部署流程步骤掌握熟练,熟悉 rsync 数据同步原理,并且要学会多看日志,rsync 命令行输出日志文件为/var/log/rsyncd.log。
- 排错能力练习:模拟错误(两个人一个人搞错了,一个人排错),重视日常错误总结。
7. Rsync 服务端排错思路
- 查看rsync服务配置文件路径是否正确,正确的默认路径为:/etc/rsyncd.conf
- 查看配置文件里host allow,host deny,允许的ip网段是否是允许客户端访问的 ip 网段。
- 查看配置文件中path参数里的路径是否存在,权限是否正确(正常应为配置文件中的UID参数对应的属主和组)。
- 查看rsync服务是否启动。查看命令为:ps -ef l grep rsync。端口是否存在 netstat -Int | grep 873
- 查看iptables防火墙和selinux是否开启允许rsync服务通过,也可考虑关闭。
- 查看服务端rsync配置的密码文件是否为600的权限,密码文件格式是否正确,正确格式用户名:密码,文件路径和配置文件里的secrect files参数对应。
- 如果是推送数据,要查看下,配置rsyncd.conf文件中用户是否对模块下目录有可读写的权限。
8. Rsync 客户端排错思路
- 查看客户端rsync配置的密码文件是否为600的权限,密码文件格式是否正确,注意:仅需要有密码,并且和服务端的密码一致。
- 用telnet连接rsync服务器ip地址 873 端口(telnet 172.16.1.41 873),查看服务是否启动(可测试服务端防火墙是否阻挡)。
- 客户端执行命令时,语法格式书写不正确,此命令的细节要记清楚,尤其语法格式中的双冒号及随其后的oldboy为模块名称。
9. Rsync企业级全网备份项目考试
项目前言介绍
随着互联网大环境的不断蓬勃发展,社会上各个行业都不断转变思路,拓展自己的业务领域,向着互联网企业进行转型,转型后的企业也在不断扩展着自身的互联网架构.随着架构不断的扩展,架构中的服务器数量也在不断增多,由原来的几台变为几十台,甚至几百台的规模。此时由于服务器数量的增多,对服务器中数据的管理备份也随之变的复杂,传统的本地备份或简单的 scp 复制到存储服务器的备份解决方案,已远远不能有效的解决规模壮大后的架构需求。因此急需一种更为智能的解决方案来完成备份数据需求,保证整体架构数据的安全可靠性。
项目需求说明
某公司里有一台 web 服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求把数据做备份,这样 web 服务器数据丢失可以进行恢复,要求如下:
每天晚上 00 点整在 web 服务器 A 上打包备份系统配置文件、网站程序目录及访问日志并通过 rsync 命令推送到服务器 B 上备份保留(备份思路可以是先在本地按日期打包,然后再推到备份服务器 B 上)已知 3 台服务器主机名分别为 web01、backup 、nfs01,主机信息见下表:
全网备份主机信息表
服务器说明 | 外网 IP(NAT) SSH用 | 内网 IP(NAT) 交换数据用 | 主机名称 |
---|---|---|---|
nginx web 服务器 | 10.0.0.7/24 | 172.16.1.7/24 | web01 |
NFS 存储服务器 | 10.0.0.31/24 | 172.16.1.31/24 | nfs01 |
rsync 备份服务器 | 10.0.0.41/24 | 172.16.1.41/24 | backup |
备份要求
每天晚上 00 点整在 Web 服务器上打包备份系统配置文件、网站程序目录及访问日志并通过 rsync 命令推送备份服务器 backup 上备份保留
备份思路
可以是先在本地按日期打包,然后再推到备份服务器 backup 上;NFS 存储服务器同 Web 服务器实际工作中就是运维主要管理的全部服务器。
具体备份需求
- 所有服务器的备份目录必须都为**/backup**
- 要备份的系统配置文件包括但不限于:
a) 定时任务服务的配置文件 (/var/spool/cron/root) (适合 web 和 nfs 服务器)。
b) 开机自启动的配置文件 (/etc/rc.local) (适合 web 和 nfs 服务器)。
c) 日常脚本的目录 (/server/scripts)。 - Web 服务器站点目录假定为/var/html/www,如果没有可以先模拟创建。
- Web 服务器访问日志路径假定为/app/logs,如果没有可以先模拟创建。
- Web 服务器本地保留打包后的 7 天备份数据即可(本地留存不能多于 7 天,因为太多硬盘会满) 。
- 备份服务器 backup 上,保留最近 7 天的备份数据,同时保留 6 个月内每周一的所有数据副本。
- 备份服务器上,要按照备份数据服务器的内网 IP 为目录保存备份,备份的文件按照时间名字保存。
- 需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据是否完整进行检查。
- 每天早晨 8:00 把备份成功或失败结果信息发给系统管理员邮箱中。
服务器备份信息汇总表
服务器说明 | 备份目录 | 目录说明 | 备注 |
---|---|---|---|
all server | /backup | 备份目录 | 统一服务器本地备份目录,便于管理 |
all server | /var/spool/cron/root | 定时任务服务配置文件 | |
all server | /etc/rc.local | 开机自启动配置文件 | |
all server | /server/scripts | 日常脚本目录 | 统一服务器本地脚本目录,便于管理 |
web server | /var/html/www | web 服务器站点目录 | mkdir -p /var/html/www |
web server | /app/logs | web 服务器访问日志路径 | mkdir –p /app/logs |
项目逻辑架构
图 1 全网备份架构逻辑图
答案参考: https://edu.51cto.com/course/8198.html
mail.rc
#邮件服务配置(老男孩77期)
set from=720@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=720@qq.com
set smtp-auth-password=crlddsh
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/