九、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() ...
随机推荐
- 51nod 1429:巧克力
1429 巧克力 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 现在有两个块巧克力一块大小是 的,另外一块大 ...
- webservice 的简单实现
1.什么是webservice: 服务端整出一些资源让客户端访问(获取数据) 一个跨语言.跨平台的规范2.作用:跨平台调用.跨语言调用.远程调用 3.什么时候使用webservice: 1.新旧系统之 ...
- cnblogs今天挂了
刚打算搬进来常驻cnblogs,好死不死,它今天11点40分左右挂了.真是不让人省心: 今天把这后面这几个月的随笔放过来,希望能不会被清掉:
- Floyd--P1119 灾后重建
题目背景 B地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响.但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车.换句话说,只有连接着两个重建完成的村庄的公路才能 ...
- Windows系统JDK环境变量配置
一.环境准备 Windows10 jdk1.8.0_144 二.下载并安装JDK 下载 密码: r5ym 三.环境变量配置 首先,打开控制面板>系统和安全>系统,点击高级系统设置进入系统属 ...
- C#应用程序结构
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- 用tensorflow求手写数字的识别准确率 (简单版)
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #载入数据集 mnist = in ...
- 兼容iphonex底部那个
@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ra ...
- JSP编码问题解决方法
最近再看JSP相关知识,被中文乱码搞的很头大.找了好多方法终于找到了一个简单可行的方案. JSP中request和response操作默认编码为"ISO-8859-1",这是中文乱 ...
- Arduino学习——u8glib库资料整理
第一部分,u8glib标准语法格式: 本文使用的是DFRobot出品的LCD12864 Shield V1.0 端口占用情况: SPI Com: SCK = 13, MOSI = 11, CS = 1 ...