8000 GitHub - 4Xsample/Network-watchdog: Es un watchdog que reinicia una maquina si aquesta perd acces a la xarxa
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Es un watchdog que reinicia una maquina si aquesta perd acces a la xarxa

License

Notifications You must be signed in to change notification settings

4Xsample/Network-watchdog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hack the planet Discord Twitter @4Xsample@mastodon.social 4Xsample PayPal

Network Watchdog per a Proxmox

(De fet serveix per la majoria de màquines linux)

Aquest és un petit projecte que he creat per gestionar un problema recurrent que tenim amb un servidor Proxmox. De tant en tant, el servidor perd connexió a la xarxa i, per no haver d'anar físicament a reiniciar la màquina, he escrit aquest script que fa el treball per mi.

Què fa exactament?

El script network_watchdog.sh executa un ping cada 60 segons a una IP específica de la xarxa. Si falla tres vegades seguides (és a dir, si no rep respostes de ping durant tres minuts consecutius), assumeix que hi ha un problema de xarxa. En aquest cas, apaga totes les màquines virtuals de manera segura i reinicia el servidor Proxmox.

#!/bin/bash

# Comptador de pings fallits
failed_pings=0

while true; do
    # Fer ping a l'adreça IP
    ping -c 1 192.168.1.2 > /dev/null
    
    # Comprovar si el ping va fallar
    if [ $? -ne 0 ]; then
        ((failed_pings++))
        echo "Ping fallit. Comptador: $failed_pings"
    else
        failed_pings=0
        echo "Ping exitós."
    fi
    
    # Comprovar si hi ha tres pings fallits consecutius
    if [ $failed_pings -eq 3 ]; then
        echo "Tres pings fallits consecutius. Apagant les màquines virtuals i reiniciant el servidor Proxmox..."
        # Apagar totes les màquines virtuals
        qm list | awk '{print $1}' | xargs -I {} qm shutdown {}
        # Esperar que les màquines es tanquin
        sleep 60
        # Reiniciar el servidor Proxmox
        reboot
    fi
    
    # Esperar 60 segons abans de fer el següent ping
    sleep 60
done

Recorda canviar la IP de la linia 8 a la ip objectiu a la que vulguis apuntar.

Com està configurat?

El script està configurat per ser executat com un servei de systemd. Això vol dir que s'inicia automàticament quan el sistema s'aixeca i continua corrent en segon pla.

Fitxer de servei systemd

He creat un fitxer de servei systemd anomenat network_monitor.service que s'encarrega d'executar el script com a servei. Aquí tens el contingut del fitxer:

[Unit]
Description=Network Monitor Service
After=network.target

[Service]
Type=simple
ExecStart=/root/network_watchdog.sh

[Install]
WantedBy=multi-user.target

Com s'utilitza?

Després de posar el script al seu lloc i crear el fitxer de servei, simplement s'ha d'habilitar i iniciar el servei amb les següents comandes:

sudo systemctl enable network_monitor.service
sudo systemctl start network_monitor.service

Si per alguna raó necessites aturar el servei (per exemple, si s'està reiniciant el servidor i no vols que segueixi reiniciant-se mentre investigues el problema) pots fer servir aquesta comanda:

sudo systemctl stop network_monitor.service

Però si et fa mandra haver de recordar la comanda o haver d'escriure amb pressa mentre el host està a punt de reiniciar-se pots configurar un alias com aquest:

alias prou='systemctl stop network_monitor.service'

i així al loguejar tant en local com per ssh només cal executar sudo prou i ja pararia el servei (o simplement dir prou si ets root però tots sabem que mai es treballa des de root oi que si?)

Disclaimer:

Aquest codi s'ofereix tal com és i no es garanteix que funcioni correctament en totes les condicions. No em faig responsable dels danys que puguin resultar de l'ús d'aquesta informació. Utilitzeu-lo sota la vostra pròpia responsabilitat. Si teniu dubtes pregunteu i respondré al que pugui. Si voleu obrir proposar canvis podeu obrir fork i i voleu seguir-me, al panel del principi d'aquest readme podeu trobar links a les meves xarxes socials, Twitch i PayPal per si també voleu donar suport al meu treball.

About

Es un watchdog que reinicia una maquina si aquesta perd acces a la xarxa

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0