У мене є цей скрипт, я використовую його для установки завдання CRON для виконання цього сценарію, щоб він міг перевірити, чи працює служба MySQL; якщо ні, то перезавантажте службу MySQL:
#!/bin/bash
service mysql status| grep 'mysql start/running' > /dev/null 2>&1
if [ $? != 0 ]
then
sudo service mysql restart
fi
У мене встановлення cron робота як.
sudo crontab -e
а потім додали,
*/1 * * * * /home/ubuntu/mysql-check.sh
Проблема полягає в тому, що він перезапускає MySQL при кожному виконанні завдання cron .. навіть якщо сервер працює, перезавантажте службу MySQL, що є корекцією в сценарії.
[ ... ]або test <TEST>в Bash. Вони застаріли синтаксисом . Використовуйте [[ ... ]]замість цього. Тільки використовувати [ ... ]і / або test <TEST>якщо [[ ... ]]це НЕ є.
if ! (service mysql status | grep 'mysql start/running' &>/dev/null); then sudo service mysql restart; fi що це робить, чи запускає підзарядку, в якій service mysql status | grep 'mysql start/running' &> /dev/nullотримує запуск, стан повернення (виходу) зазначеної підпакеті потім переходить до оператора if, який потім перевіряє, чи є він не нульовим, а якщо він не є нульовим, то він запускає thenблок.