Kihagyás

Ping check

Fájlok létrehozása

1. Script

sudo nano /usr/local/bin/ping-check.sh

Tartalom:

#!/bin/bash
GATEWAY=$(ip route | awk '/default/ {print $3; exit}')
FAIL_FILE=/tmp/ping-fail-count

if ping -c 1 -W 3 "$GATEWAY" > /dev/null 2>&1; then
    rm -f "$FAIL_FILE"
else
    COUNT=$(cat "$FAIL_FILE" 2>/dev/null || echo 0)
    COUNT=$((COUNT + 1))
    echo "$COUNT" > "$FAIL_FILE"
    if [ "$COUNT" -ge 2 ]; then
        systemctl poweroff
    fi
fi

2. Service

sudo nano /etc/systemd/system/ping-check.service

Tartalom:

[Unit]
Description=Ping gateway check

[Service]
Type=oneshot
ExecStart=/usr/local/bin/ping-check.sh

3. Timer

sudo nano /etc/systemd/system/ping-check.timer

Tartalom:

[Unit]
Description=Run ping check every minute

[Timer]
OnBootSec=2min
OnUnitActiveSec=1min

[Install]
WantedBy=timers.target

Telepítés / setup

sudo chmod +x /usr/local/bin/ping-check.sh
sudo systemctl daemon-reload
sudo systemctl enable --now ping-check.timer

Start / stop

Művelet Parancs
Leállítás sudo systemctl stop ping-check.timer
Letiltás (boot után sem indul) sudo systemctl disable ping-check.timer
Indítás sudo systemctl start ping-check.timer
Engedélyezés + indítás sudo systemctl enable --now ping-check.timer

Ellenőrzés

Mit néz Parancs
Timer státusz systemctl status ping-check.timer
Következő futás systemctl list-timers ping-check.timer
Utolsó futások logja journalctl -u ping-check.service --no-pager -n 20
Fail számláló értéke cat /tmp/ping-fail-count
Számláló nullázása rm -f /tmp/ping-fail-count
Gateway manuális ping ping -c 1 -W 3 $(ip route \| awk '/default/ {print $3; exit}')