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/null
uruchamia 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 then
blok.