A Bash remediation report can map failed checks to a concrete operator action without reading host state.

Program

Play the script to choose failed checks and inspect the remediation action.

failed_checks
rollback_action_report.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash

failed_checks=2
rollback_limit=1
if (( failed_checks == 0 )); then
    action="monitor"
elif (( failed_checks <= rollback_limit + 2 )); then
    action="rollback"
else
    action="escalate"
fi
echo "failed=$failed_checks $action"
#!/usr/bin/env bash

failed_checks=0
rollback_limit=1
if (( failed_checks == 0 )); then
    action="monitor"
elif (( failed_checks <= rollback_limit + 2 )); then
    action="rollback"
else
    action="escalate"
fi
echo "failed=$failed_checks $action"
#!/usr/bin/env bash

failed_checks=4
rollback_limit=1
if (( failed_checks == 0 )); then
    action="monitor"
elif (( failed_checks <= rollback_limit + 2 )); then
    action="rollback"
else
    action="escalate"
fi
echo "failed=$failed_checks $action"
  1. failed_checks ← 2

    3failed_checks=24rollback_limit=1
    values this step2failed_checks
  2. rollback_limit ← 1

    3failed_checks=24rollback_limit=15if (( failed_checks == 0 )); then
    values this step1rollback_limit
  3. if (( failed_checks == 0 )); then

    4rollback_limit=15if (( failed_checks == 0 )); then6    action="monitor"
    values this step2failed_checks
  4. elif (( failed_checks <= rollback_limit + 2 )); then

    6    action="monitor"7elif (( failed_checks <= rollback_limit + 2 )); then8    action="rollback"
    values this step2failed_checks1rollback_limit
  5. action ← rollback

    7elif (( failed_checks <= rollback_limit + 2 )); then8    action="rollback"9else
    values this steprollbackaction
  6. echo "failed=$failed_checks $action"

    11fi12echo "failed=$failed_checks $action"
    outputfailed=2 rollback
    values this step2failed_checksrollbackaction
  1. failed_checks ← 0

    3failed_checks=04rollback_limit=1
    values this step0failed_checks
  2. rollback_limit ← 1

    3failed_checks=04rollback_limit=15if (( failed_checks == 0 )); then
    values this step1rollback_limit
  3. if (( failed_checks == 0 )); then

    4rollback_limit=15if (( failed_checks == 0 )); then6    action="monitor"
    values this step0failed_checks
  4. action ← monitor

    5if (( failed_checks == 0 )); then6    action="monitor"7elif (( failed_checks <= rollback_limit + 2 )); then
    values this stepmonitoraction
  5. echo "failed=$failed_checks $action"

    11fi12echo "failed=$failed_checks $action"
    outputfailed=0 monitor
    values this step0failed_checksmonitoraction
  1. failed_checks ← 4

    3failed_checks=44rollback_limit=1
    values this step4failed_checks
  2. rollback_limit ← 1

    3failed_checks=44rollback_limit=15if (( failed_checks == 0 )); then
    values this step1rollback_limit
  3. if (( failed_checks == 0 )); then

    4rollback_limit=15if (( failed_checks == 0 )); then6    action="monitor"
    values this step4failed_checks
  4. elif (( failed_checks <= rollback_limit + 2 )); then

    6    action="monitor"7elif (( failed_checks <= rollback_limit + 2 )); then8    action="rollback"
    values this step4failed_checks1rollback_limit
  5. action ← escalate

    9else10    action="escalate"11fi
    values this stepescalateaction
  6. echo "failed=$failed_checks $action"

    11fi12echo "failed=$failed_checks $action"
    outputfailed=4 escalate
    values this step4failed_checksescalateaction
remediation action The script prints the observed failure count with the chosen action.
rollback threshold `rollback_limit + 2` keeps rollback selection deterministic.
escalation branch Counts beyond the rollback range become explicit escalation output.