首页 >>  正文

编写一个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":"945649a3e7d272d87","img_data":[{"flag":2,"img":[{"desc":"","height":"548","title":"","url":"https://p0.ssl.img.360kuai.com/t015e8a894ec2788380.jpg","width":"600"},{"desc":"","height":"146","title":"","url":"https://p0.ssl.img.360kuai.com/t01ec7ca115c9a4afa0.jpg","width":"555"},{"desc":"","height":"160","title":"","url":"https://p0.ssl.img.360kuai.com/t011908cc1a615a5ca6.jpg","width":"485"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1686726877000,"pure":"","rawurl":"http://zm.news.so.com/752d7cb7aab7229beaf66081ea3678c8","redirect":0,"rptid":"69ad91e678d39c62","rss_ext":[],"s":"t","src":"什么值得买","tag":[{"clk":"ktechnology_1:linux","k":"linux","u":""},{"clk":"ktechnology_1:mysql","k":"mysql","u":""}],"title":"非凡闲扯淡 篇三十七:借助shell脚本,解决MySQL服务自动停止的问题

许龙典1644编写一个shell脚本,完成以下功能,请高手进来! -
弓固和19430216749 ______ #!/bin/sh # vim: set sw=4 ts=4 et: ver="0.1" help() { cat

许龙典1644linux下如何编写shell脚本 - 2012 -
弓固和19430216749 ______ 我对shell脚本的认识,除了执行过同事写的shell 脚本外,其他一无所知,为了让自己强大,我决定自己研究shell脚本,也许在你看来很简答,没必要说这么多废话,但是我希望在我的技术blog里记录下来每次的学习的动机,与思想过程,并且我...

许龙典1644编写一个shell脚本,添加100个新用户 -
弓固和19430216749 ______ for i in {1..100}; do aa=`printf "useradd test%03d\n" $i`;$aa; done; 会按照如下命令创建用户 useradd test001 useradd test002 useradd test003 useradd test004 useradd test005 useradd test006 useradd test007 useradd test008 useradd test009 useradd test010

许龙典1644怎样编写Linux shell script -
弓固和19430216749 ______ 1.How to write shell script ? a.首先用任何的编译器(vi,vim,kwrite,....)编写一个shell script; b.然后按照下面的方法给你编译的shell script添加可执行属性; chmod 添加(删除)属性 文件名称 例如: chmod +x your_script_name 或者 chmod ...

许龙典1644如何写一个linux 的shell脚本? -
弓固和19430216749 ______ 简单的说,你把你在终端输入的命令放在一个文件里,这个文件就成了shell脚本 比如你编辑一个文件叫 helloworld.sh 内容是 echo "Hello world!" 你把helloword.sh变成可执行的,就是在终端输入 chmod +x helloworld.sh 然后运行./helloworld.sh 你就成功滴写好了一个shell脚本

许龙典1644编写一个shell脚本,脚本名为shell,执行该脚本的功能是:判断第一个位置参数是否是 -
弓固和19430216749 ______ #!/bin/bash (( $# > 0 )) || exit [[ ! $1 =~ ^[/]*root$ ]] && echo "第一个位置参数不是/root目录" && exit ls -a /$1 > 13out shift while (( $# > 0 )) do [ -f $1 ] && echo "File "$1":" >> 13out && cat $1 >> 13out && shift && continue [ -d $1 ] && echo "this dir" && shift && continue echo "该文件($1)既不是普通文件也不是目录文件" shift done

许龙典1644如何运行shell脚本 -
弓固和19430216749 ______ 编写好的shell脚本(如:test),可以采取两种方式进行运行:一、 $ sh test 一般不采用这种调用方式,尤其不采用“sh<test”的调用方式,因为这种方式将禁止shell读取标准输入.也可以采用 $ ksh test 这种方式要求shell具有“可读”的访问权...

许龙典1644求助写一个 简单的 Linux Shell 脚本 -
弓固和19430216749 ______ 1创建脚本 vim 1.sh2编辑内容#!/bin/bash a=hello echo "$a"3执行脚本 bash 1.sh 定义变量a=hello 输出变量$a,就是hello

许龙典1644如何编写一个root权限的shell脚本 -
弓固和19430216749 ______ 在数据库里面加个权限字段 权限对应其用户 密码 和 id(如果有id的话)当用户提交表单时 $sql=select id from 数据表名 where 用户字段=提交的用户名 and 密码字段=提交的密码 if(mysql_num_rows($sql))==1)意思是输入正确 $row=mysql_fetch_array($sql) if($row[0]==数据库里面权限字段值){ return true; }else{ return false; exit(); } 这里就可以写权限内容了 大概就是这么个思路 说错了还请指正哦

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