У мене є цей скрипт, я використовую його для установки завдання 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
блок.