chatdesk-ui/postgres_15.8.1.044/ansible/files/systemd-networkd/systemd-networkd-check-and-...

21 lines
879 B
Bash

#!/bin/bash
# Check for occurrences of an NDisc log error
# NOTE: --since timer flag must match the cadence of systemd timer unit. Risk of repeat matches and restart loop
journalctl --no-pager --unit systemd-networkd --since "1 minutes ago" --grep "Could not set NDisc route" >/dev/null
NDISC_ERROR=$?
if systemctl is-active --quiet systemd-networkd.service && [ "${NDISC_ERROR}" == 0 ]; then
echo "$(date) systemd-network running but NDisc routes are broken. Restarting systemd.networkd.service"
/usr/bin/systemctl restart systemd-networkd.service
exit # no need to check further
fi
# check for routes
ROUTES=$(ip -6 route list)
if ! echo "${ROUTES}" | grep default >/dev/null || ! echo "${ROUTES}" | grep "::1 dev lo">/dev/null; then
echo "IPv6 routing table messed up. Restarting systemd.networkd.service"
/usr/bin/systemctl restart systemd-networkd.service
fi