九、Shell脚本高级编程实战第九部
一、监控mysql主从同步是否异常,如果异常,发送短信给管理员
1)开发一个守护进程脚本每30秒实现检测一次。
2)如果错误号是:1158、1159、1008、1007、1062,请跳过
3)请使用数组实现上述要求
#!/bin/sh
errorno=(1158 1159 1008 1007 1062)
mysql_cmd=" mysql -uroot -poldboy124 -S /data/3307/mysql.sock"
while true
do
flag=0
array=($($mysql_cmd -e "show slave status\G"v|egrep '_Running|Behind_Master|SQL_Errno" |awk '{print $NF}'))
if [ "${array[0]}" == "Yes" -a "${array[1]}" == "Yes" -a "${array[2]}" =="0" ]
then
echo "Mysql slave is ok"
else
for((i=0;i<${#errorno[*]};i++))
do
if [ "${array[3]}" -eq "${errorno[$i]}" ];then
$mysql_cmd -e "stop slave &&set global sql_slave_skip_count=1;start slave;"
fi
done
char="Mysql slave is not ok"
echo "$char"
echo "$char"|mail -s "$char" 828882@qq.com
fi
sleep 5
done
二、for循环打印下面这句话字母不大于6的单词
#!/bin/sh
arr=(I am oldboy teacher welcome to oldboy training class)
for word in ${arr[*]}
do
if [ ${#word} -le 6 ]
then
echo $word
fi
done
三、监控web站点下目录/var/html/www下所有文件是否被恶意篡改,如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次
#!/bin/sh
n=`cat check_site.log|wc -l`
while true
do
f= md5sum -c md5sum.db 2>/dev/null|grep FAILED|wc -l
find1=`find ./apache2.2.27/ -type f|wc -l`
log=/tmp/check.log
if [ $f -ne 0 ] || [ `cat $path/new_site.log|wc -l` -ne $n ]
then
echo "md5sum -c md5sum.db 2>/dev/null|grep FAILED" >$log
diff $path/check_site.log $path/new_site.log>>$log
mail -s "site is cuangai $(date)"<$log
fi
sleep 3
done
四、对于脚本的调试,要查看报错信息,保持好的开发脚本的习惯,思路要清晰。复杂脚本要简单化分段式实现脚本。
1)使用dos2unix处理window下写的脚本
dos2unix xx.sh脚本进行文件格式化
2)使用echo 在命令中进行调试
3)sh -x :将脚本执行的内容和参数显示在屏幕上
4)set -x(set +x): 可以进行调试脚本的范围
九、Shell脚本高级编程实战第九部的更多相关文章
- 二、Shell脚本高级编程实战第二部
一.什么是变量? 变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量.路径.字符串等等内容,最大的特点就是方便,更好开展工作 1.变量有环境变量(全局变量)和局部变量 环境变量就是 ...
- 四、Shell脚本高级编程实战第四部
一.比较两个数的大小 #!/bin/shread -p "Pls input two num:" a b[ -z "$a" ] || [ -z "$b ...
- 一、Shell脚本高级编程实战第一部
Shell脚本语言是实现linux系统自动化管理的重要且必要的工具,几乎每一个合格的linux系统管理员或者高级运维工程师都要熟练shell脚本语言的编写,只有这样才能提升工作效率,解决工作中的重复劳 ...
- 三、Shell脚本高级编程实战第三部
保养好自己的发动机:身体的和心里的身体健康:打打球,跑跑步心里健康:多和大家接触,保持家人.朋友的良好关系一.$*和$@的区别 $*:获取shell的所有参数,将所有的参数视为单个字符串. $ ...
- 七、Shell脚本高级编程实战第七部
一.写网络服务的系统启动脚本 利用case语句开发类似系统启动rsync服务的脚本 代码: #!/bin/sah. /etc/init.d/functionspidfile="/var/ru ...
- 六、Shell脚本高级编程实战第六部
一.写一个start_nginx脚本,当启动.停止.重启时利用系统函数模拟实现系统脚本启动的特殊颜色效果 (用if实现) #!/bin/sh. /etc/init.d/functions if [ $ ...
- 八、Shell脚本高级编程实战第八部
一.使用for循环在/oldboy目录下创建10个文件名为oldboy-x的文件 #!/bin/sh[ ! -d /oldboy ] && mkdir -p /oldbfor i in ...
- 五、Shell脚本高级编程实战第五部
一.条件表达式 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作.有时也和if结合,让我们方便判断. test: 1)判断文件是否存在:test -f file 2) ...
- Shell脚本高级编程笔记一
http://www.cnblogs.com/ygj0930/p/8184277.html 一:函数 1:创建函数 法一: function name{ commands } 法二: name() ...
随机推荐
- mac允许“任何来源”下载的应用
刚买的mac电脑,我们不止在App Store上下载,还会通过浏览器下载 有的时候需要下载一些破解的软件,这个时候安装会提示文件被破坏,很是头疼 不用着急,这是因为mac会判断app如果被破坏,就不允 ...
- Ubuntu 安装VirtualBox 虚拟机
转载 1.终端命令 编辑sources.list ? 1 sudo gedit /etc/apt/sources.list 2.添加 软件源 将下面的地址加入sources.list 的末尾,保存并退 ...
- jetty启动项目后js修改后无法保存
在web.xml中加入如下配置即可: <servlet> <servlet-name>default</servlet-name> <servlet-clas ...
- GPRS模块
一.参考网址 1.AT指令(中文详解版)(二)
- 全面掌握Nginx配置+快速搭建高可用架构 一 开启status页面检测服务状态
输入命令Nginx -V 打开conf.d/default.conf 配置模块,配置位置在server或者location 配置完成后测试语法正确 nginx -tc /etc/nginx/nginx ...
- Resource interpreted as Stylesheet but transferred with MIME || DevTools failed to parse SourceMap:
最近在学SpringBoot,在整合Thymeleaf的时候,配置拦截器.教学上讲SpringBoot已经做好了静态资源映射,所以不需要特地去做排除拦截 以下代码就是我在做登录拦截的时候配置的拦截. ...
- PAT Advanced 1076 Forwards on Weibo (30) [图的遍历,BFS,DFS]
题目 Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and ...
- EF Core开发模式之Code First
Code First顾名思义,代码为先.首先编写完相关的实体类及DbContext派生类,然后通过映射关系自动在数据库中完成数据库表的创建. 本例中创建一个班级和学生的管理,主要有班级类MyClass ...
- UVA 11019 二维匹配 AC自动机
这个题目要求在一个大矩阵里面匹配一个小矩阵,是AC自动机的灵活应用 思路是逐行按普通AC自动机匹配,用过counts[i][j]记录一下T字符矩阵以i行j列为开头的与P等大的矩阵区域 有多少行已经匹配 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL NULL 值处理
MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了处理这种情况,MySQL提供了三大运算符 ...