mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-09-11 02:44:57 +08:00
57 lines
1.8 KiB
Bash
Executable File
57 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
. /usr/libexec/haproxy-manager/common.sh
|
|
|
|
enabled="$(uci_get main enabled 0)"
|
|
wan="$(wan_ip 2>/dev/null || echo unknown)"
|
|
version="not-available"
|
|
service="stopped"
|
|
backup_count=0
|
|
auto_recovery="$(uci_get main auto_recover 1)"
|
|
mode="$(active_mode)"
|
|
last_incident=""
|
|
last_incident_result="none"
|
|
last_incident_interface=""
|
|
|
|
if command -v haproxy >/dev/null 2>&1; then
|
|
version="$(haproxy -v 2>/dev/null | sed -n '1s/^HAProxy version \([^ ]*\).*/\1/p')"
|
|
[ -n "$version" ] || version="unknown"
|
|
fi
|
|
|
|
if [ -x /etc/init.d/haproxy ] && /etc/init.d/haproxy status >/dev/null 2>&1; then
|
|
service="running"
|
|
fi
|
|
|
|
backup_count="$(/usr/libexec/haproxy-manager/backups 2>/dev/null | wc -l | tr -d ' ')"
|
|
|
|
INCIDENT_BASE="$(incident_dir)"
|
|
if [ -d "$INCIDENT_BASE" ]; then
|
|
INCIDENT_BASE="$(resolve_storage_dir "$INCIDENT_BASE")" || INCIDENT_BASE=""
|
|
fi
|
|
if [ -f "$INCIDENT_BASE/LAST" ]; then
|
|
last_incident="$(sed -n '1p' "$INCIDENT_BASE/LAST")"
|
|
if is_valid_backup_id "$last_incident" && [ -d "$INCIDENT_BASE/$last_incident" ]; then
|
|
last_incident_result="$(sed -n '1p' "$INCIDENT_BASE/$last_incident/result" 2>/dev/null || echo detected)"
|
|
last_incident_interface="$(sed -n 's/^interface=//p' "$INCIDENT_BASE/$last_incident/meta" 2>/dev/null | head -1)"
|
|
else
|
|
last_incident=""
|
|
last_incident_result="none"
|
|
fi
|
|
fi
|
|
|
|
printf 'enabled\t%s\n' "$enabled"
|
|
printf 'wan_ip\t%s\n' "$wan"
|
|
printf 'version\t%s\n' "$version"
|
|
printf 'service\t%s\n' "$service"
|
|
printf 'backup_count\t%s\n' "$backup_count"
|
|
printf 'auto_recovery\t%s\n' "$auto_recovery"
|
|
printf 'active_mode\t%s\n' "$mode"
|
|
printf 'last_incident\t%s\n' "$last_incident"
|
|
printf 'last_incident_result\t%s\n' "$last_incident_result"
|
|
printf 'last_incident_interface\t%s\n' "$last_incident_interface"
|
|
|
|
netstat -lntp 2>/dev/null | awk '
|
|
NR > 2 && $6 == "LISTEN" && ($7 ~ /haproxy/ || $7 ~ /uhttpd/) {
|
|
printf "listener\t%s\t%s\t%s\n", $1, $4, $7
|
|
}
|
|
'
|