【运维心得】你不知道,运维也要写代码(1)
在大多数人的印象中,运维更加像修电脑的,或者折腾服务器和交换机的。也不能算错,作为运维的一方面,上面说的,是系统运维工作。其实运维共有5个方面的工作。。。。。。今天我们要说的是DEV和DBA,这两个岗位,是需要写代码的,当然,从待遇上,也是比系统运维要高的,如果你现在正在做系统运维,想要更好的发展,那么DEV和DBA是你可以考虑的方向。
·
在大多数人的印象中,运维更加像修电脑的,或者折腾服务器和交换机的。也不能算错,作为运维的一方面,上面说的,是系统运维工作。其实运维共有5个方面的工作,从网上搞了一张图,如下:
今天我们要说的是DEV和DBA,这两个岗位,是需要写代码的,当然,从待遇上,也是比系统运维要高的,如果你现在正在做系统运维,想要更好的发展,那么DEV和DBA是你可以考虑的方向。
面试题
我们看一个面试题,如果你不看答案能够很轻松的做出来,那么离DEV和DBA就不远了,进入正题:
监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:
阶段1:开发一个守护进程脚本每30秒实现检测一次。
阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误。
阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)
答案解析
怎么样,你有思路了吗?
下面是从网上找来的答案,参见此文监控MYSQL主从同步状态是否异常,有什么问题,可以直接到原文去请教。
本文重点解析代码,先把代码贴出来:
#!/bin/bash
#Date:2017-7-3
#Author:xcn(baishuchao@yeah.net)
#version 1.0
mysql_cmd="mysql -u root -proot"
errorno=(1158 1159 1008 1007 1062)
while true
do
array=($($mysql_cmd -e "show slave status\G"|egrep ‘_Running|Behind_Master|Last_SQL_Errno‘|awk ‘{print $NF}‘))
if [ "${array[0]}" == "Yes" -a "${array[1]}" == "Yes" -a "${array[2]}" == "0" ]
then
echo "MySQL is slave is ok"
else
for ((i=0;i<${#errorno[*]};i++))
do
if [ "${array[3]}" = "${errorno[$i]}" ];then
$mysql_cmd -e "stop slave &&set global sql_slave_skip_counter=1;start slave;"
fi
done
char="MySQL slave is not ok"
echo "$char"
echo "$char"|mail -s "$char" 995345781@qq.com
break
fi
sleep 30
done
代码思路整理:
- 首先定义了变量;
- 进入循环过程,其中egrep,awk的用法很不错;
更多推荐



所有评论(0)