Added newest edits.
This commit is contained in:
parent
f3c38664fe
commit
5db23fb0e5
30
README.md
30
README.md
@ -4,6 +4,8 @@ A bash script working as a helthcheck for a VM.
|
|||||||
|
|
||||||
Takes in a single argument in form of VMID.
|
Takes in a single argument in form of VMID.
|
||||||
|
|
||||||
|
`./watchdog.sh <REPLACE_WITH_VMID>`
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
Copy/clone code into your directory
|
Copy/clone code into your directory
|
||||||
|
|
||||||
@ -11,9 +13,33 @@ Add exec permission on watchdog.sh
|
|||||||
|
|
||||||
`chmod u+x /path/to/watchdog.sh`
|
`chmod u+x /path/to/watchdog.sh`
|
||||||
|
|
||||||
## Examples
|
## What's bck_watchdog
|
||||||
|
It's for a pretty specific usecase when you have HA opnsense running in 2 vm's.
|
||||||
|
|
||||||
`./watchdog.sh <REPLACE_WITH_VMID>`
|
If both VM's go down then this would start a third "emergency" VM running OPNSense.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
`./watchdog.sh 100`
|
`./watchdog.sh 100`
|
||||||
|
|
||||||
|
### Crontab
|
||||||
|
|
||||||
|
`
|
||||||
|
*/5 * * * * /bin/bash /path/to/watchdog.sh 100
|
||||||
|
`
|
||||||
|
|
||||||
|
This will check every 5 minutes if a VM us runninig.
|
||||||
|
|
||||||
|
### Crontab with bck_watchdog
|
||||||
|
|
||||||
|
```
|
||||||
|
*/5 * * * * /bin/bash /path/to/watchdog.sh 100
|
||||||
|
|
||||||
|
*/2 * * * * /bin/bash /path/to/watchdog.sh 1003
|
||||||
|
|
||||||
|
*/2 * * * * /bin/bash /path/to/watchdog.sh 1004
|
||||||
|
```
|
||||||
|
|
||||||
|
This will check the HA 2 nodes every 2 minutes and backup one every 5 minutes.
|
||||||
|
|
||||||
|
where 1003 and 1004 are main HA nodes and 100 is the backup.
|
39
bck_watchdog.sh
Normal file
39
bck_watchdog.sh
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ORIGINGW=<VM_ID>
|
||||||
|
GW1=<VM_ID>
|
||||||
|
GW2=<VM_ID>
|
||||||
|
|
||||||
|
# check if $ORIGINGW exists
|
||||||
|
|
||||||
|
if [[ -z $ORIGINGW ]]
|
||||||
|
then
|
||||||
|
echo "Pass a VMID."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#------------------------------------------------
|
||||||
|
# CONSTS
|
||||||
|
VMID="$1"
|
||||||
|
QMSTAT="$(/usr/sbin/qm status $ORIGINGW )" > /dev/null
|
||||||
|
|
||||||
|
#------------------------------------------------
|
||||||
|
# CODE
|
||||||
|
|
||||||
|
# check if container exists
|
||||||
|
if echo $QMSTAT | grep "not exist"
|
||||||
|
then
|
||||||
|
printf "\nNo such VM!\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#VMSTATE=$(echo "$QMSTAT" | awk '{print $2}')
|
||||||
|
#echo $VMSTATE
|
||||||
|
|
||||||
|
if [[ $(/bin/bash /root/./vm_check.sh $GW1) == 1 ]] && [[ $(/bin/bash /root/./vm_check.sh $GW2) == 1 ]]
|
||||||
|
then
|
||||||
|
#/usr/sbin/qm start "$VMID"
|
||||||
|
echo "EMERGENCY START OF ORIGINAL GATEWAY"
|
||||||
|
exit 0
|
||||||
|
fi
|
@ -39,7 +39,7 @@ case $VMSTATE in
|
|||||||
printf "\nStarting VM %s" "$VMID\n"
|
printf "\nStarting VM %s" "$VMID\n"
|
||||||
#echo "" # To lazy to fix output spacing
|
#echo "" # To lazy to fix output spacing
|
||||||
/usr/sbin/qm start "$VMID"
|
/usr/sbin/qm start "$VMID"
|
||||||
exit 0
|
exit 1
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user