shell脚本

1、由于自己建了一个网站,mysql服务器经常自动死掉,导致网站上不去,所以,我需要每次都手动重启mysql服务,感觉很不爽。所以决定写一个shell脚本解决这个问题。

要解决这个mysql无规律自动停掉的问题,首先给服务器加个定时执行任务,每分钟去检测一下数据库服务的运行状态,要是down 掉了,就立马启动起来。

第一步,添加定时任务,使用crontab。

crontab -e

初次使用时,会让你选择编辑器,千万不要选nano,完全不知道怎么操作,我选了vim basic。
如果你已经是选了nano,如果想切到vim,可以通过以下操作切换:

方案一:
export EDITOR=vim && crontab -e
通过此命令便可使用vim编辑器打开

方案二:

select-editor

然后输入数字,选择想要的编辑器

打开crontab后,添加一行*/1 * * * * /usr/local/runmysql.sh
具体crontab语法:

*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

一个标准的 crontab 配置需要符合如下:

分 时 日 月 星期 要运行的命令

第二步,编写shell执行文件,代码如下:

#!/bin/bash
pgrep -x mysqld >& /dev/null
if [ $? -ne 0 ]
then
echo “At time: `date` :MySQL is stop .”>> /var/log/test
/etc/init.d/mysql start
else
echo “MySQL server is running .”
fi

这里要注意,不能用

service mysqld/mysql start

命令来启动,会导致mysql启动不了,应使用绝对路径,

/etc/init.d/mysql start

来启动。

另外,也可以不写入日志。删掉>> /var/log/test即可

可以自己先手动执行脚本,看看能不能执行成功。
cd到runmysql.sh目录 /usr/local/
执行./runmysql.sh #执行脚本,提示Permission denied
chmod 755 runmysql.sh
chmod +x ./runmysql.sh #使脚本具有执行权限
./runmysql.sh #执行脚本
提示mysql is running
service mysqld stop把mysql停掉。
执行./runmysql.sh,提示mysql已启动
完美解决问题

你可能感兴趣的:(shell脚本)