首页 >>  正文

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

童凡舍4912linux shell脚本如何启动一个java进程 -
皮园诚18493228237 ______ 在shell里面直接调用即可. 1,编译一个java文件为a.class. 2,编写shell脚本b .sh .#!/bin/bash java a.class 3,放在同一目录下运行shell即可.如果要后台运行,bash b.sh&

童凡舍4912java怎么调用shell脚本 -
皮园诚18493228237 ______ String cmdstring = "chmod a+x test.sh"; Process proc = Runtime.getRuntime().exec(cmdstring); proc.waitFor(); //阻塞,直到上述命令执行完 cmdstring = "bash test.sh"; //这里也可以是ksh等 proc = Runtime.getRuntime().exec(cmdstring)...

童凡舍4912什么是Shell,Shell命令的两种执行方式 -
皮园诚18493228237 ______ Shell有两种执行命令的方式: 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条. 批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,...

童凡舍4912请教Linux shell下如何同时执行多个脚本 -
皮园诚18493228237 ______ Linux下可以有两种方式执行Shell脚本:1、用shell程序执行脚本:根据shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等(一般来说第一行#!/bin/bash里面指明了shell类型的,比如#!/bin/bash指明是bash,#!/bin/sh则是sh);然后输入命令(其中bash为shell的名称,myshell.sh则为要执行的代码):bash myshell.sh2、直接执行脚本:不过首先的加上可执行权限(也许要root权限,4情况而定),执行:

童凡舍4912shell脚本在那运行 -
皮园诚18493228237 ______ 进入shell命令行 运行啊 你的是linux的 直接用 . 脚本名 回车即可!

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

童凡舍4912shell编写脚本时 如何让程序在后台运行 -
皮园诚18493228237 ______ 要让程序在后台运行,加上 &就可以了.如何让程序每隔5分钟自动执行一次某一指令,采用crontab命令就可以了.

童凡舍4912shell脚本运行不了 -
皮园诚18493228237 ______ 脚本执行是成功的啊.你在脚本最后加上 echo $JAVA_HOME echo $PATH echo $CLASSPATH 要判断脚本是否执行成功是输入:echo $? 返回0则成功 还有就是,脚本相当于一个子shell.在里面定义变量相当于局部变量,不会对系统本身的系统变量做出改变.所以你在命令行中看echo $JAVA_HOME 不会改变滴!!还有如果你想让脚本定义的系统变量对系统产生影响的话可以用命令 source set_java_env.sh

童凡舍4912如何让一段shell脚本默认在后台执行 -
皮园诚18493228237 ______ crontab -e#然后在新开的界面写如下内容*/4 * * * * ./filename#然后按esc,按shift + 冒号,然后输入wq,回车#这就新建了一个定时任务,后台会每隔4分钟执行一次

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