Files
security-alert-center/deploy/systemd/render-sac-daily-report-timer.sh
T

45 lines
1.1 KiB
Bash

#!/usr/bin/env bash
# Генерирует sac-daily-report.timer из SAC_DAILY_REPORT_HOUR и SAC_DAILY_REPORT_TIMEZONE.
# Usage: sudo deploy/systemd/render-sac-daily-report-timer.sh [config.env] [output.timer]
set -euo pipefail
CONFIG_FILE="${1:-/opt/security-alert-center/config/sac-api.env}"
OUTPUT="${2:-/etc/systemd/system/sac-daily-report.timer}"
HOUR=9
TZ_NAME="Europe/Moscow"
if [ -f "${CONFIG_FILE}" ]; then
set -a
# shellcheck source=/dev/null
source "${CONFIG_FILE}"
set +a
fi
HOUR="${SAC_DAILY_REPORT_HOUR:-9}"
TZ_NAME="${SAC_DAILY_REPORT_TIMEZONE:-Europe/Moscow}"
if ! [[ "${HOUR}" =~ ^[0-9]+$ ]] || [ "${HOUR}" -lt 0 ] || [ "${HOUR}" -gt 23 ]; then
printf 'render-sac-daily-report-timer: invalid SAC_DAILY_REPORT_HOUR=%s\n' "${HOUR}" >&2
exit 1
fi
HOUR_PADDED="$(printf '%02d' "${HOUR}")"
cat >"${OUTPUT}" <<EOF
[Unit]
Description=Daily SAC report aggregation and notify
[Timer]
OnCalendar=*-*-* ${HOUR_PADDED}:00:00
Timezone=${TZ_NAME}
Persistent=true
[Install]
WantedBy=timers.target
EOF
printf 'render-sac-daily-report-timer: wrote %s (OnCalendar=%s:00:00 Timezone=%s)\n' \
"${OUTPUT}" "${HOUR_PADDED}" "${TZ_NAME}"