Saya memiliki skrip ini, saya menggunakannya untuk mengatur pekerjaan CRON untuk menjalankan skrip ini, sehingga dapat memeriksa apakah layanan MySQL berjalan; jika tidak maka restart layanan MySQL:
#!/bin/bash
service mysql status| grep 'mysql start/running' > /dev/null 2>&1
if [ $? != 0 ]
then
sudo service mysql restart
fi
Saya memiliki pekerjaan setup cron sebagai.
sudo crontab -e
dan kemudian menambahkan,
*/1 * * * * /home/ubuntu/mysql-check.sh
Masalahnya adalah itu me-restart MySQL pada setiap eksekusi cron .. bahkan jika server menjalankannya me-restart layanan MySQL apa koreksi dalam skrip untuk melakukan itu.
[ ... ]
atau test <TEST>
di Bash. Itu sintaks yang sudah usang . Gunakan [[ ... ]]
sebagai gantinya. Hanya menggunakan [ ... ]
dan / atau test <TEST>
saat [[ ... ]]
ini tidak tersedia.
if ! (service mysql status | grep 'mysql start/running' &>/dev/null); then sudo service mysql restart; fi
Apa yang dilakukannya, apakah memulai sebuah subkulit, di mana service mysql status | grep 'mysql start/running' &> /dev/null
dijalankan, status kembalinya (keluar) dari subkulit tersebut kemudian diteruskan ke pernyataan-if, yang kemudian memeriksa untuk melihat apakah itu bukan nol, dan jika bukan nol maka ia menjalankan then
blok.