mirror of
https://github.com/acedanger/shell.git
synced 2026-03-27 03:06:08 -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
|
||||
|
||||
# Color codes for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
CYAN='\033[0;36m'
|
||||
PURPLE='\033[0;35m'
|
||||
NC='\033[0m' # No Color
|
||||
RED=$'\033[0;31m'
|
||||
GREEN=$'\033[0;32m'
|
||||
YELLOW=$'\033[1;33m'
|
||||
BLUE=$'\033[0;34m'
|
||||
CYAN=$'\033[0;36m'
|
||||
PURPLE=$'\033[0;35m'
|
||||
NC=$'\033[0m' # No Color
|
||||
|
||||
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
||||
LOG_DIR="$SCRIPT_DIR/logs"
|
||||
@@ -315,6 +315,11 @@ show_service_status() {
|
||||
local last_entry
|
||||
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
|
||||
local timestamp
|
||||
local message
|
||||
@@ -328,18 +333,28 @@ show_service_status() {
|
||||
current_time=$(date +%s)
|
||||
local hours_diff=$(( (current_time - entry_time) / 3600 ))
|
||||
|
||||
local status
|
||||
local status_word status
|
||||
if [ "$hours_diff" -le 24 ]; then
|
||||
status="${GREEN}Active${NC}"
|
||||
status_word="Active"
|
||||
status="${GREEN}${status_word}${NC}"
|
||||
elif [ "$hours_diff" -le 48 ]; then
|
||||
status="${YELLOW}Recent${NC}"
|
||||
status_word="Recent"
|
||||
status="${YELLOW}${status_word}${NC}"
|
||||
else
|
||||
status="${RED}Stale${NC}"
|
||||
status_word="Stale"
|
||||
status="${RED}${status_word}${NC}"
|
||||
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
|
||||
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
|
||||
done
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user