我在 Ubuntu 18.04 LTS 上安装的 LAMP 运行良好。但有时当 MySQL 关闭时,它不会自动重新启动。所以我在 google 上搜索并找到下面的 bash 脚本,该脚本检查 mysql 是否正在运行,如果未运行,它将启动该服务。问题是当 mysql 关闭时我收到了电子邮件,但 mysql 并未启动。此外,运行 cron 作业的用户具有 sudo 访问权限。我的 cronjob 是:*/5 * * * * sudo bash check_mysql.sh > /dev/null 2>&1
我使用的 bash 脚本:
#!/bin/bash
email='[email protected]'
subject='mysql process down and up'
MYSQL_START='sudo /etc/init.d/mysql start'
MYSQL='mysqld'
PGREP='/usr/bin/pgrep'
#check pid
$PGREP $MYSQL
if [ $? -ne 0 ]; then
$MYSQL_START | mail -s "$subject" $email <<< 'Mysql was down and successfully started'
fi
脚本有问题还是 cronjob 有问题?
答案1
在 Google 上进行更多挖掘之后,我将命令从:
sudo /etc/init.d/mysql start
到
sudo service mysql start
现在可以正常工作了。