From 77c06befdaa54392bf52f07d55cb1bb4543162e8 Mon Sep 17 00:00:00 2001 From: narawat Date: Sat, 18 Apr 2026 19:17:07 +0700 Subject: [PATCH] add limitTextFileLines before log --- check_router_reboot.jl | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/check_router_reboot.jl b/check_router_reboot.jl index 89a0cec..84d13d9 100644 --- a/check_router_reboot.jl +++ b/check_router_reboot.jl @@ -127,6 +127,7 @@ function load_state(StateFilePath) return State(cf, DateTime(lr)) end catch e + limitTextFileLines(LogFilePath; maxlines=100) logmsg("Warning loading state: $e") end return State(0, nothing) @@ -206,6 +207,7 @@ end function do_reboot() cmd = reboot_command() if cmd === nothing + limitTextFileLines(LogFilePath; maxlines=100) logmsg("Reboot not supported on this OS") return false end @@ -214,10 +216,11 @@ function do_reboot() cmd_str = join(map(x -> replace(x, '"' => "\\\""), cmd), " ") if DRY_RUN + limitTextFileLines(LogFilePath; maxlines=100) logmsg("DRY RUN: would run reboot command: $cmd_str") return true end - + limitTextFileLines(LogFilePath; maxlines=100) logmsg("Executing reboot command: $cmd_str") try # Construct a Cmd from an array so arguments are passed directly (no shell) @@ -225,6 +228,7 @@ function do_reboot() run(Cmd(cmd_array)) return true catch e + limitTextFileLines(LogFilePath; maxlines=100) logmsg("Failed to execute reboot command: $e") return false end @@ -266,6 +270,7 @@ function perform_check!(st::State) # During cooldown, track failures but don't trigger reboot yet if success broadcast_msg("Broadcasting from file: $thisFilePath") + limitTextFileLines(LogFilePath; maxlines=100) logmsg("$ROUTER_IP is reachable during cooldown. Router is back online! Resetting state.") st.consecutive_fails = 0 save_state(st, StateFilePath) @@ -273,6 +278,7 @@ function perform_check!(st::State) # println("2-2") st.consecutive_fails += 1 broadcast_msg("Broadcasting from file: $thisFilePath") + limitTextFileLines(LogFilePath; maxlines=100) logmsg("$ROUTER_IP is unreachable during cooldown. Consecutive fails: $(st.consecutive_fails)/$FAILS_TO_REBOOT.") save_state(st, StateFilePath) end @@ -284,6 +290,7 @@ function perform_check!(st::State) # println("3-1") if st.consecutive_fails > 0 # println("3-2") + limitTextFileLines(LogFilePath; maxlines=100) logmsg("$ROUTER_IP is reachable; resetting consecutive failure counter.") else # logmsg("$ROUTER_IP is reachable.") @@ -294,6 +301,7 @@ function perform_check!(st::State) else st.consecutive_fails += 1 broadcast_msg("Broadcasting from file: $thisFilePath") + limitTextFileLines(LogFilePath; maxlines=100) logmsg("$ROUTER_IP is unreachable (last result: $routerresult). Consecutive fails: $(st.consecutive_fails)/$FAILS_TO_REBOOT.") save_state(st, StateFilePath) end @@ -305,6 +313,7 @@ function perform_check!(st::State) if ok # println("4-2") broadcast_msg("Broadcasting from file: $thisFilePath") + limitTextFileLines(LogFilePath; maxlines=100) logmsg("Reboot executed (or simulated). Resetting failure counter.") st.consecutive_fails = 0 st.last_reboot_datetime = Dates.now() @@ -312,6 +321,7 @@ function perform_check!(st::State) @show StateFilePath save_state(st, StateFilePath) else + limitTextFileLines(LogFilePath; maxlines=100) logmsg("Reboot attempt failed; will retry after next interval.") end end @@ -340,15 +350,16 @@ function main_loop() end end # limit log file to latest 100 events - limitTextFileLines(LogFilePath; maxlines=100) thisFilePath = @__FILE__ broadcast_msg("Broadcasting from file: $thisFilePath") + limitTextFileLines(LogFilePath; maxlines=100) logmsg("Starting check loop. Checking router $ROUTER_IP every $(CHECK_INTERVAL_SECS) seconds.") st = load_state(StateFilePath) while true try perform_check!(st) catch e + limitTextFileLines(LogFilePath; maxlines=100) logmsg("Error during check: $e") end sleep(CHECK_INTERVAL_SECS)