首页 >>  正文

经典shell脚本

来源:baiyundou.net   日期:2024-09-21

几个月前写了《MySQL总是停止服务,原来是腾讯云安全防护组件的“锅”》这篇文章,在这篇文章发布后,虽然MySQL服务自动停止的频率降低了,但实际上并没有从根本上解决这个问题,MySQL服务仍然会以大约每周一次的频率自动停止,于是开始寻找其他方法。

其实最根本的方法肯定是升级服务器配置,提升服务器的带宽,但这也就意味着运营成本的增加,对于非凡博客这种小网站来说,还是寻找其他曲线救国的方案更合适。

看到有网友分享宝塔面板有自动检测MySQL服务状态并自动修复的功能,但我又不喜欢安装各种面板,不过面板的各项功能底层逻辑肯定是通过执行Linux命令完成了,于是就开始考虑通过Linux相关命令实现自动检测MySQL状态的功能,这里要做的有两步:

1.新建Shell脚本,脚本实现的功能是检测MySQL服务状态,如果发现当前运行的程序进程中没有MySQL,那么就自动执行启动MySQL服务的命令,我们可以在/root/目录下新建一个check_mysql.sh的脚本文件,脚本的内容:

#!/bin/bash

pgrep -x mysqld &> /dev/null

if [ $? -ne 0 ];then

/etc/init.d/mysqld start

fi

2.借助计划任务实现脚本自动化执行,主要目的是做到无人值守自动检测:

通过命令 crontab -e进入计划任务的编辑页面,输入任务命令

*/15 * * * * /root/check_mysql.sh

这条命令的意思是每隔15分钟执行一次check_mysql.sh检测脚本。

最终实现的效果是系统每15分钟执行一次check_mysql.sh脚本,如果发现当前运行的程序进程中没有MySQL,那么Shell脚本将会自动执行启动MySQL服务的命令。

从3月份到现在的6月份,至少我每天打开非凡博客的时候都能正常访问,或许在我没有访问的时间里也曾偶尔出现过MySQL服务自动停止,但至少等到我每次发现以后再动手启动了。

","gnid":"9ca1a3c2e84a0a8be","img_data":[{"flag":2,"img":[{"desc":"","height":"868","title":"","url":"https://p0.ssl.img.360kuai.com/t01aa6a16e0f1060dbf.jpg","width":"951"},{"desc":"","height":"292","title":"","url":"https://p0.ssl.img.360kuai.com/t019197746e13586219.jpg","width":"1110"},{"desc":"","height":"320","title":"","url":"https://p0.ssl.img.360kuai.com/t018ef38c666b287fd3.jpg","width":"970"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"cache","pub_time":1686624540000,"pure":"","rawurl":"http://zm.news.so.com/368c4724e800ed4a8c0e4b12df6c2c04","redirect":0,"rptid":"da8b3d5802693814","rss_ext":[],"s":"t","src":"羽度非凡","tag":[{"clk":"ktechnology_1:linux","k":"linux","u":""},{"clk":"ktechnology_1:mysql","k":"mysql","u":""}],"title":"借助shell脚本,解决MySQL服务自动停止的问题

吉溥毅1985求助写一个 简单的 Linux Shell 脚本 -
巩雯武18711297883 ______ 1创建脚本 vim 1.sh2编辑内容#!/bin/bash a=hello echo "$a"3执行脚本 bash 1.sh 定义变量a=hello 输出变量$a,就是hello

吉溥毅1985创建一个script,Linux shell脚本 -
巩雯武18711297883 ______ 和C语言类似,在Shell中用if、then、elif、else、fi这几条命令实现分支控制.这种流程控制语句本质上也是由若干条Shell命令组成的,例如先前讲过的 if [ -f ~/.bashrc ]; then ~/.bashrc fi 其实是三条命令,if [ -f ~/.bashrc ]是第一条,then . ~/.bashrc...

吉溥毅1985编写一个求1到100之和的shell脚本 -
巩雯武18711297883 ______ while 循环版本#! /bin/bash i=1 j=0 while : do j=$((j + i)) ((i == 100 )) && break ((i++)) done echo $j for 循环版本#! /bin/bash j=0 for ((i=1 ; i<=100 ; i++)) do j=$((j + i)) done echo $j

吉溥毅1985Linux Shell脚本 -
巩雯武18711297883 ______ 一般以#!/bin/sh 开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了.Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序.以上只是简单介绍如何开始写shell脚本,如果要写复杂的脚本,还需要深入学习相关知识(如if——fi、case——esac等结构).当然,还需要给脚本加上可执行权限(chmod +x ./file.sh),否则可以用 sh ./file.sh 方式执行脚本(这里的sh是执行脚本所需shell,命令也可以是zsh ./file.sh或其他).

吉溥毅1985求解几道shell脚本语句的功能 -
巩雯武18711297883 ______ 第一个脚本是统计当前路径下的文件总数 第二个脚本是计算1*1 、2*2 ... 99*99、100*100的值 第三个脚本的输出如下:parent_var=hello param=good moring !child_var=world

吉溥毅1985编写一个Linux的shell脚本求加注释 -
巩雯武18711297883 ______ #!/bin/bash#filename:simple-useradd.sh##(1)只使用一个参数,其他情况在退出后打印一条提示信息## 这个要求有点不明确,这是一个根据提示来执行的脚本,正常应该是不用传递参数的.if [ $# -ne 0 ]; then echo "Usage: $0" exit 1 fi##(2)检...

吉溥毅1985linux shell的执行 shell脚本如下 TIMELIMIT=4 read - t $ -
巩雯武18711297883 ______ sh 脚本 # $1 就是你执行的脚本名 ./脚本 # $1 就是脚本后的第一个参数,这里为空.

吉溥毅1985linux shell脚本 批处理 -
巩雯武18711297883 ______ 就是你的这些命令,全部放到一个文件里,随便取名,比方说叫做batch.sh,然后在文件头增加这样一行代码:#!/bin/sh最后,为这个文件加上可执行权限就行了.

吉溥毅1985如何写出高大上的shell脚本 -
巩雯武18711297883 ______ 如何编写一个shell脚本 本文结合大量实例阐述如何编写一个shell脚本. 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言...

吉溥毅1985求一个linux的shell脚本
巩雯武18711297883 ______ #!/bin/bash if [$#==0] then echo "useage:basename 1 or 2" fi if [ $1 == 1 ] then cd /home/user/WEB-INF/ cp web.xml /CofigFile_BK/ cd $PWD/classes cp index /CofigFile_BK/ cd .. cd $PWD/classes cp log4 index /ConfigFile_BK/ echo "...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024