27届春招备战一轮复习--第三期
----作者:王贵祥
题外话
运维需要哪些能力?
-
能不手动尽量不要手动,自动化才是王道。重复的活不值得浪费时间,能写脚本搞定的,坚决不手动点。
-
稳定第一
-
别光靠老经验,学习得跟的上
-
写文档,不当“知识孤岛”
-
有安全意识,别把系统当儿戏
你对SRE的理解以及为什么选择SRE?
SRE是Google提出的概念,负责保障网站和服务的可用性而做的一切工作。个人工作中的体验是做好监控、自动化、应急响应、预案、故障排查与处理、保障服务的可用性
你说的不错,但缺少一个宏观和动态的思维。SRE最重要的能力是“止损”,如果在变更的过程中止损,如何在业务立项到业务终止全流程止损,如果在突发状况中止损,如何在可预见的和不可预见的范围内止损,确保我们的服务以一个非常健康的状态提供服务才是SRE的核心需求。从立项开始就要参与进来,知道如何配置与调优;随项目进行,做好流量评估、容量评估、应急预案、预案实施;遇到突发情况对服务主备切换,提升响应速度,缩小影响范围;在全链路全流程的视角跟踪、发现、预警问题;制度上加强监管,规避失误。
为什么选SRE吗?贵祥也不知道,好像但是车车姐把我拉过去上了一期,然后我就奇怪的变成运维的模样了😂😂😂😂😂😂😂😂😂😂😂😂😂🙌🙌🙌🙌
我的真实案例
某个周五夜里3点,我们那个jenkins-master CPU爆了,发短信到我手机上。去AWS控制台查了一下,症状持续了3分钟,符合报警阈值和规则。然后跳板机远程登录,TOP查异常进程,有一个叫xmrig的东西,Google说这是门罗币挖矿病毒。常见来源有甲乙丙丁,我怀疑是我们jenkins控制台被人暴力破解密码了,因为我不喜欢复杂口令。查jenkins log有个异常的job在jenkins里面,他的执行就一行curl的代码,从一个ip抓sh文件执行。回到机器上面,把进程暂定掉,lsof和cat /proc 查关联文件,echo清空,chattr加锁,改权限,使这些木马文件假死。创建一个同名的job伪装成木马。清理crontab,清理/etc、/profile等目录。iptables把来源ip流量ban掉。最后kill掉异常进程。第二天强制要求所有jenkins用户改密码,设定密码复杂度和过期时间。等观察一阵没问题了,把假死的job和文件清理掉。
#chattr 命令,专门用来修改文件或目录的隐藏属性,只有 root 用户可以使用。[root@localhost ~]# touch ftest
\#建立测试文件
[root@localhost ~]# chattr +i ftest
[root@localhost ~]# rm -rf ftest
rm:cannot remove 'ftest':Operation not permitted
\#无法删除"ftesr",操作不允许
\#被赋予i属性后,root不能删除
[root@localhost ~]# echo 111>>ftest
bash:ftest:Permission denied
\#权限不够,不能修改文件中的数据可以看到,设置有 i 属性的文件,即便是 root 用户,也无法删除和修改数据。
算法
LCR 121. 寻找目标值 - 二维数组
中等
m*n 的二维数组 plants 记录了园林景观的植物排布情况,具有以下特性:
- 每行中,每棵植物的右侧相邻植物不矮于该植物;
- 每列中,每棵植物的下侧相邻植物不矮于该植物。
请判断 plants 中是否存在目标高度值 target。
示例 1:
输入:plants = [[2,3,6,8],[4,5,8,9],[5,9,10,12]], target = 8输出:true
示例 2:
输入:plants = [[1,3,5],[2,5,7]], target = 4输出:false
from typing import Listclass Solution:def findTargetIn2DPlants(self,plants:list[list[int]],target:int) ->bool:if not plants or not plants[0]:return Falserows , cols = len(plants), len(plants[0])#从右上角开始探索row,col = 0,cols-1while row < rows and col >= 0:if plants[row][col] == target:return Trueelif plants[row][col] > target:col -= 1else:row += 1return False
