当Apache和MySQL宕机时重新启动它们

当Apache和MySQL宕机时重新启动它们,mysql,linux,bash,apache,Mysql,Linux,Bash,Apache,我如何编写bash脚本,以便在Apache服务器或MySQL出现故障时自动重启 现在,无论何时,我都必须手动执行这些命令: sudo service apache2 restart sudo /etc/init.d/mysql restart 必须检查我的网站并重新启动服务器,这很烦人,如果这两台服务器都在运行,是否有bash脚本可以每5分钟检查一次 #!/bin/bash PATH=/usr/sbin:/usr/bin:/sbin:/bin if [[ ! "$(/usr/sbin

我如何编写bash脚本,以便在Apache服务器或MySQL出现故障时自动重启

现在,无论何时,我都必须手动执行这些命令:

sudo service apache2 restart
sudo /etc/init.d/mysql restart
必须检查我的网站并重新启动服务器,这很烦人,如果这两台服务器都在运行,是否有bash脚本可以每5分钟检查一次

#!/bin/bash
PATH=/usr/sbin:/usr/bin:/sbin:/bin
if [[ ! "$(/usr/sbin/service mysql status)" =~ "active (running)" ]]
then
    echo "MySQL restarted" | mail -s "yourwebsite server mysql restarted" yourmail@gmail.com
    sudo service mysql start
fi

if [[ ! "$(/usr/sbin/service apache2 status)" =~ "active (running)" ]]
then
    echo "Apache restarted" | mail -s "yourwebsite server Apache restarted" yourmail@gmail.com
    sudo service apache2 start
fi
将上面的bash另存为mysqlfix.sh

给予适当的许可

chmod +x mysqlfix.sh
添加cronjob

crontab-e

*/1 * * * * /root/mysqlfix.sh

克朗。如果您的测试失败了,它们就启动了,并且您为服务创建了跟踪pid并重新启动的包装器,会发生什么?如果需要示例,请参阅mysqld_safe.sh。或者,
pacemaker
/
corosync
/
heartbeat
!(可能是杀伤力过大)我想我会想弄清楚它们为什么会崩溃,因为这基本上不应该发生。你应该在日志看不到有什么有趣的地方时仔细检查一下。这些都是非常强大的服务,应该能够运行数月或数年而不会出现问题<代码>apache2(与
httpd
相反)和命令中的显式
/etc/init.d
表明这是一个Debian或Ubuntu系统,对吗?我同意Michael的观点-你不应该重新启动它-你正在设置数据库的损坏。你们可以在紧急情况下(几天内)寻找upstart或systemd来处理崩溃时的重启,但再一次,我真的建议不要这样做。Apache真的不应该崩溃,mysql也不应该崩溃。还有一个更大的问题。