diff --git a/README.md b/README.md index 70a879d..53c366c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ -# pmpw -Poor Man's Proxmox Watchdog +# Poor Man's Proxmox Watchdog + +A bash script working as a helthcheck for a VM. + +Takes in a single argument in form of VMID. + +## Requirements +Copy/clone code into your directory + +Add exec permission on watchdog.sh + +`chmod u+x /path/to/watchdog.sh` + +## Examples + +`./watchdog.sh ` + +`./watchdog.sh 100` + diff --git a/watchdog.sh b/watchdog.sh new file mode 100644 index 0000000..374853e --- /dev/null +++ b/watchdog.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# check if $1 exists + +if [[ -z $1 ]] +then + echo "Pass a VMID." + exit 1 +fi + +#------------------------------------------------ +# CONSTS +QMLIST="$(qm list | tail -n +2)" +VMID=$1 + +#------------------------------------------------ +# CODE + +# check if container exists +if ! echo "$QMLIST" | grep -q " $VMID " +then + printf "\nNo such VM!\n" + exit 1 +fi + +VMSTATE=$(echo "$QMLIST" | grep " $VMID " | awk '{print $3}') + +case $VMSTATE in + + "running") + printf "VM %s" "$VMID" "allready running." + echo "" + exit 0 + ;; + + "stopped") + printf "Starting VM %s" "$VMID""." + echo "" # To lazy to fix output spacing + qm start "$VMID" + exit 0 + + ;; + + *) + printf "\nUnknown state\n" + exit 1 + ;; + +esac + +# If you have gotify or something simmilar you can paste it under "running") +# and under "stopped") for notifications. \ No newline at end of file