#!/bin/bash # _____ _ _ # | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___ # | __| _| -_| -_| . | . | | . | . | | -_| # |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___| # # Freedom in the Cloud # # Returns a health status for Tor # # License # ======= # # Copyright (C) 2018 Bob Mottram # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . PROJECT_NAME='freedombone' export TEXTDOMAIN=${PROJECT_NAME}-tor-health export TEXTDOMAINDIR="/usr/share/locale" d1=$(date --date="-10 min" "+%b %d %H:%M"):00 d2=$(date "+%b %d %H:%M"):00 ctr=0 echo -n '' > /var/log/tor/notices_new.log while read -r line; do datestr=$(echo "$line" | awk -F '.' '{print $1}') if [[ "$datestr" > "$d1" && "$datestr" < "$d2" || "$datestr" =~ $d2 ]]; then if [[ "$line" == *'Retrying'* ]]; then ctr=$((ctr+1)) fi echo "$line" >> /var/log/tor/notices_new.log fi done < /var/log/tor/notices.log mv /var/log/tor/notices_new.log /var/log/tor/notices.log chown -R debian-tor:adm /var/log/tor UPTIME=$(awk -F '.' '{print $1}' < "/proc/uptime") if [ "$UPTIME" -gt 500 ]; then if [ $ctr -gt 5 ]; then echo $'Failed' exit 0 fi if [ $ctr -gt 0 ]; then echo $'Poor' exit 0 fi else if [ $ctr -gt 0 ]; then echo $'Starting' exit 0 fi fi echo $'Good' exit 0