Mam ten skrypt, używam go do konfiguracji zadania CRON w celu wykonania tego skryptu, aby mógł sprawdzić, czy usługa MySQL jest uruchomiona; jeśli nie, to ponownie uruchom usługę MySQL:
#!/bin/bash
service mysql status| grep 'mysql start/running' > /dev/null 2>&1
if [ $? != 0 ]
then
sudo service mysql restart
fi
Mam ustawione zadanie crona jako.
sudo crontab -e
a następnie dodał
*/1 * * * * /home/ubuntu/mysql-check.sh
Problem polega na tym, że restartuje MySQL przy każdym wykonaniu zadania cron. Nawet jeśli serwer jest uruchomiony, zrestartuj usługę MySQL, co jest poprawione w skrypcie, aby to zrobić.
[ ... ]lub test <TEST>w Bash. Są przestarzałą składnią . Użyj [[ ... ]]zamiast tego. Używaj [ ... ]i / lub test <TEST>gdy nie[[ ... ]] jest dostępny.
if ! (service mysql status | grep 'mysql start/running' &>/dev/null); then sudo service mysql restart; fi uruchamia podpowłokę, w której service mysql status | grep 'mysql start/running' &> /dev/nulluruchamia się, status powrotu (wyjścia) wspomnianej podpowłoki jest następnie przekazywany do instrukcji if, która następnie sprawdza, czy jest niezerowa, a jeśli to nie niezerowe wtedy uruchamia thenblok.