#!/bin/sh
# Health Check
# Atomicorp, Inc
# 2022

VERSION=1.2
LOG_FILE=/var/awp/log/monitor.log
AWP_LOGS="
/var/awp/log/awpweb_access.log
/var/awp/log/awpwebd_crash.log
/var/awp/log/awpwebd.log
/var/awp/log/awpweb_error.log
"




function log_event () {
        MSG=$1
        echo "`date "+%b %d %H:%M:%S"` `hostname` atomicorp-monitor: ${MSG}" >> ${LOG_FILE}
}

# Verify permissions on logs
for awp_logfile in ${AWP_LOGS}; do
	if [ -f $awp_logfile ]; then
		chown tortix.tortix $awp_logfile
	fi
done


# Locking
if  [ -f /var/run/awpd-healthcheck.lock ]; then
	log_event "Healthcheck running, exiting.."
	exit
fi
touch /var/run/awpd-healthcheck.lock


if [[ -f /var/awp/data/awpd.pid ]] && [[ -f /var/awp/data/awpwebd.pid ]]; then

	LIVE_PID=$(/usr/sbin/pidof awpd)
	SAVED_PID=$(cat /var/awp/data/awpd.pid)

	if [[ $LIVE_PID == $SAVED_PID ]]; then
		if [[ -f /var/awp/bin/grcheck ]]; then
			/var/awp/bin/grcheck
			RETVAL=$?
			if [[ $RETVAL -eq 1 ]]; then
				echo "Fault: $0"
				log_event "Fault detected"
				cp /var/awp/log/grping.log /var/awp/log/grping.log.$(date +%s)
				COUNT=$(wc -l /var/ossec/logs/alerts/alerts.json)
				log_event "Log count is $COUNT"
				#systemctl stop awpd
				#log_event "Awp Stop: ($?)"
				#/var/awp/bin/awp_indexgen
				#log_event "Awp_indexgen: ($?)"
				#/var/awp/bin/awps
				#log_event "Awps: ($?)"
				#/var/awp/bin/awpvuln
				#log_event "Awpvuln: ($?)"
				#systemctl start awpd
				#log_event "Awpd Start: ($?)"
			fi
        fi
	fi

fi

rm -f /var/run/awpd-healthcheck.lock
