#!/bin/bash
logline='event reporting instance is not ready to be reused'
logfile=$(ls -1tr /opt/ang/log/adselect/adselect.log)
if [[ $(id -u) -ne 0 ]]; then
echo "${0} has to be executed as root!"
exit 1
fi
# returns adselect running time in epoch
function get_adselect_run_time() {
echo $(date "+%s" -d "$(ps -eo time,cmd | grep adselect.fcgi | grep -v grep | sort -k1 -n -r | head -n 1 | awk {'print $1'})")
}
# returns timestamp from the last line in $logfile in epoch
function get_time_from_log() {
echo $(date "+%s" -d "$(tail -n 1 $logfile | awk '{print $1,$2}')")
}
# returns current date in epoch
function get_current_time() {
echo $(date "%s")
}
# /////////////////////////////////////////////////////////////////////
# // MAIN
function main() {
adselect_restart=0
adselectrun=$(get_adselect_run_time)
timefromlog=$(get_time_from_log)
if [[ $timefromlog -gt $adselectrun ]]; then
tail -n 20 $logfile | grep "$logline" > /dev/null
if [[ $? -eq 0 ]]; then
adselect_restart=1
fi
cat $(ls -1t /opt/ang/log/adselect-req9/*.log | tail -n 1) | tail -n 20 | grep 'unimplemented' > /dev/null
if [[ $? -eq 0 ]]; then
echo "unimplemented log found"
adselect_restart=1
fi
if [[ $adselect_restart -eq 1 ]]; then
echo "adselect have to be restarted"
echo $(hostname)
echo $(curl -s showip.net;echo)
service adselect stop
sleep 3
service adselect start
fi
fi
}
main
Comments