Retire SR-IOV, NIC tuning and watchdog scripts to unused/

Checked against the live host. None of these are in service:

- sriov-enp4s0.service and set-ixgbe-vfmacs-enp4s0.sh target enp4s0f1np1,
  which no longer exists; sriov_numvfs is 0 on every port and the unit was
  never installed.
- nic-performance-tweaks.service was never installed either, though its
  interfaces do still exist, so it would work if reinstated.
- vm-watchdog.sh watches VMID 2801 "pfsense", which no longer exists.
- lxc-watchdog.sh still carries the upstream example targets: CT 100 and
  CT 101 on 192.168.31.0/24, a subnet that is not in use.

Neither watchdog is scheduled; there is no root crontab.

The watchdog config moves to unused/conf/ alongside them, so the scripts
resolve it unchanged from their new location.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
ergosteur
2026-08-06 16:12:52 +00:00
co-authored by Claude Opus 5
parent 23196eafed
commit 672d978feb
6 changed files with 0 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
#!/bin/bash
#
# WatchDog script for Proxmox VMs
# v2.0
#
# Install using `crontab -e` like this: * * * * * /root/watchdog.sh
#
# Configurable Settings
declare -A VMs=(
["pfsense"]="2801 10.20.28.1"
)
logFile="/var/log/proxmox_watchdog.log"
# Alert address comes from conf/watchdog.conf (see conf/watchdog.conf.example),
# resolved relative to this script so it works from a checkout or /opt/ergosteur.
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
CONFIG=${WATCHDOG_CONFIG:-$SCRIPT_DIR/conf/watchdog.conf}
email=""
if [[ -r "$CONFIG" ]]; then
# shellcheck source=/dev/null
. "$CONFIG"
email="${WATCHDOG_EMAIL:-}"
fi
# Log function
log () {
output="[WatchDog] $(date '+%Y-%m-%d %H:%M:%S') $1"
echo "$output" >> "$logFile"
logger "$output"
}
# Send email alert
sendAlert () {
subject="[Proxmox WatchDog] $1"
body="$2"
if [[ -z "$email" ]]; then
log "No WATCHDOG_EMAIL configured in $CONFIG; skipping alert: $subject"
return
fi
echo -e "$body" | mail -s "$subject" "$email"
}
# Check VM function
checkVM () {
local vmName=$1
local vmId=$2
local vmIp=$3
if /usr/bin/ping -c 1 "$vmIp" &> /dev/null; then
local vmUptime
vmUptime=$(/usr/sbin/qm status "$vmId" -verbose | grep uptime | cut -f2 -d' ')
log "$vmName ($vmIp) is alive. Uptime: $vmUptime seconds."
else
log "$vmName ($vmIp) is down. Attempting restart..."
if /usr/sbin/qm stop "$vmId" && /usr/sbin/qm start "$vmId"; then
log "$vmName restarted successfully."
sendAlert "$vmName Restarted" "The VM '$vmName' was restarted by the watchdog script."
else
log "Failed to restart $vmName. Manual intervention required."
sendAlert "$vmName Restart Failed" "The VM '$vmName' failed to restart. Please check Proxmox immediately."
fi
fi
}
# Main Logic
for vmName in "${!VMs[@]}"; do
read -r vmId vmIp <<< "${VMs[$vmName]}"
checkVM "$vmName" "$vmId" "$vmIp" &
done
# Wait for all background checks to complete
wait