mirror of
https://github.com/acedanger/shell.git
synced 2026-03-27 05:16:07 -07:00
fix(backup-log-monitor): improve log status display and filter out empty journalctl messages
This commit is contained in:
@@ -6,13 +6,13 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Color codes for output
|
# Color codes for output
|
||||||
RED='\033[0;31m'
|
RED=$'\033[0;31m'
|
||||||
GREEN='\033[0;32m'
|
GREEN=$'\033[0;32m'
|
||||||
YELLOW='\033[1;33m'
|
YELLOW=$'\033[1;33m'
|
||||||
BLUE='\033[0;34m'
|
BLUE=$'\033[0;34m'
|
||||||
CYAN='\033[0;36m'
|
CYAN=$'\033[0;36m'
|
||||||
PURPLE='\033[0;35m'
|
PURPLE=$'\033[0;35m'
|
||||||
NC='\033[0m' # No Color
|
NC=$'\033[0m' # No Color
|
||||||
|
|
||||||
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
||||||
LOG_DIR="$SCRIPT_DIR/logs"
|
LOG_DIR="$SCRIPT_DIR/logs"
|
||||||
@@ -315,6 +315,11 @@ show_service_status() {
|
|||||||
local last_entry
|
local last_entry
|
||||||
last_entry=$(sudo journalctl -t "$tag" --output=short-iso -n 1 2>/dev/null | tail -1)
|
last_entry=$(sudo journalctl -t "$tag" --output=short-iso -n 1 2>/dev/null | tail -1)
|
||||||
|
|
||||||
|
# Filter out journalctl informational messages (e.g., "-- No entries --")
|
||||||
|
if [[ "$last_entry" =~ ^-- ]]; then
|
||||||
|
last_entry=""
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$last_entry" ]; then
|
if [ -n "$last_entry" ]; then
|
||||||
local timestamp
|
local timestamp
|
||||||
local message
|
local message
|
||||||
@@ -328,18 +333,28 @@ show_service_status() {
|
|||||||
current_time=$(date +%s)
|
current_time=$(date +%s)
|
||||||
local hours_diff=$(( (current_time - entry_time) / 3600 ))
|
local hours_diff=$(( (current_time - entry_time) / 3600 ))
|
||||||
|
|
||||||
local status
|
local status_word status
|
||||||
if [ "$hours_diff" -le 24 ]; then
|
if [ "$hours_diff" -le 24 ]; then
|
||||||
status="${GREEN}Active${NC}"
|
status_word="Active"
|
||||||
|
status="${GREEN}${status_word}${NC}"
|
||||||
elif [ "$hours_diff" -le 48 ]; then
|
elif [ "$hours_diff" -le 48 ]; then
|
||||||
status="${YELLOW}Recent${NC}"
|
status_word="Recent"
|
||||||
|
status="${YELLOW}${status_word}${NC}"
|
||||||
else
|
else
|
||||||
status="${RED}Stale${NC}"
|
status_word="Stale"
|
||||||
|
status="${RED}${status_word}${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf "%-20s %-25s %-20s %-30s\n" "$tag" "$status" "$timestamp" "$message"
|
# Adjust printf width to account for invisible ANSI escape code bytes
|
||||||
|
local ansi_overhead=$(( ${#status} - ${#status_word} ))
|
||||||
|
local padded_width=$(( 15 + ansi_overhead ))
|
||||||
|
printf "%-20s %-${padded_width}s %-20s %-30s\n" "$tag" "$status" "$timestamp" "$message"
|
||||||
else
|
else
|
||||||
printf "%-20s %-25s %-20s %-30s\n" "$tag" "${RED}No logs${NC}" "Never" "No activity found"
|
local no_logs_word="No logs"
|
||||||
|
local no_logs="${RED}${no_logs_word}${NC}"
|
||||||
|
local ansi_overhead=$(( ${#no_logs} - ${#no_logs_word} ))
|
||||||
|
local padded_width=$(( 15 + ansi_overhead ))
|
||||||
|
printf "%-20s %-${padded_width}s %-20s %-30s\n" "$tag" "$no_logs" "Never" "No activity found"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user