Una corretta amministrazione di un server consiste nel verificare e nel caso restartare i servizi che devono girare sul nostro server Linux.
Inanzitutto occorre creare uno script, nel mio caso è in Bash
#!/bin/bash
# Nome del servizio Zabbix Server
SERVICE="zabbix-server"
# Controlla se Zabbix Server è in esecuzione
if ! systemctl is-active --quiet $SERVICE; then
echo "$SERVICE non è in esecuzione. Tentativo di avvio..."
systemctl start $SERVICE
sleep 5 # Attendere qualche secondo per verificare se riparte
if systemctl is-active --quiet $SERVICE; then
echo "$SERVICE avviato con successo."
else
echo "Avvio fallito. Terminazione forzata e riavvio..."
pkill -9 zabbix_server
sleep 2
systemctl start $SERVICE
if systemctl is-active --quiet $SERVICE; then
echo "$SERVICE avviato con successo dopo il riavvio forzato."
else
echo "Errore: impossibile avviare $SERVICE."
fi
fi
else
echo "$SERVICE è già in esecuzione. Nessuna azione necessaria."
fi
oppure
#!/bin/bash
service zabbix-server status | grep 'active (running)' > /dev/null 2>&1
if [ $? != 0 ]
then
service zabbix-server restart > /dev/null
fi
oppure
#!/bin/bash
/etc/init.d/zabbix-agent status | grep running > /dev/null
if [ $? != 0 ]
then
/etc/init.d/zabbix-agent restart > /dev/null
fi
Salvare lo script con estensione .sh e dare i permessi di scrittura:
chmod +x script.sh
A questo punto è necessario inserirlo nel crontab, impostando quando lo vogliamo eseguire.
Per vedere gli attuali crontab:
crontab -l
Per editare i crontab:
crontab -e
premere "i" per entrare nella modalità d'inserimento
La figura sotto spiega il criterio del Crontab
di seguito alcuni esempi: 0 */1 * * * /root/script.sh Lo script viene eseguito ogni ora 0 8 1 1 * /root/script.sh Lo script viene eseguito alle ore 8.00 ogni primo dell'anno * * * * * sleep 30; /root/script.sh Lo script viene eseguito ogni 30 sec. Per salvare e uscire ESC --> : --> wq