Linux系统Shell编程—企业生产案例(一)
时间:2022-07-25
本文章向大家介绍Linux系统Shell编程—企业生产案例(一),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
企业案例
Linux系统Shell编程—企业生产案例(一)
企业数据库可以说是重点保护对象啊,没有之一,数据在当今企业里就是生命线,因此今天就来说一说,如何通过shell脚本来检查或监控MYSQL数据库服务是否正常??
01
通过端口判断
[root@mysql ~]# vi checkmysql.sh
#!/bin/sh
#create by mingongge at 2016-11-11
port=`netstat -lnt|grep 3306|wc -l`
if [ $port -ne 1 ];then
echo "mysql is stop"
/etc/init.d/mysqld start
else
echo "mysql is starting"
fi
[root@mysql ~]# sh checkmysql.sh
mysql is starting
[root@mysql ~]# pkill mysqld
[root@mysql ~]# lsof -i :3306
[root@mysql ~]# sh checkmysql.sh
mysql is stop
Starting MySQL. [ OK ]
[root@mysql ~]# lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 1601 mysql 10u IPv4 13690 0t0 TCP *:mysql (LISTEN)
02
通过进程与端口判断
[root@mysql ~]# ps -ef|grep mysql|grep -v grep|wc -l
2
[root@mysql ~]# vi checkmysql.sh
#!/bin/sh
#create by mingongge at 2016-11-11
if [[ port -eq 1 || porcess -eq 2 ]];then
echo "mysql is starting"
else
echo "mysql is stop"
/etc/init.d/mysqld start
注:利用进程判断时,脚本的名称就不要包含有Mysql的字样了,否则就会产生判断不准确的情况出现
03
登陆数据库根据返回值判断
[root@mysql ~]# vi accessmysql.sh
#/bin/sh
mysql -uroot -pmysql123 -e "show databases;" >/dev/null 2>&1
注:此处千万不要用直接登陆的写法mysql -uroot -pmysql123,否则会直接登陆了,不然执行下面的过程了
if [ $? -eq 0 ];then
echo "mysql is starting"
else
echo "mysql is stop"
/etc/init.d/mysqld start
fi
[root@mysql ~]# sh accessmysql.sh
mysql is starting
[root@mysql ~]# pkill mysqld
[root@mysql ~]# sh accessmysql.sh
mysql is stop
Starting MySQL. [ OK ]
[root@mysql ~]# sh accessmysql.sh
mysql is starting
监控MYSQL数据库是否异常的多种方法:
1、根据端口监控本地数据库
2、根据进程进行监控本地数据库
3、通过客户端命令及账号连接MYSQL,然后根据返回内容进行判断是否正常
4、通过PHP、JAVA程序URL方式进行监控(此种方式最佳,生产环境常用)
5、也可以通过以上方法综合利用
- JavaWeb学习之环境搭建
- Java初学之华容道游戏
- java基础学习之 消息对话款
- 暑假集训之专题----拓扑排序题解
- 李沐:从头开始介绍机器学习,眼花缭乱的机器学习应用
- hdu------2488Tornado(几何)
- nyoj------203三国志
- nyoj 115------城市平乱( dijkstra // bellman )
- hdu----(1847)Good Luck in CET-4 Everybody!(简单巴什博奕)
- hdu----(3118)Arbiter(构造二分图)
- hdu----(1528)Card Game Cheater(最大匹配/贪心)
- hdu-----(1507)Uncle Tom's Inherited Land*(二分匹配)
- hdu----149850 years, 50 colors(最小覆盖点)
- hdu------1281 棋盘游戏(最小覆盖点)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- C语言最大难点揭秘:编程的祸根!
- 【漏洞修复】MongoDB未授权访问漏洞复现和修复
- 在 Istio 中实现 Redis 集群的数据分片、读写分离和流量镜像
- 实现Android 滑动退出Activity的功能
- Android开发中播放声音的两种方法分析
- Android UI设计与开发之实现应用程序只启动一次引导界面
- Android编程实现两点触控功能示例
- Android RecycleView添加head配置封装的实例
- Android编程实现捕获程序异常退出时的错误log信息功能详解
- Android开发之Socket通信传输简单示例
- Android自定义对话框Dialog的简单实现
- Android编程实现Toast只显示最后一条的方法
- Android 照相机的实例应用
- Android 逐帧动画创建实例详解
- 腾讯云 Severless 项目开发和灰度发布实践之路