From 489d071208dbaf4f9fdf0ed36935383d3aebbfe4 Mon Sep 17 00:00:00 2001 From: PTah Date: Mon, 22 Jun 2026 10:01:16 +1000 Subject: [PATCH] feat(deploy): sync SERVER_IPV4 hint and DAILY_REPORT_ENABLED on update (2.1.3-SAC) Co-authored-by: Cursor --- ssh-monitor | 2 +- update_ssh_monitor.sh | 51 +++++++++++++++++++++++++++++++++++++++++++ version.txt | 2 +- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/ssh-monitor b/ssh-monitor index 79249a9..593e0fb 100644 --- a/ssh-monitor +++ b/ssh-monitor @@ -7,7 +7,7 @@ IFS=$'\n\t' # ============================================ CONFIG_FILE="/etc/ssh-monitor.conf" -SSH_MONITOR_VERSION="2.1.2-SAC" +SSH_MONITOR_VERSION="2.1.3-SAC" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" if [ -f "$SCRIPT_DIR/sac-client.sh" ]; then diff --git a/update_ssh_monitor.sh b/update_ssh_monitor.sh index b77c142..cfc2f4b 100755 --- a/update_ssh_monitor.sh +++ b/update_ssh_monitor.sh @@ -237,6 +237,53 @@ config_key_exists() { grep -qE "^[[:space:]]*${key}=" "$file" 2>/dev/null } +config_key_mentioned() { + local key="$1" file="$2" + grep -qE "^[[:space:]]*(#.*)?${key}=" "$file" 2>/dev/null +} + +sync_server_ipv4_hint_config() { + local file="$CONFIG_FILE" backed_up=0 + + [ -f "$file" ] || return 1 + if config_key_mentioned "SERVER_IPV4" "$file"; then + return 1 + fi + + backup_config_if_needed "$file" backed_up + { + printf '\n# --- Явный IPv4 для SAC host.ipv4 (раскомментируйте при необходимости) ---\n' + printf '# SERVER_IPV4="10.0.0.10"\n' + } >>"$file" + log_message "INFO" "Config $file: добавлена подсказка # SERVER_IPV4." + CONFIG_CHANGED=1 + return 0 +} + +sync_daily_report_enabled_config() { + local file="$CONFIG_FILE" backed_up=0 current + + [ -f "$file" ] || return 1 + if config_key_exists "DAILY_REPORT_ENABLED" "$file"; then + current=$(config_conf_value "DAILY_REPORT_ENABLED" "$file" 2>/dev/null || true) + if [ "$current" = "1" ]; then + return 1 + fi + backup_config_if_needed "$file" backed_up + set_config_kv "DAILY_REPORT_ENABLED" "1" "$file" + log_message "INFO" "Config $file: DAILY_REPORT_ENABLED ${current:-<пусто>} → 1 (отчёт с агента)." + else + backup_config_if_needed "$file" backed_up + { + printf '\n# --- Суточный отчёт report.daily.ssh (1 = с агента; 0 = только SAC) ---\n' + printf 'DAILY_REPORT_ENABLED="1"\n' + } >>"$file" + log_message "INFO" "Config $file: добавлен DAILY_REPORT_ENABLED=1." + fi + CONFIG_CHANGED=1 + return 0 +} + append_heartbeat_interval_block() { local file="$1" { @@ -804,6 +851,8 @@ deploy_install_config() { ensure_ssh_monitor_config_file || return 1 sync_sac_config_keys || true sync_heartbeat_interval_config || true + sync_server_ipv4_hint_config || true + sync_daily_report_enabled_config || true } deploy_install_systemd() { @@ -1157,6 +1206,8 @@ update_script() { SUMMARY_CONFIG="SAC без изменений" fi sync_heartbeat_interval_config || true + sync_server_ipv4_hint_config || true + sync_daily_report_enabled_config || true if [ "${CONFIG_CHANGED:-0}" -eq 1 ] && [ "$SUMMARY_CONFIG" = "SAC без изменений" ]; then SUMMARY_CONFIG="heartbeat/watchdog выровнены" elif [ "${CONFIG_CHANGED:-0}" -eq 1 ] && [ "$SUMMARY_CONFIG" != "SAC без изменений" ]; then diff --git a/version.txt b/version.txt index 975d4d4..aead1fb 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2.1.2-SAC +2.1.3-SAC