Check e restart di Mosquitto e Zigbee2Mqtt via crontab
Gli script di controllo unitamente a crontab forniscono un modo semplice di check e restart di un servizio fondamentale crushato per qualunque motivo.
Di seguito andremo a vedere lo script realizzato per il check dello stato ed eventuale riavvo di Mosquitto Mqtt.
Creiamo lo scritp con il comando nano mosquittoRestart.sh
Incolliamo i seguenti comandi.
#!/bin/bash MosquittoState=`sudo service mosquitto.sh status` if [[ $MosquittoState == *"active (running)"* ]] then echo 'Mosquitto is running. Nothing to do.' elif [[ $MosquittoState == *"inactive (dead)"* ]] then echo 'Mosquitto is not running. Restarting Mosquitto...' sudo service mosquitto.sh restart echo 'Mosquitto restarted.' fi
è possibile utilizzare anche il comando systemctl. Ad esempio per il servizio zigbee2mqtt si può scrivere sudo systemctl restart zigbee2mqtt.service
Salviamo il file e cambiamogli i permessi con chmod 777 mosquittoRestart.sh
Apriamo il nostro contrab con il comando crontab -e
e aggiungiamo sull’ultimo rigo * * * * * sudo /home/pi/mosquittoRestart.sh
Da questo momento in poi lo status di Mosquitto verrà testato ogni minuto e se trovato down il servizio verrà restartato.
Naturalmente è possibile stabili anche periodi di tempo meno impegnativi. Una buona guida per la configurazione di crontab può essere reperita qui.