feat: heartbeat 4h via HEARTBEAT_INTERVAL_MINUTES (2.0.2-SAC)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
PTah
2026-06-10 17:25:19 +10:00
parent 59ba8cf811
commit 908f8958a4
5 changed files with 53 additions and 5 deletions
+10 -2
View File
@@ -7,7 +7,7 @@ IFS=$'\n\t'
# ============================================
CONFIG_FILE="/etc/ssh-monitor.conf"
SSH_MONITOR_VERSION="2.0.1-SAC"
SSH_MONITOR_VERSION="2.0.2-SAC"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ -f "$SCRIPT_DIR/sac-client.sh" ]; then
@@ -51,6 +51,8 @@ MAIL_SMTP_SSL="0"
# Конфигурация логов
LOG_FILE="/var/log/ssh_monitor.log"
LAST_HEARTBEAT_FILE="/var/log/last_heartbeat.txt"
# Интервал SAC agent.heartbeat (минуты). 240 = 4 ч.
HEARTBEAT_INTERVAL_MINUTES=240
LAST_REPORT_FILE="/var/log/last_daily_report.txt"
DAILY_REPORT_ENABLED=1
DAILY_REPORT_HOUR=9
@@ -183,6 +185,7 @@ load_config() {
local cfg_backup_webhook_url="${BACKUP_WEBHOOK_URL}"
local cfg_log_file="${LOG_FILE}"
local cfg_last_heartbeat_file="${LAST_HEARTBEAT_FILE}"
local cfg_heartbeat_interval_minutes="${HEARTBEAT_INTERVAL_MINUTES:-240}"
local cfg_last_report_file="${LAST_REPORT_FILE}"
local cfg_daily_report_enabled="${DAILY_REPORT_ENABLED:-1}"
local cfg_daily_report_hour="${DAILY_REPORT_HOUR}"
@@ -243,6 +246,10 @@ load_config() {
BACKUP_WEBHOOK_URL="${BACKUP_WEBHOOK_URL:-$cfg_backup_webhook_url}"
LOG_FILE="${LOG_FILE:-$cfg_log_file}"
LAST_HEARTBEAT_FILE="${LAST_HEARTBEAT_FILE:-$cfg_last_heartbeat_file}"
HEARTBEAT_INTERVAL_MINUTES="${HEARTBEAT_INTERVAL_MINUTES:-$cfg_heartbeat_interval_minutes}"
if ! [[ "${HEARTBEAT_INTERVAL_MINUTES:-240}" =~ ^[0-9]+$ ]] || [ "${HEARTBEAT_INTERVAL_MINUTES:-0}" -lt 1 ]; then
HEARTBEAT_INTERVAL_MINUTES=240
fi
LAST_REPORT_FILE="${LAST_REPORT_FILE:-$cfg_last_report_file}"
LAST_SSH_CHECK_FILE="${LAST_SSH_CHECK_FILE:-$cfg_last_ssh_check_file}"
LAST_SUDO_CHECK_FILE="${LAST_SUDO_CHECK_FILE:-$cfg_last_sudo_check_file}"
@@ -1911,8 +1918,9 @@ check_heartbeat() {
local current_epoch
current_epoch=$(date '+%s')
local diff=$((current_epoch - last_heartbeat_epoch))
local heartbeat_interval_sec=$((HEARTBEAT_INTERVAL_MINUTES * 60))
if [ "$last_heartbeat_epoch" -eq 0 ] || [ "$diff" -ge 43200 ]; then
if [ "$last_heartbeat_epoch" -eq 0 ] || [ "$diff" -ge "$heartbeat_interval_sec" ]; then
send_heartbeat
fi
}