本文概述
Shell脚本, 如果宕机/崩溃, 则重新启动服务
由于各种原因, 程序崩溃/崩溃很常见, 你可以调查并解决问题, 但这可能需要一些时间。
但是, 你可以立即采取行动以减少停机时间以提高可用性, 这是在停机后自动重启过程。
让我们通过高速公路来完成此任务-Shell脚本
你可以使用以下Shell脚本来运行crontab, 它将每15分钟检查一次服务(你可以调整间隔时间), 如果发现未运行, 则将启动。听起来不错?
在本文中, 我将给出两个如果服务关闭启动服务的示例。
如果你使用的是CentOS / RHEL 7+, 那么你也可以查看此文章以解释如何使用systemd重新启动。
如果关闭, 则自动重启MySQL, PHP-FPM, Nginx
几周前, 我使用EasyEngine将Geek Flare移至DigitalOcean, 而MariaDB在一周内崩溃了两次。
你会看到它在清晨坠毁, 并坠落了3个多小时, 这不是很好。这是我的博客, 因此不会对$$$产生任何影响, 但我仍然为此感到难过。
好, 现在放映时间…
- 使用vi编辑器在所需位置创建文件(在此演示中, 我将其放在/opt/startifdown.sh下)
- 将以下脚本复制并粘贴到文件中并保存
#!/bin/bash
#Scripts to start services if not running
ps -ef | grep nginx |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/nginx start > /dev/null
fi
ps -ef | grep php5-fpm |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/php5-fpm start > /dev/null
fi
ps -ef | grep mysql |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/mysql start > /dev/null
fi
- 将文件权限更改为可执行
chmod 755 startifdown.sh
手动测试以确保脚本可执行。
你可以停止该服务, 并使用脚本检查其是否正在启动。满意后, 可以将其放在cron中, 以每15分钟运行一次。
*/1 * * * * /opt/startifdown.sh
如果你在更改间隔时间方面需要一些启发, 请参阅我的crontab文章。
现在, 这个小脚本将在崩溃时负责启动服务, 而我不会有3个小时的停机时间。
好多了!
如果关闭, 则自动重新启动WebSphere DMGR, Nodeagent, JVM
使用以下脚本创建文件–我将其命名为startwasifdown.sh
#!/bin/bash
#Scripts to start services if not running
#Specify DMGR Path Here
DMGR=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01
#Specify Profile Path Here
Profile=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
ps -ef | grep dmgr |grep -v grep > /dev/null
if [ $? != 0 ]
then
$DMGR/bin/startManager.sh > /dev/null
fi
ps -ef | grep nodeagent |grep -v grep > /dev/null
if [ $? != 0 ]
then
$Profile/bin/startNode.sh > /dev/null
fi
ps -ef | grep server1 |grep -v grep > /dev/null
if [ $? != 0 ]
then
$Profile/bin/startServer.sh server1 > /dev/null
fi
注意:更改路径以适合你的环境, 并为多个JVM添加更多行。
- 将文件权限更改为可执行
chmod 755 startwasifdown.sh
手动测试它, 一旦满意, 就可以将其放在cron中, 每隔15分钟或适合你的时间运行一次。
*/1 * * * * /opt/ startwasifdown.sh
这只是你自动执行操作的准则。
喜欢自动化吗?了解有关bash shell脚本的信息。
评论前必须登录!
注册