From 8eeeaf7f44be8f4b298c4869df8d9787c2073fe4 Mon Sep 17 00:00:00 2001 From: Lucas Decrock Date: Thu, 11 Jan 2024 11:45:35 +0100 Subject: [PATCH] Add heartbeat --- agent.sh | 2 +- heartbeat.sh | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 heartbeat.sh diff --git a/agent.sh b/agent.sh index cc8aa7e..25ca130 100644 --- a/agent.sh +++ b/agent.sh @@ -4,7 +4,7 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # Agent version -version="1.1.0" +version="1.2.0" # API Token if [ -f /etc/netweak/token.conf ] diff --git a/heartbeat.sh b/heartbeat.sh new file mode 100644 index 0000000..86c87cb --- /dev/null +++ b/heartbeat.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Set env +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +# API Token +if [ -f /etc/netweak/token.conf ] +then + auth=($(cat /etc/netweak/token.conf)) +else + echo "Error: File /etc/netweak/token.conf is missing." + exit 1 +fi + +# Build data for post +data_post="token=${auth[0]}" + +# API request with automatic termination +if [ -n "$(command -v timeout)" ] +then + timeout -s SIGKILL 30 wget -q -o /dev/null -O /etc/netweak/log/agent.log -T 25 --post-data "$data_post" --no-check-certificate "https://api.netweak.com/agent/heartbeat" +else + wget -q -o /dev/null -O /etc/netweak/log/agent.log -T 25 --post-data "$data_post" --no-check-certificate "https://api.netweak.com/agent/heartbeat" + wget_pid=$! + wget_counter=0 + wget_timeout=30 + + while kill -0 "$wget_pid" && (( wget_counter < wget_timeout )) + do + sleep 1 + (( wget_counter++ )) + done + + kill -0 "$wget_pid" && kill -s SIGKILL "$wget_pid" +fi + +# Finished +exit 1