首页 >>  正文

如何运行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服务自动停止的问题

贲娟诗1455shell脚本的执行都有哪些方法,有何不同
瞿要促13917643753 ______ 1、直接用shell命令来执行你的脚本,如:sh scriptfilename;ksh scriptfilename 这种方法可以在命令后面通过不同的选项来进行调试 2、给脚本授予可执行权限: chmod +x scriptfilename ,在脚本所在目录下输入 ./scriptfilename

贲娟诗1455如何调试shell脚本?各种方法都说说. -
瞿要促13917643753 ______ 方法一:sh -x script.sh-x选项会将运行到的脚本内容显示在屏幕上,前面有个+号.这样就知道哪句被执行到了.对调试很有帮助.方法二:在脚本中使用debug开关 适用于只调试部分脚本的情况.set -x......(要调试的代码段) set +x 然后sh script.sh运行脚本 方法三:在脚本中添加打印 比如搞个log输出函数,专门用于打印调试相关信息._log() { if [ "$_DEBUG" = "true" ]; then echo "调试信息" fi } 只要在外面控制$_DEBUG开关即可.

贲娟诗1455如何调试Shell脚本 -
瞿要促13917643753 ______ 1) 检查语法错误: 一般来说我们可以通过修改shell脚本的源代码,令其输出相关的调试信息来定位错误,那有没有不修改源代码来调试shell脚本的方法呢?答案就是使用shell的执行选,下面是一些常用选项的用法: -n 只读取shell脚本,但不实...

贲娟诗1455SHELL脚本运行的几种方法以及区别 -
瞿要促13917643753 ______ 给脚本加上执行权限chmod u+x a.sh, 而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh,如果如果脚本所在目录在PATH环境变量之中, 则直接用a.sh即可(这和运行我们自己编写的程序是一个道理)sh/bash ./a.sh 这种情况不...

贲娟诗1455如何能让shell脚本每天晚上自动运行 -
瞿要促13917643753 ______ 1、用计划任务2、例如crontab -e编辑每天凌晨3点执行0 3 * * * /opt/a.sh;3、crontab -l检查.

贲娟诗1455如何在java中执行shell脚本 -
瞿要促13917643753 ______ 参考如下方式可以执行shell脚本: // 用法:Runtime.getRuntime().exec("命令"); String shpath="/test/test.sh"; //程序路径 Process process =null; String command1 = “chmod 777 ” + shpath; try { Runtime.getRuntime().exec(command1 ...

贲娟诗1455如何在windows下使用linux的shell脚本 -
瞿要促13917643753 ______ 你好:首先,在你编辑shell脚本的时候调用系统内的shell,比如bash或csh等;第二,在编辑完成自己的脚本后,文件名可以以sh为结尾,如xx.sh,但是不是必须的;第三,给脚本文件赋予可执行的权限,可执行的前提是要有可读的权限;最后,在命令模式下直接用./xx.sh即可;

贲娟诗1455Vi编辑的shell脚本如何执行啊? -
瞿要促13917643753 ______ 我觉得你的要求有点奇怪,好像是为了获取某些变量以便进一步处理,那你为什么不直接在shell脚本中处理呢?以下是我的处理办法: 1. 进入指定目录问题 这涉及到进程生存周期的问题,实际上你在shell脚本写cd /data/wcd/www/时,在执行的...

贲娟诗1455linux shell脚本如何启动一个java进程 -
瞿要促13917643753 ______ 在shell里面直接调用即可. 1,编译一个java文件为a.class. 2,编写shell脚本b .sh .#!/bin/bash java a.class 3,放在同一目录下运行shell即可.如果要后台运行,bash b.sh&

贲娟诗1455怎样自动执行shell脚本 -
瞿要促13917643753 ______ 将shell脚本放到cronjob中就可以自动定时运行了

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