首页 >>  正文

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

钟炭平3612shell脚本的执行都有哪些方法,有何不同
贡桂泉13157998879 ______ 1、直接用shell命令来执行你的脚本,如:sh scriptfilename;ksh scriptfilename 这种方法可以在命令后面通过不同的选项来进行调试 2、给脚本授予可执行权限: chmod +x scriptfilename ,在脚本所在目录下输入 ./scriptfilename

钟炭平3612执行shell脚本的方式有哪些 -
贡桂泉13157998879 ______ sh youshell 或者给权限 chmod a+x youshell./youshell

钟炭平3612linux shell脚本如何启动一个java进程 -
贡桂泉13157998879 ______ 在shell里面直接调用即可. 1,编译一个java文件为a.class. 2,编写shell脚本b .sh .#!/bin/bash java a.class 3,放在同一目录下运行shell即可.如果要后台运行,bash b.sh&

钟炭平3612shell脚本在那运行 -
贡桂泉13157998879 ______ 进入shell命令行 运行啊 你的是linux的 直接用 . 脚本名 回车即可!

钟炭平3612如何执行一个shell程序 -
贡桂泉13157998879 ______ 执行一个shell程序的一种方法是:sh shell_program arguments 这种方式激活一个子shell并且指定这个子shell为执行这个程序的命令解释器.这个程序文件不是必须为可执行的.也可以在shell程序的第一行前加入#!/usr/bin/ shell_name来指定命令行解释器.因此,如果你当前正在Bourne shell下工作,但是想要执行一个C shell的脚本,你的C shell程序的第一行应该为:此时shell脚本的许可权限必须被设置为可读和可执行.为了让shell可以找到程序,可以选择输入shell脚本的完全路径名,或者将这个脚本的路径放在于PATH环境变量指定的路径列表中.

钟炭平3612如何能让shell脚本每天晚上自动运行 -
贡桂泉13157998879 ______ 1、用计划任务2、例如crontab -e编辑每天凌晨3点执行0 3 * * * /opt/a.sh;3、crontab -l检查.

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

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

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

钟炭平3612shell 脚本学习之 在mac下怎么执行shell脚本 -
贡桂泉13157998879 ______ mac终端下运行shell脚本1、写好自己的 脚本,比如aa.sh2、打开终端 执行,方法一: 输入命令 ./aa.sh

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