मेरे पास यह स्क्रिप्ट है, मैं इस स्क्रिप्ट को निष्पादित करने के लिए CRON की स्थापना के लिए इसका उपयोग कर रहा हूं, इसलिए यह जांच सकता है कि क्या MySQL सेवा चल रही है; यदि नहीं, तो यह MySQL सेवा को पुनरारंभ करता है:
#!/bin/bash
service mysql status| grep 'mysql start/running' > /dev/null 2>&1
if [ $? != 0 ]
then
sudo service mysql restart
fi
मेरे पास सेटअप क्रॉन जॉब है।
sudo crontab -e
और फिर जोड़ा गया,
*/1 * * * * /home/ubuntu/mysql-check.sh
समस्या यह है कि यह हर cron कार्य निष्पादन पर MySQL को पुनरारंभ करता है .. भले ही सर्वर इसे चला रहा है MySQL सेवा को पुनरारंभ करें ऐसा करने के लिए स्क्रिप्ट में क्या सुधार है।
[ ... ]
या test <TEST>
बैश में। वे पदावनत वाक्य रचना हैं । [[ ... ]]
इसके बजाय उपयोग करें । तभी इसका उपयोग [ ... ]
और / या 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
भाग जाता है, उक्त सब-रिटेल की वापसी (बाहर निकलने की स्थिति) अगर-स्टेटमेंट में पास हो जाती है, तो यह देखने के लिए जाँच करता है कि क्या यह शून्य है, और अगर यह गैर-शून्य नहीं है, तो यह then
ब्लॉक चलाता है ।