九、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() ...
随机推荐
- java 学生信息管理
题目: 一.测试要求: 1.按照测试内容要求完成程序的设计与编程: 2.将最终结果的源文件(.java)文件上传到以班级为单位,保存源程序. 3.建立学号姓名文件夹,如: ...
- sql 左联 右联 内联的区别
如有表a(col1,col2),a,1b,1 b(col1,col2)a,3c,2 内部联接是指只返回符合联接条件的资料,如select * from a join b on a.col1 = b.c ...
- 知乎live - 三年从前端小工到架构
王利华 刚毕业 在高德 携程 淘宝 0-3年如何发展 1 技能和能力的区别 css js 抽象 切勿好高骛远 要重视基础 2 人和人的差距是什么 注意个人品牌 提高 ...
- 16 ~ express ~ 添加博客分类
一,创建表结构 /schemas/categories.js var mongoose = require('mongoose') module.exports = new mongoose.S ...
- C语言-逃逸字符、类型转换和布尔类型
C语言-逃逸字符 逃逸字符是用来表达无法印出来的控制字符或者特殊字符,它由一个反斜杠""开头,后面跟上另一个字符,这两个字符合起来,组成一个字符. \b是backspace,在su ...
- 四、SAP中转义字符的使用和不同数据类型所占长度不同
一.代码如下: 效果如下,注意看,数字类型占用了10个位置:
- SQLServer多条件查询技巧
2019-10-15 13:31:04 在实际项目开发中,有很多页面都会出现多条件查询功能,类似于这种情况: 牵扯到数据就少不了数据库了.这么多条件的查询,如果要用常规的if else来写判断逻辑的 ...
- PAT Advanced 1043 Is It a Binary Search Tree (25) [⼆叉查找树BST]
题目 A Binary Search Tree (BST) is recursively defined as a binary tree which has the following proper ...
- python 爬虫下载英语听力新闻(npr news)为mp3格式
想通过听实时新闻来提高英语听力,学了那么多年的英语,不能落下啊,不然白费背了那么多年的单词. npr news是美国国家公共电台,发音纯正,音频每日更新,以美国为主,世界新闻为辅,比如最近我国武汉发生 ...
- 药物动力学|肿瘤药物基因组研究的策略|OMIM database|PharmGKB
生命组学 同义突变虽然不改变蛋白质种类,但是影响量,修饰的稳定性. SNP vs mutation SNV单核苷酸变化,mutation,SNP是从群体角度思考的,约有1%,mutation比SNP还 ...